internal static IMethodSymbol CreateMethodSymbol(INamedTypeSymbol containingType, IList <AttributeData> attributes, Accessibility accessibility, SymbolModifiers modifiers, ITypeSymbol returnType, IMethodSymbol explicitInterfaceSymbol, string name, IList <ITypeParameterSymbol> typeParameters, IList <IParameterSymbol> parameters, IList <SyntaxNode> statements = null, IList <SyntaxNode> handlesExpressions = null, IList <AttributeData> returnTypeAttributes = null)
        {
            var result = new CodeGenerationMethodSymbol(containingType, attributes, accessibility, modifiers, returnType, explicitInterfaceSymbol, name, typeParameters, parameters, returnTypeAttributes);

            CodeGenerationMethodInfo.Attach(result, modifiers.IsNew, modifiers.IsUnsafe, modifiers.IsPartial, modifiers.IsAsync, statements, handlesExpressions);
            return(result);
        }
Пример #2
0
        protected override CodeGenerationSymbol Clone()
        {
            var result = new CodeGenerationMethodSymbol(
                this.ContainingType,
                this.GetAttributes(),
                this.DeclaredAccessibility,
                this.Modifiers,
                this.ReturnType,
                this.RefKind,
                this.ExplicitInterfaceImplementations,
                this.Name,
                this.TypeParameters,
                this.Parameters,
                this.GetReturnTypeAttributes(),
                _documentationCommentXml,
                this.MethodKind,
                this.IsInitOnly
                );

            CodeGenerationMethodInfo.Attach(
                result,
                CodeGenerationMethodInfo.GetIsNew(this),
                CodeGenerationMethodInfo.GetIsUnsafe(this),
                CodeGenerationMethodInfo.GetIsPartial(this),
                CodeGenerationMethodInfo.GetIsAsyncMethod(this),
                CodeGenerationMethodInfo.GetStatements(this),
                CodeGenerationMethodInfo.GetHandlesExpressions(this)
                );

            return(result);
        }
Пример #3
0
        protected override CodeGenerationSymbol Clone()
        {
            var result = new CodeGenerationMethodSymbol(this.ContainingType,
                this.GetAttributes(), this.DeclaredAccessibility, this.Modifiers,
                this.ReturnType, this.ExplicitInterfaceImplementations.FirstOrDefault(),
                this.Name, this.TypeParameters, this.Parameters, this.GetReturnTypeAttributes());

            CodeGenerationMethodInfo.Attach(result,
                CodeGenerationMethodInfo.GetIsNew(this),
                CodeGenerationMethodInfo.GetIsUnsafe(this),
                CodeGenerationMethodInfo.GetIsPartial(this),
                CodeGenerationMethodInfo.GetIsAsync(this),
                CodeGenerationMethodInfo.GetStatements(this),
                CodeGenerationMethodInfo.GetHandlesExpressions(this));

            return result;
        }
Пример #4
0
        internal static IMethodSymbol CreateMethodSymbol(
            INamedTypeSymbol?containingType,
            ImmutableArray <AttributeData> attributes,
            Accessibility accessibility,
            DeclarationModifiers modifiers,
            ITypeSymbol?returnType,
            RefKind refKind,
            ImmutableArray <IMethodSymbol> explicitInterfaceImplementations,
            string name,
            ImmutableArray <ITypeParameterSymbol> typeParameters,
            ImmutableArray <IParameterSymbol> parameters,
            ImmutableArray <SyntaxNode> statements              = default,
            ImmutableArray <SyntaxNode> handlesExpressions      = default,
            ImmutableArray <AttributeData> returnTypeAttributes = default,
            MethodKind methodKind = MethodKind.Ordinary,
            bool isInitOnly       = false
            )
        {
            var result = new CodeGenerationMethodSymbol(
                containingType,
                attributes,
                accessibility,
                modifiers,
                returnType,
                refKind,
                explicitInterfaceImplementations,
                name,
                typeParameters,
                parameters,
                returnTypeAttributes,
                documentationCommentXml: null,
                methodKind,
                isInitOnly
                );

            CodeGenerationMethodInfo.Attach(
                result,
                modifiers.IsNew,
                modifiers.IsUnsafe,
                modifiers.IsPartial,
                modifiers.IsAsync,
                statements,
                handlesExpressions
                );
            return(result);
        }
        protected override CodeGenerationSymbol Clone()
        {
            var result = new CodeGenerationMethodSymbol(this.ContainingType,
                this.GetAttributes(), this.DeclaredAccessibility, this.Modifiers,
                this.ReturnType, this.ExplicitInterfaceImplementations.FirstOrDefault(),
                this.Name, this.TypeParameters, this.Parameters, this.GetReturnTypeAttributes());

            CodeGenerationMethodInfo.Attach(result,
                CodeGenerationMethodInfo.GetIsNew(this),
                CodeGenerationMethodInfo.GetIsUnsafe(this),
                CodeGenerationMethodInfo.GetIsPartial(this),
                CodeGenerationMethodInfo.GetIsAsync(this),
                CodeGenerationMethodInfo.GetStatements(this),
                CodeGenerationMethodInfo.GetHandlesExpressions(this));

            return result;
        }
        internal static IMethodSymbol CreateMethodSymbol(
            INamedTypeSymbol containingType,
            ImmutableArray <AttributeData> attributes,
            Accessibility accessibility, DeclarationModifiers modifiers,
            ITypeSymbol returnType, bool returnsByRef,
            IMethodSymbol explicitInterfaceSymbol, string name,
            ImmutableArray <ITypeParameterSymbol> typeParameters,
            ImmutableArray <IParameterSymbol> parameters,
            ImmutableArray <SyntaxNode> statements              = default(ImmutableArray <SyntaxNode>),
            ImmutableArray <SyntaxNode> handlesExpressions      = default(ImmutableArray <SyntaxNode>),
            ImmutableArray <AttributeData> returnTypeAttributes = default(ImmutableArray <AttributeData>),
            MethodKind methodKind = MethodKind.Ordinary)
        {
            var result = new CodeGenerationMethodSymbol(containingType, attributes, accessibility, modifiers, returnType, returnsByRef, explicitInterfaceSymbol, name, typeParameters, parameters, returnTypeAttributes, methodKind);

            CodeGenerationMethodInfo.Attach(result, modifiers.IsNew, modifiers.IsUnsafe, modifiers.IsPartial, modifiers.IsAsync, statements, handlesExpressions);
            return(result);
        }
Пример #7
0
 internal static IMethodSymbol CreateMethodSymbol(INamedTypeSymbol containingType, IList<AttributeData> attributes, Accessibility accessibility, DeclarationModifiers modifiers, ITypeSymbol returnType, IMethodSymbol explicitInterfaceSymbol, string name, IList<ITypeParameterSymbol> typeParameters, IList<IParameterSymbol> parameters, IList<SyntaxNode> statements = null, IList<SyntaxNode> handlesExpressions = null, IList<AttributeData> returnTypeAttributes = null, MethodKind methodKind = MethodKind.Ordinary, bool returnsByRef = false)
 {
     var result = new CodeGenerationMethodSymbol(containingType, attributes, accessibility, modifiers, returnType, returnsByRef, explicitInterfaceSymbol, name, typeParameters, parameters, returnTypeAttributes, methodKind);
     CodeGenerationMethodInfo.Attach(result, modifiers.IsNew, modifiers.IsUnsafe, modifiers.IsPartial, modifiers.IsAsync, statements, handlesExpressions);
     return result;
 }