Exemplo n.º 1
0
            public override void VisitVariableDeclarator(VariableDeclaratorSyntax node)
            {
                base.VisitVariableDeclarator(node);

                var symbol = model.GetDeclaredSymbol(node);

                if (symbol != null && node.Initializer != null)
                {
                    var context   = new RoslynExtensions.ValueContext();
                    var valueType = node.Initializer.Value.GetTypeOfValue(model, context);
                    if (mode == AnalysisMode.Strict && !context.HasNotNullAttribute)
                    {
                        valueType = ValueType.Null;
                    }
                    Assignments.Add(new Assignment(symbol, node.Initializer.Value, valueType));
                }
            }
Exemplo n.º 2
0
            public override void VisitAssignmentExpression(AssignmentExpressionSyntax node)
            {
                base.VisitAssignmentExpression(node);

                var symbol = model.GetSymbolInfo(node.Left).Symbol;

                if (symbol != null)
                {
                    var context   = new RoslynExtensions.ValueContext();
                    var valueType = node.Right.GetTypeOfValue(model, context);
                    if (mode == AnalysisMode.Strict && !context.HasNotNullAttribute)
                    {
                        valueType = ValueType.Null;
                    }
                    var item = new Assignment(symbol, node, valueType);
                    Assignments.Add(item);
                }
            }