Skip to content

Commit

Permalink
Remove unnecessary implementation detail
Browse files Browse the repository at this point in the history
&SLICE_HUH somehow lived in the SETTING:: but didn't need to.
Move it to Rakudo::Internals and adapt the code and the keys
tests accordingly.
  • Loading branch information
lizmat committed Mar 19, 2020
1 parent ea4bdf9 commit 9429728
Show file tree
Hide file tree
Showing 11 changed files with 25 additions and 32 deletions.
18 changes: 0 additions & 18 deletions src/core.c/Any.pm6
Expand Up @@ -571,24 +571,6 @@ multi sub item(\x) { my $ = x }
multi sub item(|c) { my $ = c.list }
multi sub item(Mu $a) { $a }

sub SLICE_HUH(\SELF, @nogo, %d, %adv) { # is implementation-detail
@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));
@nogo.push($valid);
}
}

Failure.new(X::Adverb.new(
:what<slice>,
:source(try { SELF.VAR.name } // SELF.WHAT.raku),
:unexpected(%d.keys),
:nogo(@nogo),
))
} #SLICE_HUH

sub dd(|) { # is implementation-detail

# handler for BOOTxxxArrays
Expand Down
18 changes: 18 additions & 0 deletions src/core.c/Rakudo/Internals.pm6
Expand Up @@ -20,6 +20,24 @@ my class Rakudo::Internals::RegexBoolification6cMarker { }

my class Rakudo::Internals {

method SLICE_HUH(\object, @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));
@nogo.push($valid);
}
}

Failure.new(X::Adverb.new(
:what<slice>,
:source(try { object.VAR.name } // object.^name),
:unexpected(%d.keys),
:nogo(@nogo),
))
}

method GENERATE-ROLE-FROM-VALUE($val) {
my $role := Metamodel::ParametricRoleHOW.new_type();
my $meth := method () { $val };
Expand Down
10 changes: 5 additions & 5 deletions src/core.c/SLICE.pm6
@@ -1,7 +1,7 @@
#===============================================================================
#
# This file has been generated by tools/build/makeSLICE.raku
# on 2020-03-17T21:26:04.918223Z.
# on 2020-03-19T14:52:51.258447Z.
#
# Please do *NOT* make changes to this file, as they will be lost
# whenever this file is generated again.
Expand Down Expand Up @@ -195,7 +195,7 @@ sub SLICE_ONE_LIST(\SELF,$one,$key,$value,%adv) { # is implementation-detail
}

@nogo || nqp::elems($d)
?? SLICE_HUH( SELF, @nogo, $d, %adv )
?? Rakudo::Internals.SLICE_HUH( SELF, @nogo, $d, %adv )
!! result;
} #SLICE_ONE_LIST

Expand Down Expand Up @@ -445,7 +445,7 @@ sub SLICE_MORE_LIST(\SELF,$more,$key,$value,%adv) { # is implementation-detail
}

@nogo || nqp::elems($d)
?? SLICE_HUH( SELF, @nogo, $d, %adv )
?? Rakudo::Internals.SLICE_HUH( SELF, @nogo, $d, %adv )
!! result;
} #SLICE_MORE_LIST

Expand Down Expand Up @@ -637,7 +637,7 @@ sub SLICE_ONE_HASH(\SELF,$one,$key,$value,%adv) { # is implementation-detail
}

@nogo || nqp::elems($d)
?? SLICE_HUH( SELF, @nogo, $d, %adv )
?? Rakudo::Internals.SLICE_HUH( SELF, @nogo, $d, %adv )
!! result;
} #SLICE_ONE_HASH

Expand Down Expand Up @@ -887,7 +887,7 @@ sub SLICE_MORE_HASH(\SELF,$more,$key,$value,%adv) { # is implementation-detail
}

@nogo || nqp::elems($d)
?? SLICE_HUH( SELF, @nogo, $d, %adv )
?? Rakudo::Internals.SLICE_HUH( SELF, @nogo, $d, %adv )
!! result;
} #SLICE_MORE_HASH

