# Pastebin eFdO2yxP diff --git a/src/Perl6/Actions.nqp b/src/Perl6/Actions.nqp index fe4fc71d4..51120fe62 100644 --- a/src/Perl6/Actions.nqp +++ b/src/Perl6/Actions.nqp @@ -5274,6 +5274,10 @@ class Perl6::Actions is HLL::Actions does STDActions { # Create the meta-object. my $subset; + my $how := nqp::can($refinee.HOW, "SubsetHOW") + ?? $refinee.HOW.SubsetHOW($refinee) + !! $world.resolve_mo($/, 'subset') + ; my $longname := $ && $world.dissect_longname($); my @name := $longname ?? $longname.type_name_parts('subset name', :decl(1)) !! []; if @name { @@ -5281,13 +5285,13 @@ class Perl6::Actions is HLL::Actions does STDActions { ?? $*GLOBALish !! $/.package; my $fullname := $longname.fully_qualified_with($target_package); - $subset := $world.create_subset($world.resolve_mo($/, 'subset'), $refinee, $refinement, + $subset := $world.create_subset($how, $refinee, $refinement, :name($fullname)); $world.install_package($/, @name, ($*SCOPE || 'our'), 'subset', $target_package, $world.cur_lexpad(), $subset); } else { - $subset := $world.create_subset($world.resolve_mo($/, 'subset'), $refinee, $refinement); + $subset := $world.create_subset($how, $refinee, $refinement); } # Apply traits.