コード例 #1
0
 private void CreateFunctionInfo(MSAst.LambdaExpression generatorFactoryLambda)
 {
     if (_lambdaInfo.CompilerSupport != null && _lambdaInfo.CompilerSupport.DoesExpressionNeedReduction(generatorFactoryLambda)) {
         _functionInfo = _lambdaInfo.CompilerSupport.QueueExpressionForReduction(
             Ast.Call(
                 typeof(RuntimeOps).GetMethod("CreateFunctionInfo"),
                 generatorFactoryLambda,
                 AstUtils.Constant(_alias),
                 AstUtils.Constant(_debugMarkerLocationMap, typeof(object)),
                 AstUtils.Constant(_variableScopeMap, typeof(object)),
                 AstUtils.Constant(_variableInfos, typeof(object)),
                 Ast.Constant(_lambdaInfo.CustomPayload, typeof(object))
             )
         );
     } else {
         _functionInfo = Ast.Constant(
             DebugContext.CreateFunctionInfo(
                 generatorFactoryLambda.Compile(),
                 _alias,
                 _debugMarkerLocationMap,
                 _variableScopeMap,
                 _variableInfos,
                 _lambdaInfo.CustomPayload),
             typeof(FunctionInfo));
     }
 }