[svn:parrot] r35879 - in trunk/languages/perl6/src: builtins classes

[email protected] Thu, 22 Jan 2009 03:55:21 -0800 (PST)
Newsgroups perl.cvs.parrot
Message-ID <[email protected]>
Author: jonathan
Date: Thu Jan 22 03:55:20 2009
New Revision: 35879

Modified:
   trunk/languages/perl6/src/builtins/guts.pir
   trunk/languages/perl6/src/classes/Role.pir

Log:
[rakudo] What's installed in the namespace for a role should probably act like a proto-object a bit more; this makes it stringify in the same kinda way.

Modified: trunk/languages/perl6/src/builtins/guts.pir
==============================================================================
--- trunk/languages/perl6/src/builtins/guts.pir	(original)
+++ trunk/languages/perl6/src/builtins/guts.pir	Thu Jan 22 03:55:20 2009
@@ -372,6 +372,8 @@
     ns = variant.'get_namespace'()
     ns = ns.'get_name'()
     short_name = pop ns
+    $P0 = box short_name
+    setprop variant, "$!shortname", $P0
     $I0 = index short_name, '['
     if $I0 == -1 goto have_short_name
     short_name = substr short_name, 0, $I0
@@ -386,6 +388,8 @@
   need_role_obj:
     role_obj = new 'Perl6Role'
     set_root_global ns, short_name, role_obj
+    $P0 = box short_name
+    setprop role_obj, "$!shortname", $P0
   have_role_obj:
 
     # Add this variant.

Modified: trunk/languages/perl6/src/classes/Role.pir
==============================================================================
--- trunk/languages/perl6/src/classes/Role.pir	(original)
+++ trunk/languages/perl6/src/classes/Role.pir	Thu Jan 22 03:55:20 2009
@@ -216,6 +216,16 @@
 .end
 
 
+=item Str (vtable get_string)
+
+=cut
+
+.sub 'Str' :method :vtable('get_string')
+    $P0 = getprop '$!shortname', self
+    .return ($P0)
+.end
+
+
 =back
 
 =head1 Methods on Parrot Roles
@@ -289,6 +299,16 @@
     .return (self)
 .end
 
+
+=item Str (vtable get_string)
+
+=cut
+
+.sub 'Str' :method :vtable('get_string')
+    $P0 = getprop '$!shortname', self
+    .return ($P0)
+.end
+
 =back
 
 =cut