Author: jonathan
Date: Wed Jan  7 14:55:35 2009
New Revision: 35181

Modified:
   branches/rvar2/languages/perl6/src/builtins/guts.pir

Log:
[rakudo] Since we lie about naming of classes, we need to look up the class 
we're extending via its proto-object in !meta_create when we have is also. This 
gets us through initialization and we now pass most of S12-class/open.t - until 
the last test, where our lies catch up with us and we go and stick methods in 
the wrong namespace. Would need to look at trunk to see how on earth this was 
resolved there...

Modified: branches/rvar2/languages/perl6/src/builtins/guts.pir
==============================================================================
--- branches/rvar2/languages/perl6/src/builtins/guts.pir        (original)
+++ branches/rvar2/languages/perl6/src/builtins/guts.pir        Wed Jan  7 
14:55:35 2009
@@ -391,13 +391,16 @@
 
   class:
     .local pmc metaclass, ns
-    ns = get_hll_namespace nsarray
     if also goto is_also
+    ns = get_hll_namespace nsarray
     metaclass = newclass ns
     .return (metaclass)
   is_also:
-    metaclass = get_class ns
-    .return (metaclass)
+    .local pmc proto, p6meta
+    $S0 = shift nsarray
+    proto = get_hll_global nsarray, $S0
+    p6meta = get_hll_global ['Perl6Object'], '$!P6META'
+    .tailcall p6meta.'get_parrotclass'(proto)
 
   role:
     .local pmc info, metarole

Reply via email to