Пример #1
0
            public override void VisitVariableDeclarator([NotNull] IVariableDeclaratorOperation operation)
            {
                IVariableInitializerOperation initializer = operation.GetVariableInitializer();

                if (initializer != null)
                {
                    IdentifiersAssigned.Add(operation.Symbol.Name);
                }

                base.VisitVariableDeclarator(operation);
            }
Пример #2
0
            public override void VisitVariableDeclarator([NotNull] IVariableDeclaratorOperation operation)
            {
                if (local.Equals(operation.Symbol))
                {
                    IVariableInitializerOperation initializer = operation.GetVariableInitializer();
                    if (initializer != null)
                    {
                        TrySetEvent(initializer.Value);
                    }
                }

                base.VisitVariableDeclarator(operation);
            }
                public override void VisitVariableDeclarator([NotNull] IVariableDeclaratorOperation operation)
                {
                    base.VisitVariableDeclarator(operation);

                    if (currentLocal.Equals(operation.Symbol) && EndsBeforeMaxLocation(operation))
                    {
                        IVariableInitializerOperation initializer = operation.GetVariableInitializer();
                        if (initializer != null)
                        {
                            AnalyzeAssignmentValue(initializer.Value);
                        }
                    }
                }
        public override TAbstractAnalysisValue VisitVariableDeclarator(IVariableDeclaratorOperation operation, object argument)
        {
            var value = base.VisitVariableDeclarator(operation, argument);

            // Handle variable declarations without initializer (IVariableInitializerOperation).
            var initializer = operation.GetVariableInitializer();

            if (initializer == null)
            {
                value = ValueDomain.Bottom;
                SetAbstractValue(operation.Symbol, value);
            }

            return(value);
        }
        public override TAbstractAnalysisValue VisitVariableDeclarator(IVariableDeclaratorOperation operation, object argument)
        {
            var value = base.VisitVariableDeclarator(operation, argument);

            // Handle variable declarations without initializer (IVariableInitializerOperation).
            var initializer = operation.GetVariableInitializer();

            if (initializer == null)
            {
                value = ValueDomain.Bottom;
                if (AnalysisEntityFactory.TryCreateForSymbolDeclaration(operation.Symbol, out AnalysisEntity analysisEntity))
                {
                    SetAbstractValue(analysisEntity, value);
                }
            }

            return(value);
        }
                    static async Task <Document?> HandleVariableDeclarator(IVariableDeclaratorOperation variableDeclaratorOperation, Document doc, SyntaxNode root, CancellationToken cancellationToken)
                    {
                        IVariableDeclarationOperation      variableDeclarationOperation      = (IVariableDeclarationOperation)variableDeclaratorOperation.Parent;
                        IVariableDeclarationGroupOperation variableGroupDeclarationOperation = (IVariableDeclarationGroupOperation)variableDeclarationOperation.Parent;

                        DocumentEditor editor = await DocumentEditor.CreateAsync(doc, cancellationToken).ConfigureAwait(false);

                        SyntaxGenerator generator     = editor.Generator;
                        ILocalSymbol    currentSymbol = variableDeclaratorOperation.Symbol;

                        var        variableInitializerOperation = variableDeclaratorOperation.GetVariableInitializer();
                        string     unitString = (string)variableInitializerOperation.Value.ConstantValue.Value;
                        char       charValue  = unitString[0];
                        SyntaxNode charLiteralExpressionNode = generator.LiteralExpression(charValue);
                        var        charTypeNode   = generator.TypeExpression(SpecialType.System_Char);
                        var        charSyntaxNode = generator.LocalDeclarationStatement(charTypeNode, currentSymbol.Name, charLiteralExpressionNode, isConst: true);

                        charSyntaxNode = charSyntaxNode.WithTriviaFrom(variableGroupDeclarationOperation.Syntax);
                        var newRoot = generator.ReplaceNode(root, variableGroupDeclarationOperation.Syntax, charSyntaxNode);

                        return(doc.WithSyntaxRoot(newRoot));
                    }