public override void VisitIdentifierName(IdentifierNameSyntax node) { if (_ignoredSpans?.HasIntervalThatOverlapsWith(node.FullSpan.Start, node.FullSpan.Length) ?? false) { return; } // Always try to simplify identifiers with an 'Attribute' suffix. // // In other cases, don't bother looking at the right side of A.B or A::B. We will process those in // one of our other top level Visit methods (like VisitQualifiedName). var canTrySimplify = node.Identifier.ValueText.EndsWith("Attribute", StringComparison.Ordinal); if (!canTrySimplify && !node.IsRightSideOfDotOrArrowOrColonColon()) { // The only possible simplifications to an unqualified identifier are replacement with an alias or // replacement with a predefined type. canTrySimplify = CanReplaceIdentifierWithAlias(node.Identifier.ValueText) || CanReplaceIdentifierWithPredefinedType(node.Identifier.ValueText); } if (canTrySimplify && TrySimplify(node)) { // found a match. report it and stop processing. return; } // descend further. DefaultVisit(node); return; // Local functions bool CanReplaceIdentifierWithAlias(string identifier) => _aliasedNames.Contains(identifier);
public override void VisitIdentifierName(IdentifierNameSyntax node) { // Always try to simplify identifiers with an 'Attribute' suffix. // // In other cases, don't bother looking at the right side of A.B or A::B. We will process those in // one of our other top level Visit methods (like VisitQualifiedName). var canTrySimplify = node.Identifier.ValueText !.EndsWith("Attribute", StringComparison.Ordinal) || !node.IsRightSideOfDotOrArrowOrColonColon(); if (canTrySimplify && TrySimplify(node)) { // found a match. report it and stop processing. return; } // descend further. DefaultVisit(node); }