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'