I have a bug I can't figure out. After some experimentation, I have been able 
to simplify it to this minimal program:
    
    
    type T = distinct uint64
    
    func f(x: T): T =
      T(uint64(x) shl 63)
    
    func `==`(x, y: T): bool {.borrow.}
    
    const
      x = T(1'u64)
      y = f(x)
    
    assert y == f(x)
    
    
    Run

The assert on the last line fails. If I replace the `const` with a `let`, 
everything works as expected. Similar examples with integer types other than 
`uint64` also seem to work.

What am I missing here?

Reply via email to