Exemple #1
0
        public ExplodedGraph(IControlFlowGraph cfg, ISymbol declaration, SemanticModel semanticModel, LiveVariableAnalysis lva)
        {
            this.cfg         = cfg;
            this.declaration = declaration;
            this.lva         = lva;

            SemanticModel = semanticModel;

            declarationParameters      = declaration.GetParameters();
            nonInDeclarationParameters = declarationParameters.Where(p => p.RefKind != RefKind.None);
        }
Exemple #2
0
        public ExplodedGraph(IControlFlowGraph cfg, ISymbol declaration, SemanticModel semanticModel, Common.LiveVariableAnalysis lva)
        {
            this.cfg           = cfg;
            this.semanticModel = semanticModel;
            this.declaration   = declaration;
            this.lva           = lva;

            var methodSymbol = declaration as IMethodSymbol;

            if (methodSymbol != null)
            {
                declarationParameters = methodSymbol.Parameters;
            }

            var propertySymbol = declaration as IPropertySymbol;

            if (propertySymbol != null)
            {
                declarationParameters = propertySymbol.Parameters;
            }

            nonInDeclarationParameters = declarationParameters.Where(p => p.RefKind != RefKind.None);
        }
Exemple #3
0
 public ExplodedGraph(IControlFlowGraph cfg, ISymbol declaration, SemanticModel semanticModel, Common.LiveVariableAnalysis lva)
     : base(cfg, declaration, semanticModel, lva)
 {
     // Add mandatory checks
     AddExplodedGraphCheck(new NullPointerDereference.NullPointerCheck(this));
     AddExplodedGraphCheck(new EmptyNullableValueAccess.NullValueAccessedCheck(this));
     AddExplodedGraphCheck(new InvalidCastToInterface.NullableCastCheck(this));
 }