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); }
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); }
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)); }