code: def test_expanding_ctor_with_no_args():
      code = """
  #[version = "0.0.5"]
  type List[A] {
      Cons(A, List[A]),
      Nil,
  }
  
  def @expand_on_nil_match(%a: List[(List[()],)]) -> int {
      match (%a) {
          Cons((Nil), Nil) => 1,
          _ => 2,
      }
  }
  """
      # exhausion checks:
      # * hits Cons((Nil), Nil), expands to Cons(*, *), Nil()
      # Nil() fails Cons((Nil), Nil), passes _
      # Cons(*, *) hits Cons((Nil), Nil), expands to Cons((*), Cons(*, *)), Cons((*), Nil())
      # Cons((*), Cons(*, *)) fails Cons((Nil), Nil), passes _
      # Cons((*), Nil()) hits Cons((Nil), Nil), expands to Cons((Nil), Nil), Cons((Cons(*, *)), Nil)
      # Cons((Nil), Nil) passes the first pattern
      # Cons((Cons(*, *)), Nil) fails the first pattern, passes _
      # Note Nil() is passed to ExpandWildcardsConstructor many times in the above!
      tvm.relay.fromtext(code)
  
file_path: tvm/tests/python/relay/test_pass_unmatched_cases.py
imports: import tvm
  from tvm import te
  from tvm import relay
  from tvm.relay.prelude import Prelude
  from tvm.relay.analysis import unmatched_cases
  import pytest
label_desc: Use image node_id 10 for calling a global function with example usage: test_expanding_ctor_with_no_args() without return types