# New Ticket Created by Lucas Buchala # Please include the string: [perl #130286] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=130286 >
Type capture in subroutine strangely works in some contexts but not others. > sub f(::T) { say T }; f(10) (Int) > sub f(::T) { say (T,) }; f(10) No such method 'gist' for invocant of type 'T' in sub f at - line 1 in block <unit> at - line 1 > sub f(::T) { say (T.gist,) }; f(10) ((Int)) > sub f(::T) { say [T] }; f(10) [(Int)] > sub f(::T) { say [T,] }; f(10) No such method 'gist' for invocant of type 'T' in sub f at - line 1 in block <unit> at - line 1 It looks like it may has something to do with the handling of the comma operator. A superficial investigation shows that, "recently", only the release 2015.09 worked correctly, others before and after don't. I couldn't find the commit before 2015.09 that made things starting work. After 2015.09, bisectable6 pointed to this commit which introduced the error: https://github.com/rakudo/rakudo/commit/03f84eea11dc4b0c49d78844d2a8fac0981152a2 (Not sure if this is already reported; this may be a duplicate)