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.