Skip to content

Commit

Permalink
Fix apparent (probably meaningless) bug in Hash.delete_key. Add exist…
Browse files Browse the repository at this point in the history
…s_key and delete_key as appropriate in Set, KeySet, Bag, and KeyBag.
  • Loading branch information
colomon committed Feb 11, 2012
1 parent ac280b0 commit 5857ccb
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion lib/CORE.setting
Expand Up @@ -1842,7 +1842,7 @@ my class Hash does Associative {
method at_key($key) { self.{$key} }
method exists_key($key) { self.{$key}:exists }
method delete_key($key) { self.{$key}:exists }
method delete_key($key) { self.{$key}:delete }
method perl(\:) {
self // return self.typename;
Expand Down Expand Up @@ -1983,6 +1983,7 @@ class Set does Associative {
method Numeric { %!elems.Numeric }
method hash { %!elems.hash }
method at_key($k) { ?(%!elems{$k} // False) }
method exists_key($k) { self.exists($k) }
# Constructor
method new(*@args --> Set) {
Expand Down Expand Up @@ -2108,6 +2109,8 @@ class KeySet does Associative {
Proxy.new(FETCH => { %!elems{$k}:exists ?? True !! False },
STORE => -> $, $value { if $value { %!elems{$k} = True } else { %!elems{$k}:delete }});
}
method exists_key($k) { self.exists($k) }
method delete_key($k) { %!elems{$k}:delete }
# Constructor
method new(*@args --> KeySet) {
Expand Down Expand Up @@ -2151,6 +2154,7 @@ class Bag does Associative {
method Numeric { self.elems }
method hash { %!elems.hash }
method at_key($k) { +(%!elems{$k} // 0) }
method exists_key($k) { self.exists($k) }
# Constructor
method new(*@args --> Bag) {
Expand Down Expand Up @@ -2203,6 +2207,8 @@ class KeyBag does Associative {
Proxy.new(FETCH => { %!elems{$k}:exists ?? %!elems{$k} !! 0 },
STORE => -> $, $value { if $value > 0 { %!elems{$k} = $value } else { %!elems{$k}:delete }});
}
method exists_key($k) { self.exists($k) }
method delete_key($k) { %!elems{$k}:delete }
# Constructor
method new(*@args --> KeyBag) {
Expand Down

0 comments on commit 5857ccb

Please sign in to comment.