code: def make_defaults_and_annotations(make_function_instr, builders):
      
      # Integer counts.
      n_defaults, n_kwonlydefaults, n_annotations = unpack_make_function_arg(
          make_function_instr.arg
      )
      if n_annotations:
          # TOS should be a tuple of annotation names.
          load_annotation_names = builders.pop()
          annotations = dict(zip(
              reversed(load_annotation_names.arg),
              (make_expr(builders) for _ in range(n_annotations - 1))
          ))
      else:
          annotations = {}
  
      kwonlys = {}
      while n_kwonlydefaults:
          default_expr = make_expr(builders)
          key_instr = builders.pop()
          if not isinstance(key_instr, instrs.LOAD_CONST):
              raise DecompilationError(
                  "kwonlydefault key is not a LOAD_CONST: %s" % key_instr
              )
          if not isinstance(key_instr.arg, str):
              raise DecompilationError(
                  "kwonlydefault key builder is not a "
                  "'LOAD_CONST of a string: %s" % key_instr
              )
  
          kwonlys[key_instr.arg] = default_expr
          n_kwonlydefaults -= 1
  
      defaults = make_exprs(builders, n_defaults)
      return defaults, kwonlys, annotations
docs: Get the AST expressions corresponding to the defaults, kwonly defaults, and
      annotations for a function created by `make_function_instr`.