Exemplo n.º 1
0
            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);
                }
            }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
            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));
            }
Exemplo n.º 4
0
        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);
                    }
                }
            }
        }