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); }
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)); }
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); }