The problem with let/temp for this situation has been fixed with 752299767bac3c49 . And tests are needed for that.
However, the underlying issue is that the default value of container descriptors created automatically with “no strict” are Mu rather than Any. This will need some deeper research. Either this ticket should remain open, or we should create another issue for this. > On 3 Dec 2017, at 04:45, Aleks-Daniel Jakimenko-Aleksejev via RT > <perl6-bugs-follo...@perl.org> wrote: > > Still reproducible (2017.11,HEAD(e5b660e)) > > On 2015-06-13 05:48:13, ronaldxs wrote: >> From irc >> >> http://irclog.perlgeek.de/perl6/2015-06-13#i_10744864 >> >> 12:16 mr_ron m: no strict; %h<a> = 42; {temp %h<b> = 8} >> 12:16 camelia rakudo-moar af886d: OUTPUT«Type check failed >> in binding cont; expected 'Any' but got 'Mu' in block <unit> at >> /tmp/AYhNmfAB9o:1» >> 12:17 mr_ron m: no strict; %h<a> = 42; >> 12:17 camelia rakudo-moar af886d: ( no output ) >> 12:17 mr_ron bug I think >> 12:19 Ven m: temp %h<b> = 8 >> 12:19 camelia rakudo-moar af886d: OUTPUT«5===SORRY!5=== >> Error while compiling /tmp/3g1OTkzVIMVariable '%h' is not declaredat >> /tmp/3g1OTkzVIM:1------> 3temp 7⏏5%h<b> = 8» >> 12:19 yqt joined #perl6 >> 12:19 Ven m: no strict; temp %h<b> = 8 >> 12:19 camelia rakudo-moar af886d: OUTPUT«Type check failed >> in binding cont; expected 'Any' but got 'Mu' in block <unit> at >> /tmp/dvEGWzXNXu:1» >> 12:19 Ven m: no strict; (temp %h)<b> = 8 >> 12:19 camelia rakudo-moar af886d: ( no output ) >> 12:19 Ven mr_ron: I think that's the issue :) >> 12:22 mr_ron Good golf anyway ...