wybe
wybe copied to clipboard
Update syntax does not work with subtraction
For example, the following do not compile:
!x - 1 # should decrement x
10 - !x # should subtract x from 10
These elicit these compiler errors:
test-cases/final-dump/minus_update.wybe:4:2: Ambiguous overloading: call could refer to:
wybe.int.-<3>
wybe.int.-<0>
test-cases/final-dump/minus_update.wybe:5:1: Ambiguous overloading: call could refer to:
wybe.int.-<3>
wybe.int.-<0>
I suspect this is caused by some kind of conflict with unary subtraction.
This is hard to fix because of the way type checking runs first, followed by mode checking. Considering only types without looking at modes, we can't distinguish unary negation from something like !x - 1.