Пример #1
0
        public override MethodEntity ParseMethod()
        {
            if (this.RetVar != null)
            {
                this.StatementProcessor.RegisterNewExpressionAssignment(RetVar,
                                                                        new TypeDescriptor(RetVar.Type, false));
            }

            var descriptor   = new MethodEntityDescriptor(this.MethodDescriptor); //EntityFactory.Create(this.MethodDescriptor, this.Dispatcher);
            var methodEntity = new MethodEntity(this.MethodDescriptor,
                                                this.MethodInterfaceData,
                                                this.PropGraph, descriptor,
                                                this.InstantiatedTypes,
                                                false);

            return(methodEntity);
        }
        public override MethodEntity ParseMethod()
        {
            Contract.Assert(this.methodNode != null);

            var propGraphGenerator = new MethodSyntaxVisitor(this.model, this.RoslynMethod, this, this.containingTypeNode, this.methodNode);

            propGraphGenerator.Visit(this.methodNode);

            var descriptor      = new MethodEntityDescriptor(propGraphGenerator.MethodDescriptor); //EntityFactory.Create(this.MethodDescriptor, this.Dispatcher);
            var declarationInfo = CodeGraphHelper.GetMethodDeclarationInfo(this.methodNode, this.RoslynMethod);
            var referenceInfo   = CodeGraphHelper.GetMethodReferenceInfo(this.methodNode);

            var methodEntity = new MethodEntity(propGraphGenerator.MethodDescriptor,
                                                propGraphGenerator.MethodInterfaceData,
                                                propGraphGenerator.PropGraph, descriptor,
                                                propGraphGenerator.InstantiatedTypes,
                                                propGraphGenerator.StatementProcessor.AnonymousMethods,
                                                declarationInfo, referenceInfo);

            return(methodEntity);
        }