# New Ticket Created by Faye # Please include the string: [perl #125745] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=125745 >
<ShimmerFairy> m: class Foo { }; multi sub infix:<~~>(Foo $a, Foo $b) { 42.6 }; say Foo.new ~~ Foo; say infix:<~~>(Foo.new, Foo) <camelia> rakudo-moar a38b59: OUTPUT«True42.6» <ShimmerFairy> (basically, the Perl 6 grammar treats ~~ specially, so stuff like this and the chaining bug pop up) To explain, the ~~ infix is one of those operators that src/Perl6/Actions.pm treats specially, in this case constructing an AST for the expression with the 'make_smartmatch' method. The QAST generated by this method bypasses the infix and uses the ACCEPTS method on the arguments, meaning definitions of infix:<~~> are never used for the operator. (It's potentially possible that the infix:<~~> functions found in the core setting aren't used either.) Bug #81336 may also be caused by this special treatment, since the generated QAST (as mentioned) gives no consideration to any defined infix:<~~> functions and shortcuts to calling ACCEPTS on the left-hand side.