Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
more miscellaneous deflattening
  • Loading branch information
TimToady committed Sep 20, 2015
1 parent 89751c5 commit f6a2fad
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 19 deletions.
26 changes: 12 additions & 14 deletions src/core/Any.pm
Expand Up @@ -171,15 +171,15 @@ my class Any { # declared in BOOTSTRAP

# auto-vivifying
proto method push(|) is nodal { * }
multi method push(Any:U \SELF: *@values) {
multi method push(Any:U \SELF: |values) {
SELF = nqp::istype(SELF,Positional) ?? SELF.new !! Array.new;
SELF.push(@values);
SELF.push(|values);
}

proto method unshift(|) is nodal { * }
multi method unshift(Any:U \SELF: *@values) {
multi method unshift(Any:U \SELF: |values) {
SELF = Array.new;
SELF.unshift(@values);
SELF.unshift(|values);
}

proto method EXISTS-POS(|) is nodal { * }
Expand Down Expand Up @@ -401,12 +401,10 @@ multi postfix:<-->(Mu:D \a is rw) { my $b = a; a = a.pred; $b }
multi postfix:<-->(Mu:U \a is rw) { a = -1; 0 }

proto sub pick(|) { * }
multi sub pick($n, @values) { @values.pick($n) }
multi sub pick($n, *@values) { @values.pick($n) }
multi sub pick($n, +values) { values.pick($n) }

proto sub roll(|) { * }
multi sub roll($n, @values) { @values.roll($n) }
multi sub roll($n, *@values) { @values.roll($n) }
multi sub roll($n, +values) { values.roll($n) }

proto sub keys(|) { * }
multi sub keys($x) { $x.keys }
Expand All @@ -426,22 +424,22 @@ multi sub elems($a) { $a.elems }
proto sub end(|) { * }
multi sub end($a) { $a.end }

sub classify( $test, *@items, *%named ) {
sub classify( $test, +items, *%named ) {
if %named.EXISTS-KEY("into") {
my $into := %named.DELETE-KEY("into");
( $into // $into.new).classify-list($test, @items, |%named);
( $into // $into.new).classify-list($test, items, |%named);
}
else {
Hash.^parameterize(Any,Any).new.classify-list($test, @items, |%named);
Hash.^parameterize(Any,Any).new.classify-list($test, items, |%named);
}
}
sub categorize( $test, *@items, *%named ) {
sub categorize( $test, +items, *%named ) {
if %named.EXISTS-KEY("into") {
my $into := %named.DELETE-KEY("into");
( $into // $into.new).categorize-list($test, @items, |%named);
( $into // $into.new).categorize-list($test, items, |%named);
}
else {
Hash.^parameterize(Any,Any).new.categorize-list($test, @items, |%named);
Hash.^parameterize(Any,Any).new.categorize-list($test, items, |%named);
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/core/Bool.pm
Expand Up @@ -82,7 +82,7 @@ multi sub infix:<||>(Mu \a, Mu \b) { a || b }
proto sub infix:<^^>(|) { * }
multi sub infix:<^^>(Mu $x = Bool::False) { $x }
multi sub infix:<^^>(Mu \a, Mu \b) { a ^^ b }
multi sub infix:<^^>(*@a) {
multi sub infix:<^^>(+@a) {
my $a = shift @a;
while @a {
my $b := shift @a;
Expand All @@ -108,6 +108,6 @@ multi sub infix:<or>(Mu \a, Mu \b) { a || b }
proto sub infix:<xor>(|) { * }
multi sub infix:<xor>(Mu $x = Bool::False) { $x }
multi sub infix:<xor>(Mu \a, Mu \b) { a ^^ b }
multi sub infix:<xor>(*@a) { &infix:<^^>(|@a); }
multi sub infix:<xor>(|c) { &infix:<^^>(|c); }

# vim: ft=perl6 expandtab sw=4
6 changes: 3 additions & 3 deletions src/core/Hash.pm
Expand Up @@ -121,12 +121,12 @@ my class Hash { # declared in BOOTSTRAP
Nil;
}

method push(*@values) {
method push(+values) {
fail X::Cannot::Lazy.new(:action<push>, :what(self.^name))
if @values.is-lazy;
if values.is-lazy;
my $previous;
my $has_previous;
for @values -> $e {
for values -> $e {
if $has_previous {
self!_push_construct($previous, $e);
$has_previous = 0;
Expand Down

0 comments on commit f6a2fad

Please sign in to comment.