Example #1
0
        protected override IEnumerable <Diagnostic> AnalyzeName(IParameterSymbol symbol)
        {
            switch (symbol.Name)
            {
            case ExpectedName:
            case "exception":
            case "innerException":
                return(Enumerable.Empty <Diagnostic>());

            case "inner":
                if (symbol.ContainingSymbol.IsConstructor() && symbol.ContainingType.IsException())
                {
                    return(Enumerable.Empty <Diagnostic>());
                }

                break;

            default:
                if (symbol.ContainingSymbol.IsConstructor() && symbol.MatchesProperty())
                {
                    return(Enumerable.Empty <Diagnostic>());
                }

                break;
            }

            return(new[] { Issue(symbol, ExpectedName, "exception") });
        }