Author: jonathan
Date: Wed Nov 26 15:53:22 2008
New Revision: 33245

Modified:
   trunk/languages/perl6/src/classes/List.pir

Log:
[rakudo] We need to be a bit careful to differentiate between Perl6Scalar 
(which just wraps up an argument) and ObjectRef (which we have when something 
is actually a reference type). Modify list() to know about this. Resolves 
RT#60404.

Modified: trunk/languages/perl6/src/classes/List.pir
==============================================================================
--- trunk/languages/perl6/src/classes/List.pir  (original)
+++ trunk/languages/perl6/src/classes/List.pir  Wed Nov 26 15:53:22 2008
@@ -213,6 +213,10 @@
     elem = self[i]
     $I0 = defined elem
     unless $I0 goto flat_next
+    $I0 = isa elem, 'Perl6Scalar'
+    unless $I0 goto no_deref
+    elem = deref elem
+  no_deref:
     $I0 = isa elem, 'ObjectRef'
     if $I0 goto flat_next
     $I0 = isa elem, 'Range'

Reply via email to