# New Ticket Created by  Vasily Chekalkin 
# Please include the string:  [perl #59396]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=59396 >


Hello.

There is implementation of Hash.reverse

-- 
Bacek
diff --git a/languages/perl6/src/classes/Mapping.pir b/languages/perl6/src/classes/Mapping.pir
index ec9824f..7b9aace 100644
--- a/languages/perl6/src/classes/Mapping.pir
+++ b/languages/perl6/src/classes/Mapping.pir
@@ -18,7 +18,7 @@ src/classes/Mapping.pir - Perl 6 hash class and related functions
     mappingproto = p6meta.'new_class'('Mapping', 'parent'=>'Hash Any')
     p6meta.'register'('Hash', 'parent'=>mappingproto, 'protoobject'=>mappingproto)
     $P0 = get_hll_namespace ['Mapping']
-    '!EXPORT'('keys kv values', $P0)
+    '!EXPORT'('keys kv values reverse', $P0)
 .end
 
 
@@ -114,6 +114,24 @@ Returns elements of hash as array of C<Pair(key, value)>
 .end
 
 
+=item reverse
+
+=cut
+
+.sub 'reverse' :method :multi('Hash')
+    .local pmc result, iter
+    result = new 'Perl6Hash'
+    iter = new 'Iterator', self
+  iter_loop:
+    unless iter goto iter_end
+    $S0 = shift iter
+    $S1 = self[$S0]
+    result[$S1] = $S0
+    goto iter_loop
+  iter_end:
+    .return (result)
+.end
+
 =item pairs (method)
 
 Returns elements of hash as array of C<Pairs>

Reply via email to