Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Sanitize adverb error reporting
  • Loading branch information
lizmat committed Jul 6, 2015
1 parent df5da3f commit f2d9c9f
Showing 1 changed file with 7 additions and 15 deletions.
22 changes: 7 additions & 15 deletions src/core/Any.pm
Expand Up @@ -830,30 +830,22 @@ sub RWPAIR(\k, \v) { # internal fast pair creation
p
}

sub OBJECT_HUH (\SELF) {
my $huh := SELF.WHAT.perl;
try { $huh ~= " {SELF.VAR.name}" };
$huh;
}
sub OBJECT_HUH(\SELF) { try { SELF.VAR.name } // SELF.WHAT.perl }

sub SLICE_HUH ( \SELF, @nogo, Mu $d, %adv ) {
sub SLICE_HUH(\SELF, @nogo, %d, %adv) {
@nogo.unshift('delete') # recover any :delete if necessary
if @nogo && @nogo[0] ne 'delete' && %adv.EXISTS-KEY('delete');
for <delete exists kv p k v> -> $valid { # check all valid params
if nqp::existskey($d,nqp::unbox_s($valid)) {
nqp::deletekey($d,nqp::unbox_s($valid));
if nqp::existskey(%d,nqp::unbox_s($valid)) {
nqp::deletekey(%d,nqp::unbox_s($valid));
@nogo.push($valid);
}
}

if nqp::elems($d) -> $elems {
my @keys;
my Mu $iter := nqp::iterator($d);
@keys.push: nqp::p6box_s(nqp::iterkey_s(nqp::shift($iter))) while $iter;

if %d.elems -> $elems {
$elems > 1
?? fail "$elems unexpected named arguments (@keys.join(', ')) passed to {OBJECT_HUH(SELF)}"
!! fail "Unexpected named argument '@keys[0]' passed to {OBJECT_HUH(SELF)}";
?? fail "$elems unexpected named arguments (%d.keys.join(', ')) passed to {OBJECT_HUH(SELF)}"
!! fail "Unexpected named argument '%d.keys.[0]' passed to {OBJECT_HUH(SELF)}";
}

else {
Expand Down

0 comments on commit f2d9c9f

Please sign in to comment.