/// <summary>
 /// Creates an method type symbol that can be used to describe an accessor method declaration.
 /// </summary>
 public static IMethodSymbol CreateAccessorSymbol(
     ImmutableArray <AttributeData> attributes,
     Accessibility accessibility,
     ImmutableArray <SyntaxNode> statements)
 {
     return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                attributes,
                accessibility,
                new DeclarationModifiers(isAbstract: statements == null),
                returnType: null,
                returnsByRef: false,
                explicitInterfaceImplementations: default,
 /// <summary>
 /// Creates an method type symbol that can be used to describe an accessor method declaration.
 /// </summary>
 public static IMethodSymbol CreateAccessorSymbol(
     IList <AttributeData> attributes,
     Accessibility accessibility,
     IList <SyntaxNode> statements)
 {
     return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                attributes,
                accessibility,
                new SymbolModifiers(isAbstract: statements == null),
                null, null,
                string.Empty,
                null, null,
                statements: statements));
 }
 /// <summary>
 /// Creates an method type symbol that can be used to describe an accessor method declaration.
 /// </summary>
 public static IMethodSymbol CreateAccessorSymbol(
     IList <AttributeData> attributes,
     Accessibility accessibility,
     IList <SyntaxNode> statements)
 {
     return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                attributes,
                accessibility,
                new DeclarationModifiers(isAbstract: statements == null),
                returnType: null,
                returnsByRef: false,
                explicitInterfaceSymbol: null,
                name: string.Empty,
                typeParameters: null,
                parameters: null,
                statements: statements));
 }
 internal static IMethodSymbol CreateAccessorSymbol(
     IMethodSymbol accessor,
     IList <AttributeData> attributes      = null,
     Accessibility?accessibility           = null,
     IMethodSymbol explicitInterfaceSymbol = null,
     IList <SyntaxNode> statements         = null)
 {
     return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                attributes,
                accessibility ?? accessor.DeclaredAccessibility,
                accessor.GetSymbolModifiers().WithIsAbstract(statements == null),
                accessor.ReturnType,
                explicitInterfaceSymbol ?? accessor.ExplicitInterfaceImplementations.FirstOrDefault(),
                accessor.Name,
                accessor.TypeParameters,
                accessor.Parameters,
                statements,
                returnTypeAttributes: accessor.GetReturnTypeAttributes()));
 }
 internal static IMethodSymbol CreateAccessorSymbol(
     IMethodSymbol accessor,
     ImmutableArray <AttributeData> attributes = default(ImmutableArray <AttributeData>),
     Accessibility?accessibility = null,
     ImmutableArray <IMethodSymbol> explicitInterfaceImplementations = default,
     ImmutableArray <SyntaxNode> statements = default(ImmutableArray <SyntaxNode>))
 {
     return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                attributes,
                accessibility ?? accessor.DeclaredAccessibility,
                accessor.GetSymbolModifiers().WithIsAbstract(statements == null),
                accessor.ReturnType,
                accessor.ReturnsByRef,
                explicitInterfaceImplementations.IsDefault ? accessor.ExplicitInterfaceImplementations : explicitInterfaceImplementations,
                accessor.Name,
                accessor.TypeParameters,
                accessor.Parameters,
                statements,
                returnTypeAttributes: accessor.GetReturnTypeAttributes()));
 }
 internal static IMethodSymbol CreateMethodSymbol(
     IMethodSymbol method,
     IList <AttributeData> attributes      = null,
     Accessibility?accessibility           = null,
     SymbolModifiers?modifiers             = null,
     IMethodSymbol explicitInterfaceSymbol = null,
     string name = null,
     IList <SyntaxNode> statements = null)
 {
     return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                attributes,
                accessibility ?? method.DeclaredAccessibility,
                modifiers ?? method.GetSymbolModifiers(),
                method.ReturnType,
                explicitInterfaceSymbol,
                name ?? method.Name,
                method.TypeParameters,
                method.Parameters,
                statements,
                returnTypeAttributes: method.GetReturnTypeAttributes()));
 }