Example #1
0
            private ISymbol GenerateMethod(
                Compilation compilation,
                IMethodSymbol method,
                Accessibility accessibility,
                DeclarationModifiers modifiers,
                bool generateAbstractly,
                bool useExplicitInterfaceSymbol,
                string memberName,
                CancellationToken cancellationToken)
            {
                var syntaxFacts = this.Document.GetLanguageService <ISyntaxFactsService>();

                var updatedMethod = method.EnsureNonConflictingNames(
                    this.State.ClassOrStructType, syntaxFacts, cancellationToken);

                updatedMethod = updatedMethod.RemoveInaccessibleAttributesAndAttributesOfType(
                    accessibleWithin: this.State.ClassOrStructType,
                    removeAttributeType: compilation.ComAliasNameAttributeType());

                return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                           updatedMethod,
                           accessibility: accessibility,
                           modifiers: modifiers,
                           explicitInterfaceSymbol: useExplicitInterfaceSymbol ? updatedMethod : null,
                           name: memberName,
                           statements: generateAbstractly ? null : new[] { CreateStatement(compilation, updatedMethod, cancellationToken) }));
            }
            private ISymbol GenerateMethod(
                Compilation compilation,
                IMethodSymbol method,
                Accessibility accessibility,
                DeclarationModifiers modifiers,
                bool generateAbstractly,
                bool useExplicitInterfaceSymbol,
                string memberName
                )
            {
                var syntaxFacts = Document.GetLanguageService <ISyntaxFactsService>();

                var updatedMethod = method.EnsureNonConflictingNames(
                    State.ClassOrStructType,
                    syntaxFacts
                    );

                updatedMethod = updatedMethod.RemoveInaccessibleAttributesAndAttributesOfTypes(
                    State.ClassOrStructType,
                    AttributesToRemove(compilation)
                    );

                return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                           updatedMethod,
                           accessibility: accessibility,
                           modifiers: modifiers,
                           explicitInterfaceImplementations: useExplicitInterfaceSymbol
                      ? ImmutableArray.Create(updatedMethod)
                      : default,
            private ISymbol GenerateMethod(
                Compilation compilation,
                IMethodSymbol method,
                Accessibility accessibility,
                DeclarationModifiers modifiers,
                bool generateAbstractly,
                bool useExplicitInterfaceSymbol,
                string memberName,
                CancellationToken cancellationToken)
            {
                var syntaxFacts = this.Document.GetLanguageService<ISyntaxFactsService>();

                var updatedMethod = method.EnsureNonConflictingNames(
                    this.State.ClassOrStructType, syntaxFacts, cancellationToken);

                updatedMethod = updatedMethod.RemoveInaccessibleAttributesAndAttributesOfTypes(
                    this.State.ClassOrStructType,
                    AttributesToRemove(compilation));

                return CodeGenerationSymbolFactory.CreateMethodSymbol(
                    updatedMethod,
                    accessibility: accessibility,
                    modifiers: modifiers,
                    explicitInterfaceSymbol: useExplicitInterfaceSymbol ? updatedMethod : null,
                    name: memberName,
                    statements: generateAbstractly ? null : new[] { CreateStatement(compilation, updatedMethod, cancellationToken) });
            }
            private ISymbol GenerateMethod(
                IMethodSymbol method, DeclarationModifiers modifiers, Accessibility accessibility, CancellationToken cancellationToken)
            {
                var syntaxFactory = _document.Project.LanguageServices.GetService <SyntaxGenerator>();

                var throwingBody = syntaxFactory.CreateThrowNotImplementStatement(_model.Compilation);

                method = method.EnsureNonConflictingNames(_state.ClassType, cancellationToken);

                return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                           method,
                           accessibility: accessibility,
                           modifiers: modifiers,
                           statements: new [] { throwingBody }));
            }
Example #5
0
            private ISymbol GenerateMethod(
                Compilation compilation,
                IMethodSymbol method,
                Accessibility accessibility,
                DeclarationModifiers modifiers,
                bool generateAbstractly,
                bool useExplicitInterfaceSymbol,
                string memberName,
                CancellationToken cancellationToken)
            {
                var updatedMethod = method.EnsureNonConflictingNames(
                    this.State.ClassOrStructType, cancellationToken);

                updatedMethod = updatedMethod.RemoveAttributeFromParametersAndReturnType(compilation.ComAliasNameAttributeType());

                return(CodeGenerationSymbolFactory.CreateMethodSymbol(
                           updatedMethod,
                           accessibility: accessibility,
                           modifiers: modifiers,
                           explicitInterfaceSymbol: useExplicitInterfaceSymbol ? updatedMethod : null,
                           name: memberName,
                           statements: generateAbstractly ? null : new[] { CreateStatement(compilation, updatedMethod, cancellationToken) }));
            }
            private ISymbol GenerateMethod(
                Compilation compilation,
                IMethodSymbol method,
                Accessibility accessibility,
                DeclarationModifiers modifiers,
                bool generateAbstractly,
                bool useExplicitInterfaceSymbol,
                string memberName,
                CancellationToken cancellationToken)
            {

                var updatedMethod = method.EnsureNonConflictingNames(
                    this.State.ClassOrStructType, cancellationToken);

                updatedMethod = updatedMethod.RemoveAttributeFromParametersAndReturnType(compilation.ComAliasNameAttributeType());

                return CodeGenerationSymbolFactory.CreateMethodSymbol(
                    updatedMethod,
                    accessibility: accessibility,
                    modifiers: modifiers,
                    explicitInterfaceSymbol: useExplicitInterfaceSymbol ? updatedMethod : null,
                    name: memberName,
                    statements: generateAbstractly ? null : new[] { CreateStatement(compilation, updatedMethod, cancellationToken) });
            }
            private ISymbol GenerateMethod(
                IMethodSymbol method, DeclarationModifiers modifiers, Accessibility accessibility, CancellationToken cancellationToken)
            {
                var syntaxFacts = _document.Project.LanguageServices.GetService<ISyntaxFactsService>();
                var syntaxFactory = _document.Project.LanguageServices.GetService<SyntaxGenerator>();
                var throwingBody = syntaxFactory.CreateThrowNotImplementedStatementBlock(
                    _model.Compilation);

                method = method.EnsureNonConflictingNames(_state.ClassType, syntaxFacts, cancellationToken);

                return CodeGenerationSymbolFactory.CreateMethodSymbol(
                    method,
                    accessibility: accessibility,
                    modifiers: modifiers,
                    statements: throwingBody);
            }