Changeset 4417 for trunk/compiler

Show
Ignore:
Timestamp:
08/10/08 08:14:39 (5 months ago)
Author:
pmoura
Message:

Added support for meta-calls whose closure arguments are explicitly qualified (using either Object::Closure or Module:Closure).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/compiler/logtalk.pl

    r4412 r4417  
    31203120    Pred =.. [Functor| FullArgs], 
    31213121    '$lgt_metacall_in_object'(Pred, local, Sender, This, Self). 
     3122 
     3123'$lgt_metacall_in_object'(Obj::Closure, ExtraArgs, _, _, This, _) :- 
     3124    !, 
     3125    Closure =.. [Functor| Args], 
     3126    '$lgt_append'(Args, ExtraArgs, FullArgs), 
     3127    Pred =.. [Functor| FullArgs], 
     3128    '$lgt_tr_msg'(Pred, Obj, Call, This), 
     3129    (   '$lgt_dbg_debugging_', '$lgt_debugging_'(Obj) -> 
     3130        '$lgt_ctx_ctx'(Ctx, _, This, This, Obj, _, [], _), 
     3131        '$lgt_ctx_dbg_ctx'(Ctx, DbgCtx), 
     3132        '$lgt_dbg_goal'(Obj::Pred, Call, DbgCtx) 
     3133    ;   call(Call) 
     3134    ). 
     3135 
     3136'$lgt_metacall_in_object'(':'(Module, Closure), ExtraArgs, _, _, _, _) :- 
     3137    !, 
     3138    Closure =.. [Functor| Args], 
     3139    '$lgt_append'(Args, ExtraArgs, FullArgs), 
     3140    Pred =.. [Functor| FullArgs], 
     3141    ':'(Module, Pred). 
    31223142 
    31233143'$lgt_metacall_in_object'(Closure, ExtraArgs, MetaVars, Sender, This, Self) :-