Changeset 22945 for v6

Show
Ignore:
Timestamp:
11/09/08 23:04:39 (2 months ago)
Author:
pmurias
Message:

[mildew] small fixes to make t/p6opaque and t/pure_prototype_how work again
[smop] small changes to p6opaque which should be examined by ruoso++

Location:
v6
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • v6/mildew/mildew

    r22943 r22945  
    241241            my @positional = $positional ? $positional->emit_m0ld : (); 
    242242            my $ident = $methodop->{longname}->canonical; 
    243             if ($m->{sym} eq '^!') { 
     243            if ($m->{sym} eq '.^!') { 
    244244                $ident = '^!' . $ident; 
    245245            } 
     
    253253    } elsif (my $postop = $m->{dottyop}{postop}) { 
    254254        if (my $postcircumfix = $postop->{postcircumfix}) { 
    255             my $positional = $methodop->{semilist}[0]{statement}[0]; 
     255            my $positional = $postcircumfix->{semilist}{statement}[0]; 
    256256            my @positional = $positional ? $positional->emit_m0ld : (); 
    257257            AST::Call->new( 
  • v6/smop/src/p6opaque.sm0p

    r22690 r22945  
    66#include <smop_s1p.h> 
    77#include <smop_oo.h> 
     8#include <smop_mold.h> 
    89#include <smop_lowlevel.h> 
    910 
     
    305306    } else if (SMOP_RI(invocant) != (SMOP__ResponderInterface*)SMOP__p6opaque__RI) { 
    306307      fprintf(stderr,"[smop p6opaque] dispatching with non p6opaque invocant\n"); 
     308    } else if (invocant == SMOP__p6opaque__RI && identifier == SMOP__ID__FETCH) { 
     309       ___VALUE_FETCH___; 
    307310    } else if (invocant == SMOP__p6opaque__RI) { 
    308311      fprintf(stderr,"[smop p6opaque] dispatching with p6opaque RI (%s)\n",(char*)(identifier->data + sizeof(int))); 
     
    453456    } else if (actualidentifier == SMOP__ID__STORE) { 
    454457      ___VALUE_STORE___; 
    455     } else { 
     458    } else if (actualidentifier == SMOP__ID__DESTROYALL) { 
     459       
     460    } else { 
     461      identifier = actualidentifier; 
    456462      ___UNKNOWN_METHOD___; 
    457463    } 
  • v6/smop/src/s1p_pureprototypehow.sm0p

    r22712 r22945  
    4444    SMOP_DISPATCH(interpreter,SMOP_RI(interpreter),SMOP__ID__goto,frame); 
    4545 
     46  } else if (SMOP__ID__FETCH == identifier) { 
     47    ___VALUE_FETCH___; 
    4648  } else { 
    4749    ___UNKNOWN_METHOD___;