Esempio n. 1
0
        private static void AnalyzeMethod(SymbolAnalysisContext context)
        {
            var method = (IMethodSymbol)context.Symbol;

            if (!method.IsPropertyOrEventAccessor() && MemberRequiresAnalysis(method, context.CancellationToken))
            {
                string memberName = GetMemberName(method);

                AnalyzeParameters(context.Wrap(method.Parameters), method, memberName);

                if (MethodCanReturnValue(method))
                {
                    AnalyzeReturnType(context.Wrap(method.ReturnType), method, memberName);
                }
            }
        }
Esempio n. 2
0
        private static void AnalyzeNamedType(SymbolAnalysisContext context)
        {
            var type = (INamedTypeSymbol)context.Symbol;

            if (IsDelegate(type))
            {
                IMethodSymbol method = type.DelegateInvokeMethod;
                if (method != null)
                {
                    string typeName = $"Delegate '{type.Name}'";

                    AnalyzeParameters(context.Wrap(method.Parameters), type, typeName);
                    AnalyzeReturnType(context.Wrap(method.ReturnType), type, typeName);
                }
            }
        }
Esempio n. 3
0
        private static void AnalyzeProperty(SymbolAnalysisContext context)
        {
            var property = (IPropertySymbol)context.Symbol;

            if (property.IsIndexer && MemberRequiresAnalysis(property, context.CancellationToken))
            {
                AnalyzeParameters(context.Wrap(property.Parameters), property, "Indexer");
            }
        }
Esempio n. 4
0
        private static void AnalyzeAccessorMethod([CanBeNull] IMethodSymbol accessorMethod,
                                                  [NotNull] DiagnosticCollector collector, SymbolAnalysisContext context)
        {
            if (accessorMethod == null || ShouldSkip(accessorMethod))
            {
                return;
            }

            InnerAnalyzeMethod(context.Wrap(accessorMethod), collector);
        }
Esempio n. 5
0
        private static void AnalyzeMethod(SymbolAnalysisContext context)
        {
            var method = (IMethodSymbol)context.Symbol;

            if (ShouldSkip(method) || method.IsPropertyOrEventAccessor())
            {
                return;
            }

            using var collector = new DiagnosticCollector(context.ReportDiagnostic);

            InnerAnalyzeMethod(context.Wrap(method), collector);
        }
        private static void AnalyzeDelegate([NotNull] INamedTypeSymbol type, SymbolAnalysisContext context, int maxParameterCount)
        {
            IMethodSymbol method = type.DelegateInvokeMethod;

            if (method != null)
            {
                string typeName = $"Delegate '{type.Name}'";

                var info = new ParameterCountInfo <ImmutableArray <IParameterSymbol> >(context.Wrap(method.Parameters),
                                                                                       maxParameterCount);
                AnalyzeParameters(info, type, typeName);

                AnalyzeReturnType(context.Wrap(method.ReturnType), type, typeName);
            }
        }
        private static void AnalyzeMethod(SymbolAnalysisContext context, int maxParameterCount)
        {
            var method = (IMethodSymbol)context.Symbol;

            if (!method.IsPropertyOrEventAccessor() && MemberRequiresAnalysis(method, context.CancellationToken))
            {
                string memberName = GetMemberName(method);

                var info = new ParameterCountInfo <ImmutableArray <IParameterSymbol> >(context.Wrap(method.Parameters),
                                                                                       maxParameterCount);
                AnalyzeParameters(info, method, memberName);

                if (MethodCanReturnValue(method))
                {
                    AnalyzeReturnType(context.Wrap(method.ReturnType), method, memberName);
                }
            }
        }
        private static void AnalyzeProperty(SymbolAnalysisContext context, int maxParameterCount)
        {
            var property = (IPropertySymbol)context.Symbol;

            if (property.IsIndexer && MemberRequiresAnalysis(property, context.CancellationToken))
            {
                var info = new ParameterCountInfo <ImmutableArray <IParameterSymbol> >(context.Wrap(property.Parameters),
                                                                                       maxParameterCount);
                AnalyzeParameters(info, property, "Indexer");
            }
        }