Exemple #1
0
        private static bool IsCodeContractToReplace(Compilation compilation, IInvocationOperation invocation)
        {
            if (invocation.TargetMethod.ContainingType.Name != ContractStatementAnalyzer.SpecialContractClass)
            {
                return(false);
            }

            if (invocation.TargetMethod.IsGenericMethod)
            {
                return(false);
            }

            if (!MethodNamesToFix.Contains(invocation.TargetMethod.Name))
            {
                return(false);
            }

            if (invocation.Arguments.Length == 3)
            {
                if (invocation.Arguments[2].Parameter.Name == "conditionString" &&
                    invocation.Arguments[2].ArgumentKind != ArgumentKind.DefaultValue &&
                    invocation.Arguments[2].Syntax is ArgumentSyntax argSynt &&
                    argSynt.Expression is LiteralExpressionSyntax literal &&
                    literal.IsKind(SyntaxKind.StringLiteralExpression))
                {
                    if (literal.Token.ValueText != invocation.Arguments[0].Syntax.ToString())
                    {
                        return(true);
                    }
                }
                if (invocation.Arguments[1].Parameter.Name == "conditionString" &&
                    invocation.Arguments[1].ArgumentKind != ArgumentKind.DefaultValue &&
                    invocation.Arguments[1].Syntax is ArgumentSyntax argSynt2 &&
                    argSynt2.Expression is LiteralExpressionSyntax literal2 &&
                    literal2.IsKind(SyntaxKind.StringLiteralExpression))
                {
                    if (literal2.Token.ValueText != invocation.Arguments[0].Syntax.ToString())
                    {
                        return(true);
                    }
                }
            }

            if (invocation.Arguments.Length == 2)
            {
                if (invocation.Arguments[1].Syntax is ArgumentSyntax argSynt &&
                    (argSynt.NameColon != null && argSynt.NameColon.Name.Identifier.ValueText == "conditionString") &&
                    argSynt.Expression is LiteralExpressionSyntax literal &&
                    literal.IsKind(SyntaxKind.StringLiteralExpression))
                {
                    if (literal.Token.ValueText != invocation.Arguments[0].Syntax.ToString())
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Exemple #2
0
        private static bool IsCodeContractToReplace(Compilation compilation, IInvocationOperation invocation)
        {
            if (!compilation.IsEqualTypes(invocation.TargetMethod.ContainingType, typeof(System.Diagnostics.Contracts.Contract)))
            {
                return(false);
            }

            if (invocation.TargetMethod.IsGenericMethod)
            {
                return(false);
            }

            return(MethodNamesToFix.Contains(invocation.TargetMethod.Name));
        }
Exemple #3
0
        private static bool IsCodeContractToReplace(Compilation compilation, IInvocationOperation invocation)
        {
            if (invocation.TargetMethod.ContainingType.Name != ContractStatementAnalyzer.SpecialContractClass)
            {
                return(false);
            }

            if (invocation.TargetMethod.IsGenericMethod)
            {
                return(false);
            }

            if (!MethodNamesToFix.Contains(invocation.TargetMethod.Name))
            {
                return(false);
            }

            if (invocation.Arguments.Length >= 2)
            {
                return(false);
            }

            return(true);
        }