compile-time int conversion fails in `when false` section
### Description

```nim

type ArrayBuf*[N: static int, T = byte] = object
  when sizeof(int) > sizeof(uint8):
    when N <= int(uint8.high):
      n*: uint8
    else:
      when sizeof(int) > sizeof(uint16):
        when N <= int(uint16.high):
          n*: uint16
        else:
          when sizeof(int) > sizeof(uint32):
            when N <= int(uint32.high):
              n*: uint32
            else:
              n*: int
          else:
            n*: int
      else:
        n*: int
  else:
    n*: int
```

in 32-bit mode, the section `when sizeof(int) > sizeof(uint32)` should not be entered, and yet the compiler complains about `when N <= int(uint32.high)`


### Nim Version

2.0.8

### Current Output

```text
nim c -r  --cpu:i386 "testit.nim"

/home/arnetheduck/status/nimbus-eth1/_exper/testit.nim(12, 26) Error: cannot convert 4294967295 to int
```


### Expected Output

_No response_

### Known Workarounds

_No response_

### Additional Information

_No response_