On Mon, Jan 19, 2009 at 3:20 AM, chromatic <[email protected]> wrote: > On Monday 19 January 2009 00:11:11 Will Coleda wrote: > >> When constructing a PMC, I can say "provides something" in the pmclass >> declaration. I just tried converting a PMC with this annotation to >> PIR, and couldn't find a way to set this. >> >> Looks like that declaration modifies the provides_str member of the >> PMC; searching for provides_str gives me (outside of the PMC code >> generation), no way to set this. >> >> Any suggestions? > > Override the 'does' vtable entry. > > -- c >
Ah, thank you. My first joking response was going to be: "That's far too simple, it'll never work. ;)"; I apparently jinxed myself. I tested it and it doesn't seem to work; the override isn't invoked; This prints out '0' and nothing else. (using does_pmc instead has the same non-effect). .sub foo :main $P1 = new 'TclArray' $I0 = does $P1, 'foo' say $I0 .end .HLL 'parrot' .namespace [ 'TclArray' ] .sub class_init :anon :load :init $P0 = get_class 'ResizablePMCArray' $P1 = subclass $P0, 'TclArray' .end .sub does :vtable .param string provides say "Checking..." if provides == 'foo' goto yes .return(0) yes: .return(1) .end -- Will "Coke" Coleda _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
