That's interesting. I just re-built from github and I'm still seeing the behavior I reported:
raku -e 'say do given all(3,7) { when Int { "both are Int" }; default {"not similar"} };' not similar That's with: raku --version Welcome to Rakudo™ v2021.10-43-ga8329f6fd. Implementing the Raku® Programming Language v6.d. Built on MoarVM version 2021.10-22-g938098118. On 11/2/21, Andy Bach <andy_b...@wiwb.uscourts.gov> wrote: >> I'd thought that that would confirm that both elements were Int: > say do given all(3,7) { when Int { "both are Int" }; default {"not > similar"} }; > ## not similar > > I get a different result > $ raku -e ' say do given all(3,7) { when Int { "both are Int" }; default > {"not similar"} };' > both are Int > > $ raku -e ' say do given all(3,"x") { when Int { "both are Int" }; default > {"not similar"} };' > not similar > > $ raku -e ' say do given all(3,7) { when Int { $_ }; default {"not > similar"} };' > all(3, 7) > > $ raku -v > This is Rakudo version 2020.05.1 built on MoarVM version 2020.05 > ________________________________ > From: Joseph Brenner <doom...@gmail.com> > Sent: Tuesday, November 2, 2021 11:45 AM > To: perl6-users <perl6-users@perl.org> > Subject: junctions with given/when > > CAUTION - EXTERNAL: > > > A given/when construct using a junction isn't quite doing what I'd expect. > > I'd thought that that would confirm that both elements were Int: > > say do given all(3,7) { when Int { "both are Int" }; default {"not > similar"} }; > ## not similar > > But this does what I thought it would: > > say so do all(3,7) ~~ Int; > # True > > And the given seems to put the junction in $_ as expected: > > given all(3,7) { say $_; say $_.WHAT; } > # all(3, 7) > # (Junction) > > And you can use that junction in a smartmatch explicitly > > given all(3,7) { say so $_ ~~ Numeric; } > # True > CAUTION - EXTERNAL EMAIL: This email originated outside the Judiciary. > Exercise caution when opening attachments or clicking on links. > >