On Mon, 01 Aug 2016 21:44:28 -0700, lue wrote:
> <ShimmerFairy> m: #|(abc) role A { method foo { ... } }; class B does
> A { method foo { "OK" } }; say B.foo
> <camelia> rakudo-moar f1313d: OUTPUT«===SORRY!=== Error while
> compiling <tmp>Method 'foo' must be implemented by A because it is
> required by a roleat <tmp>:1»
> <ShimmerFairy> m: #|abcrole A { method foo { ... } }; class B does A
> { method foo { "OK" } }; say B.foo
> <camelia> rakudo-moar f1313d: OUTPUT«OK»
> <ShimmerFairy> m: #|[[[abc]]]role A { method foo { ... } }; class B
> does A { method foo { "OK" } }; say B.foo
> <camelia> rakudo-moar f1313d: OUTPUT«===SORRY!=== Error while
> compiling <tmp>Method 'foo' must be implemented by A because it is
> required by a roleat <tmp>:2»
>
> It specifically has to be a _leading_ declarator block, and as seen
> above it has to be the multi-line (delimited) variety. The single-line
> variant works fine. Trailing declarator blocks don't break this
> either. As seen above, the specific choice of delimiters on the
> declarator block is irrelevant.
This was also reported, fixed, and tests added in RT#130208, so resolving,
since I can't merge it.
Test is at the bottom of S26-documentation/block-leading.t
...though there still may be a heisenbug in this area kicking around I think.
Just hard to replicate.