peon/tests/mutable.pn

25 lines
353 B
Plaintext

operator `=`[T](a: var T, b: T) {
#pragma[magic: "GenericAssign"]
}
operator `+`(a, b: int): int {
#pragma[magic: "AddInt64", pure]
}
operator `+=`(a: var int, b: int) {
a = a + b;
}
fn identity(x: var int): int {
x += 1;
return x;
}
var x = 5;
identity(x);
# identity(38); # If you uncomment this, the compiler errors out!