class_docstr: Infer symbolic type for all AST node. 
class_docstr_tok: ["Infer","symbolic","type","for","all","AST","node","."]
docstr: Define set type from all elements type (or empty_dict type). 
docstr_tok: ["Define","set","type","from","all","elements","type","(","or","empty_dict","type",")","."]
code: def visit_Dict(self, node):
      """Define set type from all elements type (or empty_dict type)."""
      self.generic_visit(node)
      if node.keys:
          for key, value in islice(
              zip(node.keys, node.values), self.max_seq_size
          ):
              self.update_type(
                  node,
                  self.builder.DictType,
                  self.result[key],
                  self.result[value],
              )
      else:
          self.update_type(
              node,
              self.builder.NamedType,
              "pythonic::types::empty_dict",
          )
  
imports: from pythran.analyses import LazynessAnalysis, StrictAliases, YieldPoints
  from pythran.analyses import LocalNodeDeclarations, Immediates, RangeValues
  from pythran.analyses import Ancestors
  from pythran.config import cfg
  from pythran.cxxtypes import TypeBuilder, ordered_set
  from pythran.intrinsic import UserFunction, Class
  from pythran.passmanager import ModuleAnalysis
  from pythran.tables import operator_to_lambda, MODULES
  from pythran.types.conversion import pytype_to_ctype
  from pythran.types.reorder import Reorder
  from pythran.utils import attr_to_path, cxxid, isnum, isextslice
  from collections import defaultdict
  from functools import reduce
  import gast
  from itertools import islice
  from copy import deepcopy
label_desc: Use image node_id 34 for calling the Types obj's underlying member method code with example usage: obj.visit_Dict(node) without return types