Closed
Description
The following Cpp2 code
foo: (inout x: i32) = {
x = x + 1;
}
main: () -> i32 = {
a := 42;
foo(a);
}
is compiled to (skipping boilerplate)
auto foo(cpp2::i32& x) -> void{
x = x + 1;
}
[[nodiscard]] auto main() -> cpp2::i32{
auto a {42};
foo(std::move(a));
}
which fails to compile because cpp2::i32& x
can't bind to std::move(a)
.