Although that particular error message seems to be specific to `Blob`, it also 
breaks with other parametric roles (such as `Array`), because the generic 
parameter T of the outer role seems to be passed through without being 
specialized first.

Shorter examples:

    ➜  role R[::T] { method a { Array[T].new } };  say R[Int].a.perl;
    No such method 'perl' for invocant of type 'T'
      in block <unit> at <unknown file> line 1

    ➜  role R[::T] { method a { Blob[T].new } };  say R[Int].a.perl;
    concatenate requires a concrete string, but got null
      in any protect at gen/moar/stage2/NQPCORE.setting line 1033
      in method a at <unknown file> line 1
      in block <unit> at <unknown file> line 1

Looks related to https://rt.perl.org/Ticket/Display.html?id=131947 .

Reply via email to