;;; Code for nestedgenericclass.NestedGenericClass [type definition]
(type $nestedgenericclass.NestedGenericClass.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_bar__void (ref $function.m_bar__void))
 (field $m_fun__java_lang_Object__void (ref $function.m_fun__java_lang_Object__void))
 (field $m_test__void (ref $function.m_test__void))
 ))
)
(type $nestedgenericclass.NestedGenericClass (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.A.B [type definition]
(type $nestedgenericclass.NestedGenericClass.A.B.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $nestedgenericclass.NestedGenericClass.A.B (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.A.B.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.A.B (mut (ref null $nestedgenericclass.NestedGenericClass.A)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.A [type definition]
(type $nestedgenericclass.NestedGenericClass.A.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $nestedgenericclass.NestedGenericClass.A (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.A.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.A (mut (ref null $nestedgenericclass.NestedGenericClass)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.C.D [type definition]
(type $nestedgenericclass.NestedGenericClass.C.D.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $nestedgenericclass.NestedGenericClass.C.D (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.C.D.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.C.D (mut (ref null $nestedgenericclass.NestedGenericClass.C)))
 (field $d@nestedgenericclass.NestedGenericClass.C.D (mut (ref null $java.lang.Object)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.C [type definition]
(type $nestedgenericclass.NestedGenericClass.C.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $nestedgenericclass.NestedGenericClass.C (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.C.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.C (mut (ref null $nestedgenericclass.NestedGenericClass)))
 (field $c@nestedgenericclass.NestedGenericClass.C (mut (ref null $java.lang.Object)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner [type definition]
(type $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (mut (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable [type definition]
(type $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_test__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable__void_$pp_nestedgenericclass (ref $function.m_test__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable__void_$pp_nestedgenericclass))
 ))
)
(type $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable (mut (ref null $nestedgenericclass.NestedGenericClass)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.1E [type definition]
(type $nestedgenericclass.NestedGenericClass.1E.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $nestedgenericclass.NestedGenericClass.1E (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.1E.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.1E (mut (ref null $nestedgenericclass.NestedGenericClass)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.1F [type definition]
(type $nestedgenericclass.NestedGenericClass.1F.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $nestedgenericclass.NestedGenericClass.1F (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.1F.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.1F (mut (ref null $nestedgenericclass.NestedGenericClass)))
 (field $f@nestedgenericclass.NestedGenericClass.1F (mut (ref null $java.lang.Object)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.1G.1H [type definition]
(type $nestedgenericclass.NestedGenericClass.1G.1H.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 ))
)
(type $nestedgenericclass.NestedGenericClass.1G.1H (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.1G.1H.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.1G.1H (mut (ref null $nestedgenericclass.NestedGenericClass.1G)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass.1G [type definition]
(type $nestedgenericclass.NestedGenericClass.1G.vtable (sub $java.lang.Object.vtable (struct
 (field $$getClassImpl__java_lang_Class (ref $function.$getClassImpl__java_lang_Class))
 (field $m_equals__java_lang_Object__boolean (ref $function.m_equals__java_lang_Object__boolean))
 (field $m_hashCode__int (ref $function.m_hashCode__int))
 (field $m_toString__java_lang_String (ref $function.m_toString__java_lang_String))
 (field $m_bar__void (ref $function.m_bar__void))
 ))
)
(type $nestedgenericclass.NestedGenericClass.1G (sub $java.lang.Object (struct
 (field $vtable (ref $nestedgenericclass.NestedGenericClass.1G.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@nestedgenericclass.NestedGenericClass.1G (mut (ref null $nestedgenericclass.NestedGenericClass)))
 ))
)

;;; Code for nestedgenericclass.NestedGenericClass [imports]

;;; Code for nestedgenericclass.NestedGenericClass.A.B [imports]

;;; Code for nestedgenericclass.NestedGenericClass.A [imports]

;;; Code for nestedgenericclass.NestedGenericClass.C.D [imports]

;;; Code for nestedgenericclass.NestedGenericClass.C [imports]

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner [imports]

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable [imports]

;;; Code for nestedgenericclass.NestedGenericClass.1E [imports]

;;; Code for nestedgenericclass.NestedGenericClass.1F [imports]

;;; Code for nestedgenericclass.NestedGenericClass.1G.1H [imports]

;;; Code for nestedgenericclass.NestedGenericClass.1G [imports]

;;; Code for nestedgenericclass.NestedGenericClass [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.A.B [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.A.B (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.A.B (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.A [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.A (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.A (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.C.D [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.C.D (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.C.D (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.C [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.C (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.C (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.1E [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.1E (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.1E (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.1F [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.1F (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.1F (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.1G.1H [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.1G.1H (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.1G.1H (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass.1G [static fields]
(global $$class-initialized@nestedgenericclass.NestedGenericClass.1G (mut i32)
 (i32.const 0)
)
(global $$class@nestedgenericclass.NestedGenericClass.1G (mut (ref null $java.lang.Class))
 (ref.null $java.lang.Class)
)

;;; Code for nestedgenericclass.NestedGenericClass [vtable.init]
(global $nestedgenericclass.NestedGenericClass.vtable (ref $nestedgenericclass.NestedGenericClass.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_bar__void@nestedgenericclass.NestedGenericClass)
  (ref.func $m_fun__java_lang_Object__void@nestedgenericclass.NestedGenericClass)
  (ref.func $m_test__void@nestedgenericclass.NestedGenericClass)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.A.B [vtable.init]
(global $nestedgenericclass.NestedGenericClass.A.B.vtable (ref $nestedgenericclass.NestedGenericClass.A.B.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.A.B.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.A.B)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.A [vtable.init]
(global $nestedgenericclass.NestedGenericClass.A.vtable (ref $nestedgenericclass.NestedGenericClass.A.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.A.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.A)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.C.D [vtable.init]
(global $nestedgenericclass.NestedGenericClass.C.D.vtable (ref $nestedgenericclass.NestedGenericClass.C.D.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.C.D.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.C.D)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.C [vtable.init]
(global $nestedgenericclass.NestedGenericClass.C.vtable (ref $nestedgenericclass.NestedGenericClass.C.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.C.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.C)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner [vtable.init]
(global $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner.vtable (ref $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable [vtable.init]
(global $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.vtable (ref $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_test__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable__void_$pp_nestedgenericclass@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.1E [vtable.init]
(global $nestedgenericclass.NestedGenericClass.1E.vtable (ref $nestedgenericclass.NestedGenericClass.1E.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.1E.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1E)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.1F [vtable.init]
(global $nestedgenericclass.NestedGenericClass.1F.vtable (ref $nestedgenericclass.NestedGenericClass.1F.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.1F.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1F)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.1G.1H [vtable.init]
(global $nestedgenericclass.NestedGenericClass.1G.1H.vtable (ref $nestedgenericclass.NestedGenericClass.1G.1H.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.1G.1H.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1G.1H)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass.1G [vtable.init]
(global $nestedgenericclass.NestedGenericClass.1G.vtable (ref $nestedgenericclass.NestedGenericClass.1G.vtable)
 (struct.new $nestedgenericclass.NestedGenericClass.1G.vtable
  (ref.func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1G)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Object)
  (ref.func $m_hashCode__int@java.lang.Object)
  (ref.func $m_toString__java_lang_String@java.lang.Object)
  (ref.func $m_bar__void@nestedgenericclass.NestedGenericClass.1G)
 )
)

;;; Code for nestedgenericclass.NestedGenericClass [methods]

;;; NestedGenericClass<T> NestedGenericClass.$create()
(func $$create__@nestedgenericclass.NestedGenericClass
 (result (ref null $nestedgenericclass.NestedGenericClass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
  (return (call $$create_$private__@nestedgenericclass.NestedGenericClass ))
 )
)

;;; NestedGenericClass<T> NestedGenericClass.$create_$private()
(func $$create_$private__@nestedgenericclass.NestedGenericClass
 (result (ref null $nestedgenericclass.NestedGenericClass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass (global.get $nestedgenericclass.NestedGenericClass.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
  (call $$ctor__void_$p_nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
  (return (local.get $$instance))
 )
)

;;; void NestedGenericClass.$ctor()
(func $$ctor__void_$p_nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass
 (param $this (ref null $nestedgenericclass.NestedGenericClass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void NestedGenericClass.fun(S t)
(func $m_fun__java_lang_Object__void@nestedgenericclass.NestedGenericClass
 (type $function.m_fun__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $t (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:38:18
 (local $this (ref null $nestedgenericclass.NestedGenericClass))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:43:4
  (drop (call $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.1E (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:44:4
  (drop (call $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.1F (local.get $this)))
 )
)
(elem declare func $m_fun__java_lang_Object__void@nestedgenericclass.NestedGenericClass)

;;; void NestedGenericClass.bar()
(func $m_bar__void@nestedgenericclass.NestedGenericClass
 (type $function.m_bar__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:48:18
 (local $$qualifier (ref null $nestedgenericclass.NestedGenericClass.1G))
 (local $this (ref null $nestedgenericclass.NestedGenericClass))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass) (local.get $this.untyped)))
 (block
  (block
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:55:4
   (local.set $$qualifier (call $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.1G (local.get $this)))
   ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:55:4
   (call_ref $function.m_bar__void (ref.as_non_null (local.get $$qualifier))(struct.get $nestedgenericclass.NestedGenericClass.1G.vtable $m_bar__void (struct.get $nestedgenericclass.NestedGenericClass.1G $vtable(local.get $$qualifier))))
  )
 )
)
(elem declare func $m_bar__void@nestedgenericclass.NestedGenericClass)

;;; void NestedGenericClass.test()
(func $m_test__void@nestedgenericclass.NestedGenericClass
 (type $function.m_test__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:58:14
 (local $n (ref null $nestedgenericclass.NestedGenericClass))
 (local $a (ref null $nestedgenericclass.NestedGenericClass.A))
 (local $b (ref null $nestedgenericclass.NestedGenericClass.A.B))
 (local $this (ref null $nestedgenericclass.NestedGenericClass))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:59:4
  (local.set $n (call $$create_$private__@nestedgenericclass.NestedGenericClass ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:60:4
  (local.set $a (call $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.A (local.get $n)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:61:4
  (local.set $b (call $$create__nestedgenericclass_NestedGenericClass_A@nestedgenericclass.NestedGenericClass.A.B (local.get $a)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:63:4
  (drop (call $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.C (local.get $n)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:64:4
  (drop (call $$create__nestedgenericclass_NestedGenericClass_C@nestedgenericclass.NestedGenericClass.C.D (call $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.C (local.get $n))))
 )
)
(elem declare func $m_test__void@nestedgenericclass.NestedGenericClass)

;;; void NestedGenericClass.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:20:13
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> NestedGenericClass.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass))
 )
)

;;; Class<?> NestedGenericClass.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass)

;;; Code for nestedgenericclass.NestedGenericClass.A.B [methods]

;;; B<T, T, T> B.$create(A<T, T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass_A@nestedgenericclass.NestedGenericClass.A.B
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass.A))
 (result (ref null $nestedgenericclass.NestedGenericClass.A.B))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:24:6
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.A.B))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:24:6
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.A.B )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:24:6
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.A.B (global.get $nestedgenericclass.NestedGenericClass.A.B.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass.A)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:24:6
  (call $$ctor__nestedgenericclass_NestedGenericClass_A__void_$p_nestedgenericclass_NestedGenericClass_A_B@nestedgenericclass.NestedGenericClass.A.B (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:24:6
  (return (local.get $$instance))
 )
)

;;; void B.$ctor(A<T, T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass_A__void_$p_nestedgenericclass_NestedGenericClass_A_B@nestedgenericclass.NestedGenericClass.A.B
 (param $this (ref null $nestedgenericclass.NestedGenericClass.A.B))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass.A))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:24:6
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:23:17
  (struct.set $nestedgenericclass.NestedGenericClass.A.B $$outer_this@nestedgenericclass.NestedGenericClass.A.B (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:24:10
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void B.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.A.B
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:23:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:23:17
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.A.B)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:23:17
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:23:17
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.A.B (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:23:17
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> B.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.A.B
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.A.B)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.A.B))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.A.B (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.A.B )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.A.B))
 )
)

;;; Class<?> B.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.A.B
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.A.B))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.A.B) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.A.B ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.A.B)

;;; Code for nestedgenericclass.NestedGenericClass.A [methods]

;;; A<T, T> A.$create(NestedGenericClass<T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.A
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 (result (ref null $nestedgenericclass.NestedGenericClass.A))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.A))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.A )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.A (global.get $nestedgenericclass.NestedGenericClass.A.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
  (call $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_A@nestedgenericclass.NestedGenericClass.A (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
  (return (local.get $$instance))
 )
)

;;; void A.$ctor(NestedGenericClass<T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_A@nestedgenericclass.NestedGenericClass.A
 (param $this (ref null $nestedgenericclass.NestedGenericClass.A))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
  (struct.set $nestedgenericclass.NestedGenericClass.A $$outer_this@nestedgenericclass.NestedGenericClass.A (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void A.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.A
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.A)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.A (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:22:15
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> A.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.A
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.A)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.A))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.A (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.A )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.A))
 )
)

;;; Class<?> A.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.A
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.A))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.A) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.A ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.A)

;;; Code for nestedgenericclass.NestedGenericClass.C.D [methods]

;;; D<T> D.$create(C<T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass_C@nestedgenericclass.NestedGenericClass.C.D
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass.C))
 (result (ref null $nestedgenericclass.NestedGenericClass.C.D))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.C.D))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.C.D )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.C.D (global.get $nestedgenericclass.NestedGenericClass.C.D.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass.C) (ref.null $java.lang.Object)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
  (call $$ctor__nestedgenericclass_NestedGenericClass_C__void_$p_nestedgenericclass_NestedGenericClass_C_D@nestedgenericclass.NestedGenericClass.C.D (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
  (return (local.get $$instance))
 )
)

;;; void D.$ctor(C<T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass_C__void_$p_nestedgenericclass_NestedGenericClass_C_D@nestedgenericclass.NestedGenericClass.C.D
 (param $this (ref null $nestedgenericclass.NestedGenericClass.C.D))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass.C))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
  (struct.set $nestedgenericclass.NestedGenericClass.C.D $$outer_this@nestedgenericclass.NestedGenericClass.C.D (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void D.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.C.D
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.C.D)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.C.D (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:32:17
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> D.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.C.D
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.C.D)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.C.D))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.C.D (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.C.D )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.C.D))
 )
)

;;; Class<?> D.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.C.D
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.C.D))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.C.D) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.C.D ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.C.D)

;;; Code for nestedgenericclass.NestedGenericClass.C [methods]

;;; C<T> C.$create(NestedGenericClass<T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.C
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 (result (ref null $nestedgenericclass.NestedGenericClass.C))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.C))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.C )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.C (global.get $nestedgenericclass.NestedGenericClass.C.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass) (ref.null $java.lang.Object)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
  (call $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_C@nestedgenericclass.NestedGenericClass.C (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
  (return (local.get $$instance))
 )
)

;;; void C.$ctor(NestedGenericClass<T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_C@nestedgenericclass.NestedGenericClass.C
 (param $this (ref null $nestedgenericclass.NestedGenericClass.C))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
  (struct.set $nestedgenericclass.NestedGenericClass.C $$outer_this@nestedgenericclass.NestedGenericClass.C (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void C.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.C
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.C)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.C (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:29:15
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> C.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.C
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.C)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.C))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.C (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.C )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.C))
 )
)

;;; Class<?> C.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.C
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.C))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.C) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.C ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.C)

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner [methods]

;;; Inner<T, T> Inner.$create(RecursiveTypeVariable<T, T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
 (result (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (global.get $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
  (call $$ctor__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable__void_$p_nestedgenericclass_NestedGenericClass_RecursiveTypeVariable_Inner@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
  (return (local.get $$instance))
 )
)

;;; void Inner.$ctor(RecursiveTypeVariable<T, T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable__void_$p_nestedgenericclass_NestedGenericClass_RecursiveTypeVariable_Inner@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner
 (param $this (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
  (struct.set $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner $$outer_this@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void Inner.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:68:10
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> Inner.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner))
 )
)

;;; Class<?> Inner.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner)

;;; Code for nestedgenericclass.NestedGenericClass.RecursiveTypeVariable [methods]

;;; RecursiveTypeVariable<T, T> RecursiveTypeVariable.$create(NestedGenericClass<T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 (result (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable (global.get $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
  (call $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_RecursiveTypeVariable@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
  (return (local.get $$instance))
 )
)

;;; void RecursiveTypeVariable.$ctor(NestedGenericClass<T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_RecursiveTypeVariable@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable
 (param $this (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
  (struct.set $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable $$outer_this@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void RecursiveTypeVariable.test(T t)
(func $m_test__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable__void_$pp_nestedgenericclass@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable
 (type $function.m_test__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable__void_$pp_nestedgenericclass)
 (param $this.untyped (ref $java.lang.Object))
 (param $t (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:70:9
 (local $this (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:71:6
  (drop (call $$create__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable.Inner (local.get $t)))
 )
)
(elem declare func $m_test__nestedgenericclass_NestedGenericClass_RecursiveTypeVariable__void_$pp_nestedgenericclass@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable)

;;; void RecursiveTypeVariable.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:67:8
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> RecursiveTypeVariable.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
 )
)

;;; Class<?> RecursiveTypeVariable.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.RecursiveTypeVariable) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.RecursiveTypeVariable)

;;; Code for nestedgenericclass.NestedGenericClass.1E [methods]

;;; E<S, S, T> E.$create(NestedGenericClass<T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.1E
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 (result (ref null $nestedgenericclass.NestedGenericClass.1E))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.1E))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.1E )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.1E (global.get $nestedgenericclass.NestedGenericClass.1E.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
  (call $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_1E@nestedgenericclass.NestedGenericClass.1E (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
  (return (local.get $$instance))
 )
)

;;; void E.$ctor(NestedGenericClass<T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_1E@nestedgenericclass.NestedGenericClass.1E
 (param $this (ref null $nestedgenericclass.NestedGenericClass.1E))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
  (struct.set $nestedgenericclass.NestedGenericClass.1E $$outer_this@nestedgenericclass.NestedGenericClass.1E (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void E.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.1E
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.1E)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.1E (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:39:10
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> E.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.1E
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.1E)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.1E))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.1E (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.1E )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.1E))
 )
)

;;; Class<?> E.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1E
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.1E))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.1E) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.1E ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1E)

;;; Code for nestedgenericclass.NestedGenericClass.1F [methods]

;;; F<S, T> F.$create(NestedGenericClass<T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.1F
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 (result (ref null $nestedgenericclass.NestedGenericClass.1F))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.1F))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.1F )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.1F (global.get $nestedgenericclass.NestedGenericClass.1F.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass) (ref.null $java.lang.Object)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
  (call $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_1F@nestedgenericclass.NestedGenericClass.1F (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
  (return (local.get $$instance))
 )
)

;;; void F.$ctor(NestedGenericClass<T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_1F@nestedgenericclass.NestedGenericClass.1F
 (param $this (ref null $nestedgenericclass.NestedGenericClass.1F))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
  (struct.set $nestedgenericclass.NestedGenericClass.1F $$outer_this@nestedgenericclass.NestedGenericClass.1F (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void F.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.1F
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.1F)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.1F (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:40:10
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> F.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.1F
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.1F)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.1F))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.1F (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.1F )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.1F))
 )
)

;;; Class<?> F.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1F
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.1F))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.1F) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.1F ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1F)

;;; Code for nestedgenericclass.NestedGenericClass.1G.1H [methods]

;;; H<T, T, T, T, T> H.$create(G<T, T, T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass_1G@nestedgenericclass.NestedGenericClass.1G.1H
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass.1G))
 (result (ref null $nestedgenericclass.NestedGenericClass.1G.1H))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.1G.1H))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.1G.1H )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.1G.1H (global.get $nestedgenericclass.NestedGenericClass.1G.1H.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass.1G)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
  (call $$ctor__nestedgenericclass_NestedGenericClass_1G__void_$p_nestedgenericclass_NestedGenericClass_1G_1H@nestedgenericclass.NestedGenericClass.1G.1H (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
  (return (local.get $$instance))
 )
)

;;; void H.$ctor(G<T, T, T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass_1G__void_$p_nestedgenericclass_NestedGenericClass_1G_1H@nestedgenericclass.NestedGenericClass.1G.1H
 (param $this (ref null $nestedgenericclass.NestedGenericClass.1G.1H))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass.1G))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
  (struct.set $nestedgenericclass.NestedGenericClass.1G.1H $$outer_this@nestedgenericclass.NestedGenericClass.1G.1H (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void H.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.1G.1H
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.1G.1H)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.1G.1H (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:51:14
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> H.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.1G.1H
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.1G.1H)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.1G.1H))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.1G.1H (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.1G.1H )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.1G.1H))
 )
)

;;; Class<?> H.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1G.1H
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.1G.1H))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.1G.1H) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.1G.1H ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1G.1H)

