code: def test_side_effects_on_arg_function_closure(self):
      test_self = self
  
      class Resolver(type_inference.Resolver):
          def res_name(self, ns, types_ns, name):
              test_self.assertEqual(name, qual_names.QN("g"))
              return {Callable[[Callable], None]}, g
  
          def res_value(self, ns, value):
              test_self.assertEqual(value, 1.0)
              return {float}
  
          def res_arg(
              self, ns, types_ns, f_name, name, type_anno, f_is_local
          ):
              return {str(type_anno)}
  
          def res_call(
              self, ns, types_ns, node, f_type, args, keywords
          ):
              test_self.assertEqual(node.func.id, "g")
              test_self.assertEqual(
                  f_type, (Callable[[Callable], None],)
              )
              return None, {qual_names.QN("x"): {str}}
  
      def g(foo):
          # The resolver will convey that this function has the following body:
          #
          #   nonlocal x
          #   x = 'a'
          #   foo()
          del foo
          pass
  
      def test_fn(x: int):  # pylint:disable=unused-argument
          def foo():
              return x
  
          x = 1.0
          g(foo)
  
      node, _ = TestTranspiler(Resolver).transform(test_fn, None)
      fn_body = node.body
  
      self.assertTypes(fn_body[0].body[0].value, str)
  
imports: from typing import Any, Callable, List
  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 transpiler
  from tensorflow.python.autograph.pyct.static_analysis import activity
  from tensorflow.python.autograph.pyct.static_analysis import reaching_definitions
  from tensorflow.python.autograph.pyct.static_analysis import reaching_fndefs
  from tensorflow.python.autograph.pyct.static_analysis import type_inference
  from tensorflow.python.platform import test
label_desc: Use image node_id 25 for calling the TypeInferenceAnalyzerTest obj's underlying member method code with example usage: obj.test_side_effects_on_arg_function_closure() and returns: unknown,  g, unknown, unknown, None,  dict, x