Author: pmichaud
Date: Sun Jan 4 20:27:36 2009
New Revision: 34954
Modified:
branches/rvar/languages/perl6/src/classes/Object.pir
branches/rvar/languages/perl6/src/parser/actions.pm
Log:
[rakudo]: Add simple type constraints to attributes.
Modified: branches/rvar/languages/perl6/src/classes/Object.pir
==============================================================================
--- branches/rvar/languages/perl6/src/classes/Object.pir (original)
+++ branches/rvar/languages/perl6/src/classes/Object.pir Sun Jan 4 20:27:36 2009
@@ -305,6 +305,8 @@
.local pmc attr
attr = new itypeclass
setattribute candidate, parrotclass, attrname, attr
+ $P0 = attrhash['type']
+ setprop attr, 'type', $P0
.local string keyname
$I0 = index attrname, '!'
if $I0 < 0 goto attrinit_loop
Modified: branches/rvar/languages/perl6/src/parser/actions.pm
==============================================================================
--- branches/rvar/languages/perl6/src/parser/actions.pm (original)
+++ branches/rvar/languages/perl6/src/parser/actions.pm Sun Jan 4 20:27:36 2009
@@ -1513,8 +1513,7 @@
for @($<fulltypename>) {
$type.push( $( $_ ) );
}
- ## XXX: might need to revisit this, puts node in tree twice
- $past.viviself( $( $<fulltypename>[0] ) );
+ $past.viviself( $( $<fulltypename>[0] ).clone() );
}
}
make $past;