public static Common.LiveVariableAnalysis Analyze(IControlFlowGraph controlFlowGraph, ISymbol declaration, SemanticModel semanticModel) { var lva = new LiveVariableAnalysis(controlFlowGraph, declaration, semanticModel); lva.PerformAnalysis(); return(lva); }
private static void Analyze(CSharpSyntaxNode declarationBody, ISymbol symbol, Action <ExplodedGraph, SyntaxNodeAnalysisContext> analyze, SyntaxNodeAnalysisContext context) { if (declarationBody == null || declarationBody.ContainsDiagnostics) { return; } IControlFlowGraph cfg; if (!ControlFlowGraph.TryGet(declarationBody, context.SemanticModel, out cfg)) { return; } var lva = LiveVariableAnalysis.Analyze(cfg, symbol, context.SemanticModel); var explodedGraph = new ExplodedGraph(cfg, symbol, context.SemanticModel, lva); analyze(explodedGraph, context); }