public override void VisitIdentifierName(IdentifierNameSyntax node) { if (node.Identifier.ValueText == IdentifierSymbol.Name && SymbolEqualityComparer.Default.Equals(SemanticModel.GetSymbol(node, CancellationToken), IdentifierSymbol) && !IsFixable(node)) { Success = false; } base.VisitIdentifierName(node); bool IsFixable(IdentifierNameSyntax node) { if (node.IsParentKind(SyntaxKind.SimpleMemberAccessExpression)) { var memberAccess = (MemberAccessExpressionSyntax)node.Parent; if (object.ReferenceEquals(memberAccess.Expression, node)) { foreach (ISymbol parameter in Parameters) { if (string.Equals(parameter.Name, memberAccess.Name.Identifier.ValueText, StringComparison.OrdinalIgnoreCase)) { return(true); } } } } return(false); } }
public override void VisitIdentifierName(IdentifierNameSyntax node) { if (!string.Equals(node.Identifier.ValueText, _name)) { return; } if (_symbol == null) { _symbol = _semanticModel.GetDeclaredSymbol(_variableDeclarator, _cancellationToken); if (_symbol?.IsErrorType() != false) { IsFixable = false; return; } } if (!_symbol.Equals(_semanticModel.GetSymbol(node, _cancellationToken))) { return; } if (!node.IsParentKind(SyntaxKind.SimpleMemberAccessExpression)) { IsFixable = false; return; } var memberAccessExpression = (MemberAccessExpressionSyntax)node.Parent; if (memberAccessExpression.Expression != node) { IsFixable = false; return; } if (!(memberAccessExpression.Name is IdentifierNameSyntax identifierName)) { IsFixable = false; return; } if (!string.Equals(identifierName.Identifier.ValueText, WellKnownMemberNames.CurrentPropertyName, StringComparison.Ordinal)) { IsFixable = false; return; } IsFixable = true; }
public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node) { if (_enumTypeSymbol != null && !node.IsParentKind(SyntaxKind.SimpleMemberAccessExpression)) { MemberAccessExpressionSyntax newNode = CSharpFactory.SimpleMemberAccessExpression( SyntaxFactory.ParseExpression(_enumTypeSymbol.ToDisplayString(SymbolDisplayFormats.TypeNameAndContainingTypesAndNamespaces)), node); if (!Options.FullyQualifiedNames) { newNode = newNode.WithAdditionalAnnotations(_simplifierAnnotationAsArray); } return(newNode); } return(base.VisitIdentifierName(node)); }
public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node) { if (_replacementMap.TryGetValue(node, out object newValue)) { var newNode = (ExpressionSyntax)newValue; if (!newNode.IsKind(SyntaxKind.IdentifierName, SyntaxKind.PredefinedType) && !node.IsParentKind(SyntaxKind.TypeArgumentList)) { newNode = newNode.Parenthesize(); } return(newNode); } else { return(base.VisitIdentifierName(node)); } }
public static void Analyze(SyntaxNodeAnalysisContext context, IdentifierNameSyntax identifierName) { if (!identifierName.IsVar && !identifierName.IsParentKind( SyntaxKind.SimpleMemberAccessExpression, SyntaxKind.QualifiedName, SyntaxKind.UsingDirective)) { var typeSymbol = context.SemanticModel.GetSymbol(identifierName, context.CancellationToken) as ITypeSymbol; if (typeSymbol?.SupportsPredefinedType() == true) { IAliasSymbol aliasSymbol = context.SemanticModel.GetAliasInfo(identifierName, context.CancellationToken); if (aliasSymbol == null) { ReportDiagnostic(context, identifierName); } } } }