For the records: This works with '--optimize=off' (as psch++ has shown in the
linked discussion on #perl6).
$ ./perl6-j --optimize=off -e 'my $value = 42 but False; say ?$value'
False
The optimizer adds a QAST::Want for the mixin which the JVM backend does not
handle correctly.
$ RAKUDO_OPTIMIZER_DEBUG=1 ./perl6-j -e 'my $value = 42 but False; say ?$value'
[...]
- QAST::Want <>
- QAST::WVal(Int+{<anon|1285927979>}) <>
- Ii
- QAST::IVal(42) <>
[...]
True
See also my findings in https://rt.perl.org/Ticket/Display.html?id=129782 which
is about a similar problem.