# New Ticket Created by "Brian S. Julin"
# Please include the string: [perl #125437]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=125437 >
# Attributive parameters can load themselves into objects during
# seemingly innocent smartmatches, and probably other places where
# is_bindable semantics are intended.
perl6 -e 'class a { has $.a; method foo { say so (self,2) ~~ :(\self: $!a);
self.a.say } }; a.new.foo()'
True
2
#...like multidispatch tests
$ for i in 1 2 3 4 5; do perl6 -e 'my $*r; class A { has $.a = 4; multi method
foo (A $b (:$!a), Int $c where { $*r //= Bool.pick }) { 42.say }; multi method
foo (A $b, Int $c) { self.a.say } }; my A $a .= new; my A $b .= new(:a(2));
$a.foo($b,1);' ; done
2
2
42
2
42
# (above, $a.a should only be 2 when 42 is printed, should otherwise be 4.)