diff --git a/Niecza/Actions.pm b/Niecza/Actions.pm index 90cea93e..070a0b55 100644 --- a/Niecza/Actions.pm +++ b/Niecza/Actions.pm @@ -1463,6 +1463,7 @@ sub routine_def { my ($cl, $M) = @_; sub method_def { my ($cl, $M) = @_; my $scope = $::SCOPE // 'has'; + my $type = $M->{type} ? $M->{type}->Str : ''; $scope = 'anon' if !$M->{longname}; my $name = $M->{longname} ? $cl->mangle_longname($M->{longname}, "method definition") : undef; @@ -1470,6 +1471,10 @@ sub method_def { my ($cl, $M) = @_; $M->sorry("Method traits NYI"); return; } + if ($type eq '^') { + $M->sorry("Metamethod mixins NYI"); + return; + } if (@{ $M->{multisig} } > 1) { $M->sorry("Multiple multisigs (what?) NYI"); return; @@ -1493,7 +1498,7 @@ sub method_def { my ($cl, $M) = @_; $M->{multisig}[0]{_ast}->for_method : undef)); $M->{_ast} = $cl->block_to_closure($M, $bl, outer_key => $sym, - method_too => ($scope ne 'anon' ? $name : undef)); + method_too => ($scope ne 'anon' ? "$type$name" : undef)); } sub block { my ($cl, $M) = @_;