class_docstr: CFG visitor that propagates type information across statements.
docstr: Creates a new analyzer.
  
  Args:
    graph: cfg.Graph
    resolver: Resolver
    namespace: Dict[str, Any]
    scope: activity.Scope
    closure_types: Dict[QN, Set]
docstr_tok: ["Creates","a","new","analyzer",".","Args",":","graph",":","cfg.Graph","resolver",":","Resolver","namespace",":","Dict","[","str",",","Any","]","scope",":","activity.Scope","closure_types",":","Dict","[","QN",",","Set","]"]
code: def __init__(self, graph, resolver, namespace, scope, closure_types):
      """Creates a new analyzer.
  
      Args:
        graph: cfg.Graph
        resolver: Resolver
        namespace: Dict[str, Any]
        scope: activity.Scope
        closure_types: Dict[QN, Set]
      """
      super(Analyzer, self).__init__(graph)
      self.resolver = resolver
      self.namespace = namespace
      self.scope = scope
      self.closure_types = closure_types
  
      context_types = {
          n: t for n, t in closure_types.items() if n not in scope.bound
      }
      if context_types:
          self.context_types = _TypeMap()
          self.context_types.types = context_types
      else:
          self.context_types = None
  
imports: import itertools
  from typing import Any, Callable, Dict, Set
  import gast
  from tensorflow.python.autograph.pyct import anno
  from tensorflow.python.autograph.pyct import cfg
  from tensorflow.python.autograph.pyct import qual_names
  from tensorflow.python.autograph.pyct import transformer
  from tensorflow.python.autograph.pyct.static_analysis import activity
  from tensorflow.python.autograph.pyct.static_analysis import annos
label_desc: Use image node_id 1 to create a new Analyzer object from inherited base classes: cfg with example: obj = Analyzer(graph, resolver, namespace, scope, closure_types)