public BackwardDataFlowAnalyzer(
     IBackwardDataFlowAnalyzer <TState> strategy,
     ISymbolTree symbolTree,
     Diagnostics diagnostics)
 {
     this.strategy    = strategy;
     this.symbolTree  = symbolTree;
     this.diagnostics = diagnostics;
 }
        public static void Check <TState>(
            IBackwardDataFlowAnalyzer <TState> strategy,
            FixedSet <IExecutableDeclaration> declarations,
            ISymbolTree symbolTree,
            Diagnostics diagnostics)
            where TState : class
        {
            var dataFlowAnalyzer = new BackwardDataFlowAnalyzer <TState>(strategy, symbolTree, diagnostics);

            foreach (var invocableDeclaration in declarations)
            {
                dataFlowAnalyzer.Check(invocableDeclaration);
            }
        }