Skip to content

Commit

Permalink
Fix problem doing hash (|) object hash
Browse files Browse the repository at this point in the history
Spotted while writing tests.
  • Loading branch information
lizmat committed Jun 1, 2017
1 parent a2add65 commit 11fa6d9
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions src/core/set_operators.pm
Original file line number Diff line number Diff line change
Expand Up @@ -178,15 +178,14 @@ multi sub infix:<(|)>(Map:D $a, Map:D $b) {
nqp::stmts(
(my $elems := nqp::create(Rakudo::Internals::IterationSet)),
nqp::if(
nqp::eqaddr($a.keyof,Str(Any)) && nqp::eqaddr($b.keyof,Str(Any)),
nqp::stmts( # both ordinary Str hashes
Rakudo::QuantHash.ADD-MAP-TO-SET($elems,$a),
Rakudo::QuantHash.ADD-MAP-TO-SET($elems,$b)
),
nqp::stmts( # object hash(es), coerce!
Rakudo::QuantHash.ADD-OBJECTHASH-TO-SET($elems,$a),
Rakudo::QuantHash.ADD-OBJECTHASH-TO-SET($elems,$b)
)
nqp::eqaddr($a.keyof,Str(Any)),
Rakudo::QuantHash.ADD-MAP-TO-SET($elems,$a), # ordinary hash
Rakudo::QuantHash.ADD-OBJECTHASH-TO-SET($elems,$a) # object hash
),
nqp::if(
nqp::eqaddr($b.keyof,Str(Any)),
Rakudo::QuantHash.ADD-MAP-TO-SET($elems,$b), # ordinary hash
Rakudo::QuantHash.ADD-OBJECTHASH-TO-SET($elems,$b) # objetc hash
),
nqp::create(Set).SET-SELF($elems)
)
Expand Down

0 comments on commit 11fa6d9

Please sign in to comment.