Skip to content

Commit

Permalink
Set raw flag on sigilless parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
jnthn committed Apr 30, 2021
1 parent 3ee326a commit c117647
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions src/Raku/ast/signature.rakumod
Original file line number Diff line number Diff line change
Expand Up @@ -268,24 +268,28 @@ class RakuAST::Parameter is RakuAST::Meta is RakuAST::Attaching

method IMPL-FLAGS() {
my constant SIG_ELEM_INVOCANT := 64;
my constant SIG_ELEM_IS_RAW := 1024;
my constant SIG_ELEM_IS_OPTIONAL := 2048;
my constant SIG_ELEM_ARRAY_SIGIL := 4096;
my constant SIG_ELEM_HASH_SIGIL := 8192;
my constant SIG_ELEM_CODE_SIGIL := 33554432;
my $sigil := $!target.sigil;
my int $flags;
$flags := $flags + SIG_ELEM_INVOCANT if $!invocant;
$flags := $flags + SIG_ELEM_IS_OPTIONAL if $!optional;
$flags := $flags +| SIG_ELEM_INVOCANT if $!invocant;
$flags := $flags +| SIG_ELEM_IS_OPTIONAL if $!optional;
if $sigil eq '@' {
$flags := $flags + SIG_ELEM_ARRAY_SIGIL;
$flags := $flags +| SIG_ELEM_ARRAY_SIGIL;
}
elsif $sigil eq '%' {
$flags := $flags + SIG_ELEM_HASH_SIGIL;
$flags := $flags +| SIG_ELEM_HASH_SIGIL;
}
elsif $sigil eq '&' {
$flags := $flags + SIG_ELEM_CODE_SIGIL;
$flags := $flags +| SIG_ELEM_CODE_SIGIL;
}
if nqp::istype($!target, RakuAST::ParameterTarget::Term) {
$flags := $flags +| SIG_ELEM_IS_RAW;
}
$flags := $flags + $!slurpy.IMPL-FLAGS($sigil);
$flags := $flags +| $!slurpy.IMPL-FLAGS($sigil);
$flags
}

Expand Down

0 comments on commit c117647

Please sign in to comment.