On Sun Oct 11 03:11:45 2015, n...@detonation.org wrote:
> The endless loop is a bootstrap issue. It starts with routine_def:
>         if $<onlystar> {
>             # Protect with try; won't work when declaring the initial
>             # trait_mod proto in CORE.setting!
>             try $*W.apply_trait($/, '&trait_mod:<is>', $*DECLARAND,
> :onlystar(1));
>         }
> Like the comment explains, the trait will not be found at this point
> of compiling the setting, leading to Rakudo trying to find
> X::Inheritance::UnkownParent and failing.
> I see two ways for a cleaner fix:
> * avoiding applying the trait when we know it will fail anyway or
> * check in the CATCH block if it really is the exact situation that
> it's meant to fix.

Or just reorganize the code a bit so the loop can't happen. :-) As to the 
original issue, I added a test in S12-class/inheritance.t to check that a class 
X using "is" with some name that does not exist gets the proper exception 
thrown.

Reply via email to