code: def test_ad():
      shape = (10, 10)
      dtype = "float32"
      t = relay.TensorType(shape, dtype)
      x = relay.var("x", t)
      func = relay.Function([x], x + x)
      func = run_infer_type(func)
      mod = tvm.IRModule.from_expr(gradient(func))
      mod = relay.transform.InferType()(mod)
      back_func = mod["main"]
      feats = detect_feature(back_func)
      assert feats == set(
          [
              Feature.fVar,
              Feature.fTuple,
              Feature.fTupleGetItem,
              Feature.fFunction,
              Feature.fOp,
              Feature.fCall,
              Feature.fLet,
              Feature.fRefCreate,
              Feature.fRefRead,
              Feature.fRefWrite,
          ]
      )
  
file_path: tvm/tests/python/relay/test_analysis_feature.py
imports: import tvm
  from tvm import te
  from tvm import relay
  from tvm.relay.analysis import detect_feature, Feature
  from tvm.relay.transform import gradient
  from tvm.relay.prelude import Prelude
  from tvm.relay.testing import run_infer_type
label_desc: Use image node_id 2 for calling a global function with example usage: test_ad() without return types