;;; Code for nestedgenericclass.NestedGenericClass.1G [methods]

;;; G<T, T, T> G.$create(NestedGenericClass<T> $outer_this)
(func $$create__nestedgenericclass_NestedGenericClass@nestedgenericclass.NestedGenericClass.1G
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 (result (ref null $nestedgenericclass.NestedGenericClass.1G))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
 (local $$instance (ref null $nestedgenericclass.NestedGenericClass.1G))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
  (call $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.1G )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
  (local.set $$instance (struct.new $nestedgenericclass.NestedGenericClass.1G (global.get $nestedgenericclass.NestedGenericClass.1G.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $nestedgenericclass.NestedGenericClass)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
  (call $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_1G@nestedgenericclass.NestedGenericClass.1G (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
  (return (local.get $$instance))
 )
)

;;; void G.$ctor(NestedGenericClass<T> $outer_this)
(func $$ctor__nestedgenericclass_NestedGenericClass__void_$p_nestedgenericclass_NestedGenericClass_1G@nestedgenericclass.NestedGenericClass.1G
 (param $this (ref null $nestedgenericclass.NestedGenericClass.1G))
 (param $$outer_this (ref null $nestedgenericclass.NestedGenericClass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
  (struct.set $nestedgenericclass.NestedGenericClass.1G $$outer_this@nestedgenericclass.NestedGenericClass.1G (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void G.bar()
(func $m_bar__void@nestedgenericclass.NestedGenericClass.1G
 (type $function.m_bar__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:50:22
 (local $this (ref null $nestedgenericclass.NestedGenericClass.1G))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.1G) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:52:8
  (drop (call $$create__nestedgenericclass_NestedGenericClass_1G@nestedgenericclass.NestedGenericClass.1G.1H (local.get $this)))
 )
)
(elem declare func $m_bar__void@nestedgenericclass.NestedGenericClass.1G)

;;; void G.$clinit()
(func $$clinit__void_<once>_@nestedgenericclass.NestedGenericClass.1G
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
  (if (global.get $$class-initialized@nestedgenericclass.NestedGenericClass.1G)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
  (global.set $$class-initialized@nestedgenericclass.NestedGenericClass.1G (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/nestedgenericclass/readable-j2wasm.js/nestedgenericclass/NestedGenericClass.java:49:10
  (call $$clinit__void_<once>_@java.lang.Object )
 )
)

;;; Class<T> G.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.1G
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@nestedgenericclass.NestedGenericClass.1G)))
   (then
    (return (global.get $$class@nestedgenericclass.NestedGenericClass.1G))
   )
  )
  (global.set $$class@nestedgenericclass.NestedGenericClass.1G (call $m_createForClass__java_lang_String__java_lang_Class__java_lang_Class@java.lang.Class (call $$getString_|nestedgeneri...|__java_lang_String_<once>_@nestedgenericclass.NestedGenericClass.1G )(call $$getClassMetadata__java_lang_Class_<once>_@java.lang.Object )))
  (return (global.get $$class@nestedgenericclass.NestedGenericClass.1G))
 )
)

;;; Class<?> G.$getClassImpl()
(func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1G
 (type $function.$getClassImpl__java_lang_Class)
 (param $this.untyped (ref $java.lang.Object))
 (result (ref null $java.lang.Class))
 (local $this (ref null $nestedgenericclass.NestedGenericClass.1G))
 (local.set $this (ref.cast (ref $nestedgenericclass.NestedGenericClass.1G) (local.get $this.untyped)))
 (block
  (return (call $$getClassMetadata__java_lang_Class_<once>_@nestedgenericclass.NestedGenericClass.1G ))
 )
)
(elem declare func $$getClassImpl__java_lang_Class@nestedgenericclass.NestedGenericClass.1G)
