# New Ticket Created by Sam S. # Please include the string: [perl #131947] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=131947 >
This works: ➜ role R [::T] { has T $.a = T }; say R[Int].new.a; (Int) But remove the explicit initializer `= T` (which should be redundant, right?), and it blows up: ➜ role R [::T] { has T $.a }; say R[Int].new.a; No such method 'gist' for invocant of type 'T' in block <unit> at <unknown file> line 1 Looks like the automatic initializer for `$.a` leaves the type object of the generic type T in the attribute, instead of letting it become the concrete type Int. Some introspection: say R[Int].new.a.^name; # T say R[Int].new.a.HOW; # Perl6::Metamodel::GenericHOW.new