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.