Пример #1
0
 protected void AnalyArgLambda(ZMethodDesc zdesc)
 {
     //ZMethodDesc zdesc = SearchedMethod.ZDesces[0];
     for (int i = 0; i < ExpProcDesc.Args.Count; i++)
     {
         ZMethodArg procArg = zdesc.Args[i];
         if (procArg is ZMethodNormalArg)
         {
             ZMethodNormalArg znarg = (procArg as ZMethodNormalArg);
             if (ZLambda.IsFn(znarg.ArgZType.SharpType))
             {
                 ZCallArg     expArg       = ExpProcDesc.Args[i];
                 Exp          exp          = expArg.Data as Exp;
                 ExpNewLambda newLambdaExp = new ExpNewLambda(exp, znarg.ArgZType);
                 newLambdaExp.SetContext(this.ExpContext);
                 expArg.Data = newLambdaExp;
                 newLambdaExp.Analy();
             }
         }
     }
 }
Пример #2
0
 protected void AnalyArgLambda()
 {
     if (!ToExp.AnalyCorrect)
     {
         return;
     }
     if (ToExp.RetType == null)
     {
         return;
     }
     if (ZTypeUtil.IsFn(ToExp.RetType))
     {
         ExpNewLambda newLambdaExp = new ExpNewLambda(this.ExpContext, ValueExp, ToExp.RetType);
         //newLambdaExp.SetContext(this.ExpContext);
         Exp exp2 = newLambdaExp.Analy();
         NewValueExp = exp2;
     }
     else
     {
         NewValueExp = ValueExp;
     }
 }