;;; Code for unreachableclass.Main [type definition]
(type $unreachableclass.Main.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 $unreachableclass.Main (sub $java.lang.Object (struct
 (field $vtable (ref $unreachableclass.Main.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for unreachableclass.Main.1 [type definition]
(type $unreachableclass.Main.1.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 $unreachableclass.Main.1 (sub $java.lang.Object (struct
 (field $vtable (ref $unreachableclass.Main.1.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@unreachableclass.Main.1 (mut (ref null $unreachableclass.Main)))
 ))
)

;;; Code for unreachableclass.Main.1A.1B [type definition]
(type $unreachableclass.Main.1A.1B.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 $unreachableclass.Main.1A.1B (sub $java.lang.Object (struct
 (field $vtable (ref $unreachableclass.Main.1A.1B.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@unreachableclass.Main.1A.1B (mut (ref null $unreachableclass.Main.1A)))
 ))
)

;;; Code for unreachableclass.Main.1A [type definition]
(type $unreachableclass.Main.1A.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_m__void_$pp_unreachableclass (ref $function.m_m__void_$pp_unreachableclass))
 ))
)
(type $unreachableclass.Main.1A (sub $java.lang.Object (struct
 (field $vtable (ref $unreachableclass.Main.1A.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@unreachableclass.Main.1A (mut (ref null $unreachableclass.Main)))
 ))
)

;;; Code for unreachableclass.Main [imports]

;;; Code for unreachableclass.Main.1 [imports]

;;; Code for unreachableclass.Main.1A.1B [imports]

;;; Code for unreachableclass.Main.1A [imports]

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

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

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

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

;;; Code for unreachableclass.Main [vtable.init]
(global $unreachableclass.Main.vtable (ref $unreachableclass.Main.vtable)
 (struct.new $unreachableclass.Main.vtable
  (ref.func $$getClassImpl__java_lang_Class@unreachableclass.Main)
  (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 unreachableclass.Main.1 [vtable.init]
(global $unreachableclass.Main.1.vtable (ref $unreachableclass.Main.1.vtable)
 (struct.new $unreachableclass.Main.1.vtable
  (ref.func $$getClassImpl__java_lang_Class@unreachableclass.Main.1)
  (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 unreachableclass.Main.1A.1B [vtable.init]
(global $unreachableclass.Main.1A.1B.vtable (ref $unreachableclass.Main.1A.1B.vtable)
 (struct.new $unreachableclass.Main.1A.1B.vtable
  (ref.func $$getClassImpl__java_lang_Class@unreachableclass.Main.1A.1B)
  (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 unreachableclass.Main.1A [vtable.init]
(global $unreachableclass.Main.1A.vtable (ref $unreachableclass.Main.1A.vtable)
 (struct.new $unreachableclass.Main.1A.vtable
  (ref.func $$getClassImpl__java_lang_Class@unreachableclass.Main.1A)
  (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_m__void_$pp_unreachableclass@unreachableclass.Main.1A)
 )
)

;;; Code for unreachableclass.Main [methods]

;;; Main Main.$create()
(func $$create__@unreachableclass.Main
 (result (ref null $unreachableclass.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:18:13
 (local $$instance (ref null $unreachableclass.Main))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:18:13
  (call $$clinit__void_<once>_@unreachableclass.Main )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:18:13
  (local.set $$instance (struct.new $unreachableclass.Main (global.get $unreachableclass.Main.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:18:13
  (call $$ctor__void_$p_unreachableclass_Main@unreachableclass.Main (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:18:13
  (return (local.get $$instance))
 )
)

;;; void Main.$ctor()
(func $$ctor__void_$p_unreachableclass_Main@unreachableclass.Main
 (param $this (ref null $unreachableclass.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:18:13
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:18:13
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:18:13
  (call $$init__void_$p_unreachableclass_Main@unreachableclass.Main (ref.as_non_null (local.get $this)))
 )
)

;;; void Main.$init()
(func $$init__void_$p_unreachableclass_Main@unreachableclass.Main
 (param $this (ref null $unreachableclass.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:18:13
 (local $__$jsexc (ref null extern))
 (local $__$exc (ref null $java.lang.Throwable))
 (local $e (ref null $java.lang.RuntimeException))
 (local $$qualifier (ref null $unreachableclass.Main.1A))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:20:4
  (try (do
   (block
   )
  ) (catch $exception.event
   (local.set $__$jsexc (pop externref))
   (block
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:21:33
    (local.set $__$exc (call $m_toJava__javaemul_internal_ThrowableUtils_JsObject__java_lang_Throwable@javaemul.internal.Exceptions (local.get $__$jsexc)))
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:21:33
    (if (ref.test (ref $java.lang.RuntimeException) (local.get $__$exc))
     (then
      (block
       ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:21:33
       (local.set $e (ref.cast (ref null $java.lang.RuntimeException) (local.get $__$exc)))
       (block
        ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:29:6
        (local.set $$qualifier (call $$create__unreachableclass_Main@unreachableclass.Main.1A (local.get $this)))
        ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:29:6
        (call_ref $function.m_m__void_$pp_unreachableclass (ref.as_non_null (local.get $$qualifier))(struct.get $unreachableclass.Main.1A.vtable $m_m__void_$pp_unreachableclass (struct.get $unreachableclass.Main.1A $vtable(local.get $$qualifier))))
       )
       ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:30:6
       (drop (call $$create__unreachableclass_Main@unreachableclass.Main.1 (local.get $this)))
      )
     )(else
      (block
       ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:21:33
       (throw $exception.event (call $m_toJs__java_lang_Throwable__javaemul_internal_ThrowableUtils_JsObject@javaemul.internal.Exceptions (local.get $__$exc)))
      )
     )
    )
   )
  ))
 )
)

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

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

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

;;; Code for unreachableclass.Main.1 [methods]

;;; <anonymous> extends Object <anonymous> extends Object.$create(Main $outer_this)
(func $$create__unreachableclass_Main@unreachableclass.Main.1
 (param $$outer_this (ref null $unreachableclass.Main))
 (result (ref null $unreachableclass.Main.1))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:30:19
 (local $$instance (ref null $unreachableclass.Main.1))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:30:19
  (call $$clinit__void_<once>_@unreachableclass.Main.1 )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:30:19
  (local.set $$instance (struct.new $unreachableclass.Main.1 (global.get $unreachableclass.Main.1.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $unreachableclass.Main)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:30:19
  (call $$ctor__unreachableclass_Main__void_$p_unreachableclass_Main_1@unreachableclass.Main.1 (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:30:19
  (return (local.get $$instance))
 )
)

;;; void <anonymous> extends Object.$ctor(Main $outer_this)
(func $$ctor__unreachableclass_Main__void_$p_unreachableclass_Main_1@unreachableclass.Main.1
 (param $this (ref null $unreachableclass.Main.1))
 (param $$outer_this (ref null $unreachableclass.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:30:19
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:30:19
  (struct.set $unreachableclass.Main.1 $$outer_this@unreachableclass.Main.1 (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:30:19
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for unreachableclass.Main.1A.1B [methods]

;;; B B.$create(A $outer_this)
(func $$create__unreachableclass_Main_1A@unreachableclass.Main.1A.1B
 (param $$outer_this (ref null $unreachableclass.Main.1A))
 (result (ref null $unreachableclass.Main.1A.1B))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:24:16
 (local $$instance (ref null $unreachableclass.Main.1A.1B))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:24:16
  (call $$clinit__void_<once>_@unreachableclass.Main.1A.1B )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:24:16
  (local.set $$instance (struct.new $unreachableclass.Main.1A.1B (global.get $unreachableclass.Main.1A.1B.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $unreachableclass.Main.1A)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:24:16
  (call $$ctor__unreachableclass_Main_1A__void_$p_unreachableclass_Main_1A_1B@unreachableclass.Main.1A.1B (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:24:16
  (return (local.get $$instance))
 )
)

;;; void B.$ctor(A $outer_this)
(func $$ctor__unreachableclass_Main_1A__void_$p_unreachableclass_Main_1A_1B@unreachableclass.Main.1A.1B
 (param $this (ref null $unreachableclass.Main.1A.1B))
 (param $$outer_this (ref null $unreachableclass.Main.1A))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:24:16
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:24:16
  (struct.set $unreachableclass.Main.1A.1B $$outer_this@unreachableclass.Main.1A.1B (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:24:16
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void B.n()
(func $m_n__void_$p_unreachableclass_Main_1A_1B@unreachableclass.Main.1A.1B
 (param $this (ref null $unreachableclass.Main.1A.1B))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:25:25
 (block
 )
)

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

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

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

;;; Code for unreachableclass.Main.1A [methods]

;;; A A.$create(Main $outer_this)
(func $$create__unreachableclass_Main@unreachableclass.Main.1A
 (param $$outer_this (ref null $unreachableclass.Main))
 (result (ref null $unreachableclass.Main.1A))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:22:12
 (local $$instance (ref null $unreachableclass.Main.1A))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:22:12
  (call $$clinit__void_<once>_@unreachableclass.Main.1A )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:22:12
  (local.set $$instance (struct.new $unreachableclass.Main.1A (global.get $unreachableclass.Main.1A.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $unreachableclass.Main)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:22:12
  (call $$ctor__unreachableclass_Main__void_$p_unreachableclass_Main_1A@unreachableclass.Main.1A (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:22:12
  (return (local.get $$instance))
 )
)

;;; void A.$ctor(Main $outer_this)
(func $$ctor__unreachableclass_Main__void_$p_unreachableclass_Main_1A@unreachableclass.Main.1A
 (param $this (ref null $unreachableclass.Main.1A))
 (param $$outer_this (ref null $unreachableclass.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:22:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:22:12
  (struct.set $unreachableclass.Main.1A $$outer_this@unreachableclass.Main.1A (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:22:12
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void A.m()
(func $m_m__void_$pp_unreachableclass@unreachableclass.Main.1A
 (type $function.m_m__void_$pp_unreachableclass)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/unreachableclass/readable-j2wasm.js/unreachableclass/Main.java:23:13
 (local $this (ref null $unreachableclass.Main.1A))
 (local.set $this (ref.cast (ref $unreachableclass.Main.1A) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_m__void_$pp_unreachableclass@unreachableclass.Main.1A)

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

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

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