;;; Code for rawtype.RawType.GenericSuperclass [type definition]
(type $rawtype.RawType.GenericSuperclass.vtable (sub (struct
 (field $m_f__rawtype_RawType__void (ref $function.m_f__rawtype_RawType__void))
 ))
)

;;; Code for rawtype.RawType [type definition]
(type $rawtype.RawType.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 $rawtype.RawType (sub $java.lang.Object (struct
 (field $vtable (ref $rawtype.RawType.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $rawBoundDependentDirect@rawtype.RawType (mut (ref null $rawtype.RawType.BoundDependentDirect)))
 (field $rawBoundDependentIndirect@rawtype.RawType (mut (ref null $rawtype.RawType.BoundDependentIndirect)))
 (field $rawBoundRecursively@rawtype.RawType (mut (ref null $rawtype.RawType.BoundRecursively)))
 (field $rawBound@rawtype.RawType (mut (ref null $rawtype.RawType.Bound)))
 (field $rawUnbound@rawtype.RawType (mut (ref null $rawtype.RawType.Unbound)))
 ))
)

;;; Code for rawtype.RawType.Unbound [type definition]
(type $rawtype.RawType.Unbound.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_method__java_lang_Object__java_lang_Object_$pp_rawtype (ref $function.m_method__java_lang_Object__java_lang_Object_$pp_rawtype))
 ))
)
(type $rawtype.RawType.Unbound (sub $java.lang.Object (struct
 (field $vtable (ref $rawtype.RawType.Unbound.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

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

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

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

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

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

;;; Code for rawtype.RawType.RawUnboundChild [type definition]
(type $rawtype.RawType.RawUnboundChild.vtable (sub $rawtype.RawType.Unbound.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_method__java_lang_Object__java_lang_Object_$pp_rawtype (ref $function.m_method__java_lang_Object__java_lang_Object_$pp_rawtype))
 ))
)
(type $rawtype.RawType.RawUnboundChild (sub $rawtype.RawType.Unbound (struct
 (field $vtable (ref $rawtype.RawType.RawUnboundChild.vtable))
 (field $itable (ref $itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for rawtype.RawType.GenericSuperclass [imports]

;;; Code for rawtype.RawType [imports]

;;; Code for rawtype.RawType.Unbound [imports]

;;; Code for rawtype.RawType.Bound [imports]

;;; Code for rawtype.RawType.BoundRecursively [imports]

;;; Code for rawtype.RawType.BoundDependentDirect [imports]

;;; Code for rawtype.RawType.BoundDependentIndirect [imports]

;;; Code for rawtype.RawType.RawSubclass [imports]

;;; Code for rawtype.RawType.RawUnboundChild [imports]

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

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

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

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

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

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

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

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

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

;;; Code for rawtype.RawType [vtable.init]
(global $rawtype.RawType.vtable (ref $rawtype.RawType.vtable)
 (struct.new $rawtype.RawType.vtable
  (ref.func $$getClassImpl__java_lang_Class@rawtype.RawType)
  (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 rawtype.RawType.Unbound [vtable.init]
(global $rawtype.RawType.Unbound.vtable (ref $rawtype.RawType.Unbound.vtable)
 (struct.new $rawtype.RawType.Unbound.vtable
  (ref.func $$getClassImpl__java_lang_Class@rawtype.RawType.Unbound)
  (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_method__java_lang_Object__java_lang_Object_$pp_rawtype@rawtype.RawType.Unbound)
 )
)

;;; Code for rawtype.RawType.Bound [vtable.init]
(global $rawtype.RawType.Bound.vtable (ref $rawtype.RawType.Bound.vtable)
 (struct.new $rawtype.RawType.Bound.vtable
  (ref.func $$getClassImpl__java_lang_Class@rawtype.RawType.Bound)
  (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 rawtype.RawType.BoundRecursively [vtable.init]
(global $rawtype.RawType.BoundRecursively.vtable (ref $rawtype.RawType.BoundRecursively.vtable)
 (struct.new $rawtype.RawType.BoundRecursively.vtable
  (ref.func $$getClassImpl__java_lang_Class@rawtype.RawType.BoundRecursively)
  (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 rawtype.RawType.BoundDependentDirect [vtable.init]
(global $rawtype.RawType.BoundDependentDirect.vtable (ref $rawtype.RawType.BoundDependentDirect.vtable)
 (struct.new $rawtype.RawType.BoundDependentDirect.vtable
  (ref.func $$getClassImpl__java_lang_Class@rawtype.RawType.BoundDependentDirect)
  (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 rawtype.RawType.BoundDependentIndirect [vtable.init]
(global $rawtype.RawType.BoundDependentIndirect.vtable (ref $rawtype.RawType.BoundDependentIndirect.vtable)
 (struct.new $rawtype.RawType.BoundDependentIndirect.vtable
  (ref.func $$getClassImpl__java_lang_Class@rawtype.RawType.BoundDependentIndirect)
  (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 rawtype.RawType.RawUnboundChild [vtable.init]
(global $rawtype.RawType.RawUnboundChild.vtable (ref $rawtype.RawType.RawUnboundChild.vtable)
 (struct.new $rawtype.RawType.RawUnboundChild.vtable
  (ref.func $$getClassImpl__java_lang_Class@rawtype.RawType.RawUnboundChild)
  (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_method__java_lang_Object__java_lang_Object_$pp_rawtype@rawtype.RawType.RawUnboundChild)
 )
)

;;; Code for rawtype.RawType.RawSubclass [vtable.init]
(global $rawtype.RawType.RawSubclass.vtable (ref $rawtype.RawType.RawSubclass.vtable)
 (struct.new $rawtype.RawType.RawSubclass.vtable
  (ref.func $$getClassImpl__java_lang_Class@rawtype.RawType.RawSubclass)
  (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_f__rawtype_RawType__void@rawtype.RawType.RawSubclass)
 )
)
(global $rawtype.RawType.GenericSuperclass.vtable@$rawtype.RawType.RawSubclass (ref $rawtype.RawType.GenericSuperclass.vtable)
 (struct.new $rawtype.RawType.GenericSuperclass.vtable
  (ref.func $m_f__rawtype_RawType__void@rawtype.RawType.RawSubclass)
 )
)

;;; Code for rawtype.RawType.GenericSuperclass [methods]

;;; void GenericSuperclass.f(T t)
(func $m_f__rawtype_RawType__void@rawtype.RawType.GenericSuperclass
 (param $this (ref null $java.lang.Object))
 (param $t (ref null $rawtype.RawType))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:48:17
 (block
 )
)
(elem declare func $m_f__rawtype_RawType__void@rawtype.RawType.GenericSuperclass)

;;; void GenericSuperclass.$clinit()
(func $$clinit__void_<once>_@rawtype.RawType.GenericSuperclass
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:47:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:47:12
  (if (global.get $$class-initialized@rawtype.RawType.GenericSuperclass)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:47:12
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:47:12
  (global.set $$class-initialized@rawtype.RawType.GenericSuperclass (i32.const 1))
 )
)

;;; Class<T> GenericSuperclass.$getClassMetadata()
(func $$getClassMetadata__java_lang_Class_<once>_@rawtype.RawType.GenericSuperclass
 (result (ref null $java.lang.Class))
 (block
  (if (i32.eqz (ref.is_null (global.get $$class@rawtype.RawType.GenericSuperclass)))
   (then
    (return (global.get $$class@rawtype.RawType.GenericSuperclass))
   )
  )
  (global.set $$class@rawtype.RawType.GenericSuperclass (call $m_createForInterface__java_lang_String__java_lang_Class@java.lang.Class (call $$getString_|rawtype.RawT...|__java_lang_String_<once>_@rawtype.RawType.GenericSuperclass )))
  (return (global.get $$class@rawtype.RawType.GenericSuperclass))
 )
)

;;; Code for rawtype.RawType [methods]

;;; RawType RawType.$create()
(func $$create__@rawtype.RawType
 (result (ref null $rawtype.RawType))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:19:6
 (local $$instance (ref null $rawtype.RawType))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:19:6
  (call $$clinit__void_<once>_@rawtype.RawType )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:19:6
  (local.set $$instance (struct.new $rawtype.RawType (global.get $rawtype.RawType.vtable) (global.get $itable.empty) (i32.const 0) (ref.null $rawtype.RawType.BoundDependentDirect) (ref.null $rawtype.RawType.BoundDependentIndirect) (ref.null $rawtype.RawType.BoundRecursively) (ref.null $rawtype.RawType.Bound) (ref.null $rawtype.RawType.Unbound)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:19:6
  (call $$ctor__void_$p_rawtype_RawType@rawtype.RawType (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:19:6
  (return (local.get $$instance))
 )
)

;;; void RawType.$ctor()
(func $$ctor__void_$p_rawtype_RawType@rawtype.RawType
 (param $this (ref null $rawtype.RawType))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:19:6
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:19:6
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:19:6
  (call $$init__void_$p_rawtype_RawType@rawtype.RawType (ref.as_non_null (local.get $this)))
 )
)

;;; void RawType.$init()
(func $$init__void_$p_rawtype_RawType@rawtype.RawType
 (param $this (ref null $rawtype.RawType))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:19:6
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:20:2
  (struct.set $rawtype.RawType $rawUnbound@rawtype.RawType (local.get $this) (call $$create__@rawtype.RawType.Unbound ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:21:2
  (struct.set $rawtype.RawType $rawBound@rawtype.RawType (local.get $this) (call $$create__@rawtype.RawType.Bound ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:22:2
  (struct.set $rawtype.RawType $rawBoundRecursively@rawtype.RawType (local.get $this) (call $$create__@rawtype.RawType.BoundRecursively ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:23:2
  (struct.set $rawtype.RawType $rawBoundDependentDirect@rawtype.RawType (local.get $this) (call $$create__@rawtype.RawType.BoundDependentDirect ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:24:2
  (struct.set $rawtype.RawType $rawBoundDependentIndirect@rawtype.RawType (local.get $this) (call $$create__@rawtype.RawType.BoundDependentIndirect ))
 )
)

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

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

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

;;; Code for rawtype.RawType.Unbound [methods]

;;; Unbound<T> Unbound.$create()
(func $$create__@rawtype.RawType.Unbound
 (result (ref null $rawtype.RawType.Unbound))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:26:15
 (local $$instance (ref null $rawtype.RawType.Unbound))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:26:15
  (call $$clinit__void_<once>_@rawtype.RawType.Unbound )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:26:15
  (local.set $$instance (struct.new $rawtype.RawType.Unbound (global.get $rawtype.RawType.Unbound.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:26:15
  (call $$ctor__void_$p_rawtype_RawType_Unbound@rawtype.RawType.Unbound (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:26:15
  (return (local.get $$instance))
 )
)

;;; void Unbound.$ctor()
(func $$ctor__void_$p_rawtype_RawType_Unbound@rawtype.RawType.Unbound
 (param $this (ref null $rawtype.RawType.Unbound))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:26:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:26:15
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; T Unbound.method(T t)
(func $m_method__java_lang_Object__java_lang_Object_$pp_rawtype@rawtype.RawType.Unbound
 (type $function.m_method__java_lang_Object__java_lang_Object_$pp_rawtype)
 (param $this.untyped (ref $java.lang.Object))
 (param $t (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:27:6
 (local $this (ref null $rawtype.RawType.Unbound))
 (local.set $this (ref.cast (ref $rawtype.RawType.Unbound) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:28:6
  (return (local.get $t))
 )
)
(elem declare func $m_method__java_lang_Object__java_lang_Object_$pp_rawtype@rawtype.RawType.Unbound)

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

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

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

;;; Code for rawtype.RawType.Bound [methods]

;;; Bound<T> Bound.$create()
(func $$create__@rawtype.RawType.Bound
 (result (ref null $rawtype.RawType.Bound))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:32:15
 (local $$instance (ref null $rawtype.RawType.Bound))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:32:15
  (call $$clinit__void_<once>_@rawtype.RawType.Bound )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:32:15
  (local.set $$instance (struct.new $rawtype.RawType.Bound (global.get $rawtype.RawType.Bound.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:32:15
  (call $$ctor__void_$p_rawtype_RawType_Bound@rawtype.RawType.Bound (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:32:15
  (return (local.get $$instance))
 )
)

;;; void Bound.$ctor()
(func $$ctor__void_$p_rawtype_RawType_Bound@rawtype.RawType.Bound
 (param $this (ref null $rawtype.RawType.Bound))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:32:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:32:15
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for rawtype.RawType.BoundRecursively [methods]

;;; BoundRecursively<T> BoundRecursively.$create()
(func $$create__@rawtype.RawType.BoundRecursively
 (result (ref null $rawtype.RawType.BoundRecursively))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:34:15
 (local $$instance (ref null $rawtype.RawType.BoundRecursively))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:34:15
  (call $$clinit__void_<once>_@rawtype.RawType.BoundRecursively )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:34:15
  (local.set $$instance (struct.new $rawtype.RawType.BoundRecursively (global.get $rawtype.RawType.BoundRecursively.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:34:15
  (call $$ctor__void_$p_rawtype_RawType_BoundRecursively@rawtype.RawType.BoundRecursively (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:34:15
  (return (local.get $$instance))
 )
)

;;; void BoundRecursively.$ctor()
(func $$ctor__void_$p_rawtype_RawType_BoundRecursively@rawtype.RawType.BoundRecursively
 (param $this (ref null $rawtype.RawType.BoundRecursively))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:34:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:34:15
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for rawtype.RawType.BoundDependentDirect [methods]

;;; BoundDependentDirect<A, B> BoundDependentDirect.$create()
(func $$create__@rawtype.RawType.BoundDependentDirect
 (result (ref null $rawtype.RawType.BoundDependentDirect))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:36:15
 (local $$instance (ref null $rawtype.RawType.BoundDependentDirect))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:36:15
  (call $$clinit__void_<once>_@rawtype.RawType.BoundDependentDirect )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:36:15
  (local.set $$instance (struct.new $rawtype.RawType.BoundDependentDirect (global.get $rawtype.RawType.BoundDependentDirect.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:36:15
  (call $$ctor__void_$p_rawtype_RawType_BoundDependentDirect@rawtype.RawType.BoundDependentDirect (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:36:15
  (return (local.get $$instance))
 )
)

;;; void BoundDependentDirect.$ctor()
(func $$ctor__void_$p_rawtype_RawType_BoundDependentDirect@rawtype.RawType.BoundDependentDirect
 (param $this (ref null $rawtype.RawType.BoundDependentDirect))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:36:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:36:15
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for rawtype.RawType.BoundDependentIndirect [methods]

;;; BoundDependentIndirect<A, B> BoundDependentIndirect.$create()
(func $$create__@rawtype.RawType.BoundDependentIndirect
 (result (ref null $rawtype.RawType.BoundDependentIndirect))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:38:15
 (local $$instance (ref null $rawtype.RawType.BoundDependentIndirect))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:38:15
  (call $$clinit__void_<once>_@rawtype.RawType.BoundDependentIndirect )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:38:15
  (local.set $$instance (struct.new $rawtype.RawType.BoundDependentIndirect (global.get $rawtype.RawType.BoundDependentIndirect.vtable) (global.get $itable.empty) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:38:15
  (call $$ctor__void_$p_rawtype_RawType_BoundDependentIndirect@rawtype.RawType.BoundDependentIndirect (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:38:15
  (return (local.get $$instance))
 )
)

;;; void BoundDependentIndirect.$ctor()
(func $$ctor__void_$p_rawtype_RawType_BoundDependentIndirect@rawtype.RawType.BoundDependentIndirect
 (param $this (ref null $rawtype.RawType.BoundDependentIndirect))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:38:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:38:15
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

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

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

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

;;; Code for rawtype.RawType.RawSubclass [methods]

;;; RawSubclass RawSubclass.$create()
(func $$create__@rawtype.RawType.RawSubclass
 (result (ref null $rawtype.RawType.RawSubclass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:51:15
 (local $$instance (ref null $rawtype.RawType.RawSubclass))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:51:15
  (call $$clinit__void_<once>_@rawtype.RawType.RawSubclass )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:51:15
  (local.set $$instance (struct.new $rawtype.RawType.RawSubclass (global.get $rawtype.RawType.RawSubclass.vtable) (global.get $rawtype.RawType.RawSubclass.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:51:15
  (call $$ctor__void_$p_rawtype_RawType_RawSubclass@rawtype.RawType.RawSubclass (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:51:15
  (return (local.get $$instance))
 )
)

;;; void RawSubclass.$ctor()
(func $$ctor__void_$p_rawtype_RawType_RawSubclass@rawtype.RawType.RawSubclass
 (param $this (ref null $rawtype.RawType.RawSubclass))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:51:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:51:15
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void RawSubclass.f(RawType t)
(func $m_f__rawtype_RawType__void@rawtype.RawType.RawSubclass
 (type $function.m_f__rawtype_RawType__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $t (ref null $rawtype.RawType))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:53:16
 (local $this (ref null $rawtype.RawType.RawSubclass))
 (local.set $this (ref.cast (ref $rawtype.RawType.RawSubclass) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_f__rawtype_RawType__void@rawtype.RawType.RawSubclass)

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

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

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

;;; Code for rawtype.RawType.RawUnboundChild [methods]

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

;;; void RawUnboundChild.$ctor()
(func $$ctor__void_$p_rawtype_RawType_RawUnboundChild@rawtype.RawType.RawUnboundChild
 (param $this (ref null $rawtype.RawType.RawUnboundChild))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:40:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:40:15
  (call $$ctor__void_$p_rawtype_RawType_Unbound@rawtype.RawType.Unbound (ref.as_non_null (local.get $this)))
 )
)

;;; Object RawUnboundChild.method(Object o)
(func $m_method__java_lang_Object__java_lang_Object_$pp_rawtype@rawtype.RawType.RawUnboundChild
 (type $function.m_method__java_lang_Object__java_lang_Object_$pp_rawtype)
 (param $this.untyped (ref $java.lang.Object))
 (param $o (ref null $java.lang.Object))
 (result (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:42:11
 (local $this (ref null $rawtype.RawType.RawUnboundChild))
 (local.set $this (ref.cast (ref $rawtype.RawType.RawUnboundChild) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:43:6
  (return (call $m_method__java_lang_Object__java_lang_Object_$pp_rawtype@rawtype.RawType.Unbound (ref.as_non_null (local.get $this))(local.get $o)))
 )
)
(elem declare func $m_method__java_lang_Object__java_lang_Object_$pp_rawtype@rawtype.RawType.RawUnboundChild)

;;; void RawUnboundChild.$clinit()
(func $$clinit__void_<once>_@rawtype.RawType.RawUnboundChild
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:40:15
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:40:15
  (if (global.get $$class-initialized@rawtype.RawType.RawUnboundChild)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:40:15
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:40:15
  (global.set $$class-initialized@rawtype.RawType.RawUnboundChild (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/rawtype/readable-j2wasm.js/rawtype/RawType.java:40:15
  (call $$clinit__void_<once>_@rawtype.RawType.Unbound )
 )
)

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

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