示例#1
0
        public override void OnBlockExpression(BlockExpression node)
        {
            AnonymousMethodReturnType amrt = new AnonymousMethodReturnType(cu);

            if (node.ReturnType != null)
            {
                amrt.MethodReturnType = ConvertType(node.ReturnType);
            }
            else
            {
                amrt.MethodReturnType = new BooInferredReturnType(node.Body, resolver.CallingClass,
                                                                  node.ContainsAnnotation("inline"));
            }
            amrt.MethodParameters = new List <IParameter>();
            ConvertVisitor.AddParameters(node.Parameters, amrt.MethodParameters, resolver.CallingMember, resolver.CallingClass ?? new DefaultClass(resolver.CompilationUnit, "__Dummy"));
            MakeResult(amrt);
        }