public TaintBlockAnalyzer(IVulnerabilityStorage vulnerabilityStorage, IIncludeResolver inclusionResolver, AnalysisScope scope,
Func<ImmutableVariableStorage, IIncludeResolver, AnalysisScope, AnalysisStacks, ImmutableVariableStorage> analyzeTaint,
AnalysisStacks stacks, FunctionAndMethodAnalyzerFactory subroutineAnalyzerFactory)
: this()
{
Preconditions.NotNull(vulnerabilityStorage, "vulnerabilityStorage");
Preconditions.NotNull(inclusionResolver, "inclusionResolver");
Preconditions.NotNull(analyzeTaint, "analyzeTaint");
Preconditions.NotNull(stacks, "stacks");
Preconditions.NotNull(subroutineAnalyzerFactory, "subroutineAnalyzerFactory");
this._vulnerabilityStorage = vulnerabilityStorage;
this._inclusionResolver = inclusionResolver;
this._analyzer = analyzeTaint;
this._analysisScope = scope;
this.ReturnInfos = new List<ExpressionInfo>();
this._analysisStacks = stacks;
this._subroutineAnalyzerFactory = subroutineAnalyzerFactory;
}