Expand Down
1 change: 0 additions & 1 deletion src/core.c/core_epilogue.pm6
Expand Up @@ -35,7 +35,6 @@ BEGIN {
&DUMP,
&DYNAMIC,
&RETURN-LIST,
&SLICE_HUH,
&SLICE_MORE_HASH,
&SLICE_MORE_LIST,
&SLICE_ONE_HASH,
Expand Down
1 change: 0 additions & 1 deletion t/02-rakudo/03-corekeys-6c.t
Expand Up @@ -68,7 +68,6 @@ my @expected = (
Q{&RETURN-LIST},
Q{&RUN-MAIN},
Q{&SEQUENCE},
Q{&SLICE_HUH},
Q{&SLICE_MORE_HASH},
Q{&SLICE_MORE_LIST},
Q{&SLICE_ONE_HASH},
Expand Down
1 change: 0 additions & 1 deletion t/02-rakudo/03-corekeys-6d.t
Expand Up @@ -68,7 +68,6 @@ my @expected = (
Q{&RETURN-LIST},
Q{&RUN-MAIN},
Q{&SEQUENCE},
Q{&SLICE_HUH},
Q{&SLICE_MORE_HASH},
Q{&SLICE_MORE_LIST},
Q{&SLICE_ONE_HASH},
Expand Down
1 change: 0 additions & 1 deletion t/02-rakudo/03-corekeys-6e.t
Expand Up @@ -69,7 +69,6 @@ my @expected = (
Q{&RETURN-LIST},
Q{&RUN-MAIN},
Q{&SEQUENCE},
Q{&SLICE_HUH},
Q{&SLICE_MORE_HASH},
Q{&SLICE_MORE_LIST},
Q{&SLICE_ONE_HASH},
Expand Down
1 change: 0 additions & 1 deletion t/02-rakudo/03-corekeys.t
Expand Up @@ -70,7 +70,6 @@ my @allowed =
Q{&RETURN-LIST},
Q{&RUN-MAIN},
Q{&SEQUENCE},
Q{&SLICE_HUH},
Q{&SLICE_MORE_HASH},
Q{&SLICE_MORE_LIST},
Q{&SLICE_ONE_HASH},
Expand Down
1 change: 0 additions & 1 deletion t/02-rakudo/04-settingkeys-6c.t
Expand Up @@ -67,7 +67,6 @@ my %allowed = (
Q{&RETURN-LIST},
Q{&RUN-MAIN},
Q{&SEQUENCE},
Q{&SLICE_HUH},
Q{&SLICE_MORE_HASH},
Q{&SLICE_MORE_LIST},
Q{&SLICE_ONE_HASH},
Expand Down
1 change: 0 additions & 1 deletion t/02-rakudo/04-settingkeys-6e.t
Expand Up @@ -66,7 +66,6 @@ my %allowed = (
Q{&RETURN-LIST},
Q{&RUN-MAIN},
Q{&SEQUENCE},
Q{&SLICE_HUH},
Q{&SLICE_MORE_HASH},
Q{&SLICE_MORE_LIST},
Q{&SLICE_ONE_HASH},
Expand Down
4 changes: 2 additions & 2 deletions tools/build/makeSLICE.raku
Expand Up @@ -221,7 +221,7 @@ sub SLICE_ONE_@TYPE[]\SELF,$one,$key,$value,%adv) { # is implementation-detail
}
@nogo || nqp::elems($d)
?? SLICE_HUH( SELF, @nogo, $d, %adv )
?? Rakudo::Internals.SLICE_HUH( SELF, @nogo, $d, %adv )
!! result;
} #SLICE_ONE_@TYPE[].chop()
Expand Down Expand Up @@ -471,7 +471,7 @@ sub SLICE_MORE_@TYPE[]\SELF,$more,$key,$value,%adv) { # is implementation-detail
}
@nogo || nqp::elems($d)
?? SLICE_HUH( SELF, @nogo, $d, %adv )
?? Rakudo::Internals.SLICE_HUH( SELF, @nogo, $d, %adv )
!! result;
} #SLICE_MORE_@TYPE[].chop()
Expand Down

0 comments on commit 9429728

Please sign in to comment.