private bool MethodNameNotFound(MethodInformation methodInformation) { var invocationExpression = (InvocationExpressionSyntax)context.Node; var memberExpression = invocationExpression.Expression as MemberAccessExpressionSyntax; return(memberExpression?.Name?.Identifier.ValueText != methodInformation.MethodName); }
private bool QualifiedConstructorNameNotFound(MethodInformation methodInformation) { var objectCreationExpressionSyntax = (ObjectCreationExpressionSyntax)context.Node; var identifier = objectCreationExpressionSyntax.Type as QualifiedNameSyntax; return(identifier?.Right.ToString() != methodInformation.MethodName); }
private bool AbreviatedConstructorNameNotFound(MethodInformation methodInformation) { var objectCreationExpressionSyntax = (ObjectCreationExpressionSyntax)context.Node; var identifier = objectCreationExpressionSyntax.Type as IdentifierNameSyntax; return(identifier?.Identifier.ValueText != methodInformation.MethodName); }
private static void Analyzer(SyntaxNodeAnalysisContext context) { if (context.IsGenerated()) return; var mainConstrutor = new MethodInformation( nameof(Uri), "System.Uri.Uri(string)", args => { { if (args[0] == null) { return; } new Uri(args[0].ToString()); } } ); var constructorWithUriKind = new MethodInformation( nameof(Uri), "System.Uri.Uri(string, System.UriKind)", args => { if (args[0] == null) { return; } new Uri(args[0].ToString(), (UriKind)args[1]); } ); var checker = new MethodChecker(context, Rule); checker.AnalyzeConstructor(mainConstrutor); checker.AnalyzeConstructor(constructorWithUriKind); }
public void AnalyzeConstructor(MethodInformation methodInformation) { if (ConstructorNameNotFound(methodInformation) || MethodFullNameNotFound(methodInformation.MethodFullDefinition)) return; var argumentList = ((ObjectCreationExpressionSyntax)context.Node).ArgumentList; var arguments = GetArguments(argumentList); Execute(methodInformation, arguments, argumentList); }
public void AnalyzeConstructor(MethodInformation methodInformation) { if (ConstructorNameNotFound(methodInformation) || MethodFullNameNotFound(methodInformation.MethodFullDefinition)) { return; } var argumentList = ((ObjectCreationExpressionSyntax)context.Node).ArgumentList; var arguments = GetArguments(argumentList); Execute(methodInformation, arguments, argumentList); }
public void AnalyzeMethod(MethodInformation methodInformation) { if (MethodNameNotFound(methodInformation) || MethodFullNameNotFound(methodInformation.MethodFullDefinition)) { return; } var argumentList = ((InvocationExpressionSyntax)context.Node).ArgumentList; var arguments = GetArguments(argumentList); Execute(methodInformation, arguments, argumentList); }
public void AnalyzeMethod(MethodInformation methodInformation) { if (MethodNameNotFound(methodInformation) || MethodFullNameNotFound(methodInformation.MethodFullDefinition)) { return; } var argumentList = ((InvocationExpressionSyntax)context.Node).ArgumentList; var arguments = GetArguments(argumentList); Execute(methodInformation, arguments, argumentList); }
private static void Analyzer(SyntaxNodeAnalysisContext context) { if (context.IsGenerated()) return; var method = new MethodInformation( "Parse", "System.Net.IPAddress.Parse(string)", args => { parseMethodInfo.Value.Invoke(null, new[] { args[0].ToString() }); } ); var checker = new MethodChecker(context, Rule); checker.AnalyzeMethod(method); }
private void Execute(MethodInformation methodInformation, List<object> arguments, ArgumentListSyntax argumentList) { if (!argumentList.Arguments.Any()) { return; } try { methodInformation.MethodAction.Invoke(arguments); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } var diag = Diagnostic.Create(diagnosticDescriptor, argumentList.Arguments[methodInformation.ArgumentIndex].GetLocation(), ex.Message); context.ReportDiagnostic(diag); } }
private void Execute(MethodInformation methodInformation, List <object> arguments, ArgumentListSyntax argumentList) { if (!argumentList.Arguments.Any()) { return; } try { methodInformation.MethodAction.Invoke(arguments); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } var diag = Diagnostic.Create(diagnosticDescriptor, argumentList.Arguments[methodInformation.ArgumentIndex].GetLocation(), ex.Message); context.ReportDiagnostic(diag); } }
private bool MethodNameNotFound(MethodInformation methodInformation) { var invocationExpression = (InvocationExpressionSyntax)context.Node; var memberExpression = invocationExpression.Expression as MemberAccessExpressionSyntax; return memberExpression?.Name?.Identifier.ValueText != methodInformation.MethodName; }
private bool QualifiedConstructorNameNotFound(MethodInformation methodInformation) { var objectCreationExpressionSyntax = (ObjectCreationExpressionSyntax)context.Node; var identifier = objectCreationExpressionSyntax.Type as QualifiedNameSyntax; return identifier?.Right.ToString() != methodInformation.MethodName; }
private bool AbreviatedConstructorNameNotFound(MethodInformation methodInformation) { var objectCreationExpressionSyntax = (ObjectCreationExpressionSyntax) context.Node; var identifier = objectCreationExpressionSyntax.Type as IdentifierNameSyntax; return identifier?.Identifier.ValueText != methodInformation.MethodName; }
private bool ConstructorNameNotFound(MethodInformation methodInformation) { return AbreviatedConstructorNameNotFound(methodInformation) && QualifiedConstructorNameNotFound(methodInformation); }
private bool ConstructorNameNotFound(MethodInformation methodInformation) { return(AbreviatedConstructorNameNotFound(methodInformation) && QualifiedConstructorNameNotFound(methodInformation)); }