;;; Code for interfaces.AccidentalOverride.Left [type definition]
(type $interfaces.AccidentalOverride.Left.vtable (sub (struct
 (field $m_foo__interfaces_AccidentalOverride_Left__void (ref $function.m_foo__interfaces_AccidentalOverride_Left__void))
 ))
)

;;; Code for interfaces.AccidentalOverride.Right [type definition]
(type $interfaces.AccidentalOverride.Right.vtable (sub (struct
 (field $m_foo__interfaces_AccidentalOverride_Right__void (ref $function.m_foo__interfaces_AccidentalOverride_Right__void))
 ))
)

;;; Code for interfaces.Main.Interface [type definition]
(type $interfaces.Main.Interface.vtable (sub (struct
 (field $m_defaultMethod__java_lang_Object__void (ref $function.m_defaultMethod__java_lang_Object__void))
 (field $m_interfaceMethod__void (ref $function.m_interfaceMethod__void))
 ))
)

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

;;; Code for interfaces.AccidentalOverride.Bottom [type definition]
(type $interfaces.AccidentalOverride.Bottom.vtable (sub $interfaces.AccidentalOverride.Left.vtable (struct
 (field $m_foo__interfaces_AccidentalOverride_Left__void (ref $function.m_foo__interfaces_AccidentalOverride_Left__void))
 (field $m_foo__interfaces_AccidentalOverride_Bottom__void (ref $function.m_foo__interfaces_AccidentalOverride_Bottom__void))
 (field $m_foo__interfaces_AccidentalOverride_Right__void (ref $function.m_foo__interfaces_AccidentalOverride_Right__void))
 ))
)

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

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

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

;;; Code for interfaces.Main.SubInterface [type definition]
(type $interfaces.Main.SubInterface.vtable (sub $interfaces.Main.Interface.vtable (struct
 (field $m_defaultMethod__java_lang_Object__void (ref $function.m_defaultMethod__java_lang_Object__void))
 (field $m_interfaceMethod__void (ref $function.m_interfaceMethod__void))
 (field $m_defaultMethod__java_lang_String__void (ref $function.m_defaultMethod__java_lang_String__void))
 ))
)

;;; Code for interfaces.AccidentalOverride.B [type definition]
(type $interfaces.AccidentalOverride.B.vtable (sub $interfaces.AccidentalOverride.A.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_foo__interfaces_AccidentalOverride_Left__void (ref $function.m_foo__interfaces_AccidentalOverride_Left__void))
 (field $m_foo__interfaces_AccidentalOverride_Right__void (ref $function.m_foo__interfaces_AccidentalOverride_Right__void))
 (field $m_foo__interfaces_AccidentalOverride_B__void (ref $function.m_foo__interfaces_AccidentalOverride_B__void))
 (field $m_foo__interfaces_AccidentalOverride_Bottom__void (ref $function.m_foo__interfaces_AccidentalOverride_Bottom__void))
 ))
)
(type $interfaces.AccidentalOverride.B (sub $interfaces.AccidentalOverride.A (struct
 (field $vtable (ref $interfaces.AccidentalOverride.B.vtable))
 (field $itable (ref $interfaces.AccidentalOverride.B.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for interfaces.AccidentalOverride.C [type definition]
(type $interfaces.AccidentalOverride.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))
 (field $m_foo__interfaces_AccidentalOverride_Bottom__void (ref $function.m_foo__interfaces_AccidentalOverride_Bottom__void))
 (field $m_foo__interfaces_AccidentalOverride_C__void (ref $function.m_foo__interfaces_AccidentalOverride_C__void))
 (field $m_foo__interfaces_AccidentalOverride_Left__void (ref $function.m_foo__interfaces_AccidentalOverride_Left__void))
 (field $m_foo__interfaces_AccidentalOverride_Right__void (ref $function.m_foo__interfaces_AccidentalOverride_Right__void))
 ))
)
(type $interfaces.AccidentalOverride.C (sub $java.lang.Object (struct
 (field $vtable (ref $interfaces.AccidentalOverride.C.vtable))
 (field $itable (ref $interfaces.AccidentalOverride.C.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for interfaces.Main.SubInterface.$LambdaAdaptor [type definition]
(type $interfaces.Main.SubInterface.$LambdaAdaptor.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_defaultMethod__java_lang_Object__void (ref $function.m_defaultMethod__java_lang_Object__void))
 (field $m_defaultMethod__java_lang_String__void (ref $function.m_defaultMethod__java_lang_String__void))
 (field $m_interfaceMethod__void (ref $function.m_interfaceMethod__void))
 ))
)
(type $interfaces.Main.SubInterface.$LambdaAdaptor (sub $java.lang.Object (struct
 (field $vtable (ref $interfaces.Main.SubInterface.$LambdaAdaptor.vtable))
 (field $itable (ref $interfaces.Main.SubInterface.$LambdaAdaptor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 ))
)

;;; Code for interfaces.Main.Implementor [type definition]
(type $interfaces.Main.Implementor.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_defaultMethod__java_lang_Object__void (ref $function.m_defaultMethod__java_lang_Object__void))
 (field $m_defaultMethod__java_lang_String__void (ref $function.m_defaultMethod__java_lang_String__void))
 (field $m_interfaceMethod__void (ref $function.m_interfaceMethod__void))
 ))
)
(type $interfaces.Main.Implementor (sub $java.lang.Object (struct
 (field $vtable (ref $interfaces.Main.Implementor.vtable))
 (field $itable (ref $interfaces.Main.Implementor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@interfaces.Main.Implementor (mut (ref null $interfaces.Main)))
 ))
)

;;; Code for interfaces.Main.AbstractImplementor [type definition]
(type $interfaces.Main.AbstractImplementor.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_defaultMethod__java_lang_Object__void (ref $function.m_defaultMethod__java_lang_Object__void))
 (field $m_defaultMethod__java_lang_String__void (ref $function.m_defaultMethod__java_lang_String__void))
 (field $m_interfaceMethod__void (ref $function.m_interfaceMethod__void))
 ))
)
(type $interfaces.Main.AbstractImplementor (sub $java.lang.Object (struct
 (field $vtable (ref $interfaces.Main.AbstractImplementor.vtable))
 (field $itable (ref $interfaces.Main.AbstractImplementor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $$outer_this@interfaces.Main.AbstractImplementor (mut (ref null $interfaces.Main)))
 ))
)

;;; Code for interfaces.Main.EnumImplementor [type definition]
(type $interfaces.Main.EnumImplementor.vtable (sub $java.lang.Enum.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_compareTo__java_lang_Object__int (ref $function.m_compareTo__java_lang_Object__int))
 (field $m_getDeclaringClass__java_lang_Class (ref $function.m_getDeclaringClass__java_lang_Class))
 (field $m_defaultMethod__java_lang_Object__void (ref $function.m_defaultMethod__java_lang_Object__void))
 (field $m_defaultMethod__java_lang_String__void (ref $function.m_defaultMethod__java_lang_String__void))
 (field $m_interfaceMethod__void (ref $function.m_interfaceMethod__void))
 ))
)
(type $interfaces.Main.EnumImplementor (sub $java.lang.Enum (struct
 (field $vtable (ref $interfaces.Main.EnumImplementor.vtable))
 (field $itable (ref $interfaces.Main.EnumImplementor.itable))
 (field $$systemIdentityHashCode@java.lang.Object (mut i32))
 (field $name@java.lang.Enum (mut (ref null $java.lang.String)))
 (field $ordinal@java.lang.Enum (mut i32))
 ))
)

;;; Code for interfaces.AccidentalOverride.Left [imports]

;;; Code for interfaces.AccidentalOverride.Right [imports]

;;; Code for interfaces.Main.Interface [imports]

;;; Code for interfaces.AccidentalOverride [imports]

;;; Code for interfaces.AccidentalOverride.Bottom [imports]

;;; Code for interfaces.AccidentalOverride.A [imports]

;;; Code for interfaces.Main [imports]

;;; Code for interfaces.Main.Interface.$LambdaAdaptor [imports]

;;; Code for interfaces.Main.SubInterface [imports]

;;; Code for interfaces.AccidentalOverride.B [imports]

;;; Code for interfaces.AccidentalOverride.C [imports]

;;; Code for interfaces.Main.SubInterface.$LambdaAdaptor [imports]

;;; Code for interfaces.Main.Implementor [imports]

;;; Code for interfaces.Main.AbstractImplementor [imports]

;;; Code for interfaces.Main.EnumImplementor [imports]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

;;; Code for interfaces.AccidentalOverride [vtable.init]
(global $interfaces.AccidentalOverride.vtable (ref $interfaces.AccidentalOverride.vtable)
 (struct.new $interfaces.AccidentalOverride.vtable
  (ref.func $$getClassImpl__java_lang_Class@interfaces.AccidentalOverride)
  (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 interfaces.AccidentalOverride.A [vtable.init]
(global $interfaces.AccidentalOverride.A.vtable (ref $interfaces.AccidentalOverride.A.vtable)
 (struct.new $interfaces.AccidentalOverride.A.vtable
  (ref.func $$getClassImpl__java_lang_Class@interfaces.AccidentalOverride.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)
  (ref.func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.A)
  (ref.func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.A)
 )
)
(global $interfaces.AccidentalOverride.Left.vtable@$interfaces.AccidentalOverride.A (ref $interfaces.AccidentalOverride.Left.vtable)
 (struct.new $interfaces.AccidentalOverride.Left.vtable
  (ref.func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.A)
 )
)
(global $interfaces.AccidentalOverride.Right.vtable@$interfaces.AccidentalOverride.A (ref $interfaces.AccidentalOverride.Right.vtable)
 (struct.new $interfaces.AccidentalOverride.Right.vtable
  (ref.func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.A)
 )
)

;;; Code for interfaces.AccidentalOverride.B [vtable.init]
(global $interfaces.AccidentalOverride.B.vtable (ref $interfaces.AccidentalOverride.B.vtable)
 (struct.new $interfaces.AccidentalOverride.B.vtable
  (ref.func $$getClassImpl__java_lang_Class@interfaces.AccidentalOverride.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)
  (ref.func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.B)
  (ref.func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.B)
  (ref.func $m_foo__interfaces_AccidentalOverride_B__void@interfaces.AccidentalOverride.B)
  (ref.func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.B)
 )
)
(global $interfaces.AccidentalOverride.Bottom.vtable@$interfaces.AccidentalOverride.B (ref $interfaces.AccidentalOverride.Bottom.vtable)
 (struct.new $interfaces.AccidentalOverride.Bottom.vtable
  (ref.func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.B)
  (ref.func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.B)
  (ref.func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.B)
 )
)
(global $interfaces.AccidentalOverride.Left.vtable@$interfaces.AccidentalOverride.B (ref $interfaces.AccidentalOverride.Bottom.vtable) (global.get $interfaces.AccidentalOverride.Bottom.vtable@$interfaces.AccidentalOverride.B))
(global $interfaces.AccidentalOverride.Right.vtable@$interfaces.AccidentalOverride.B (ref $interfaces.AccidentalOverride.Right.vtable)
 (struct.new $interfaces.AccidentalOverride.Right.vtable
  (ref.func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.B)
 )
)

;;; Code for interfaces.AccidentalOverride.C [vtable.init]
(global $interfaces.AccidentalOverride.C.vtable (ref $interfaces.AccidentalOverride.C.vtable)
 (struct.new $interfaces.AccidentalOverride.C.vtable
  (ref.func $$getClassImpl__java_lang_Class@interfaces.AccidentalOverride.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)
  (ref.func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.C)
  (ref.func $m_foo__interfaces_AccidentalOverride_C__void@interfaces.AccidentalOverride.C)
  (ref.func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.C)
  (ref.func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.C)
 )
)
(global $interfaces.AccidentalOverride.Bottom.vtable@$interfaces.AccidentalOverride.C (ref $interfaces.AccidentalOverride.Bottom.vtable)
 (struct.new $interfaces.AccidentalOverride.Bottom.vtable
  (ref.func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.C)
  (ref.func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.C)
  (ref.func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.C)
 )
)
(global $interfaces.AccidentalOverride.Left.vtable@$interfaces.AccidentalOverride.C (ref $interfaces.AccidentalOverride.Bottom.vtable) (global.get $interfaces.AccidentalOverride.Bottom.vtable@$interfaces.AccidentalOverride.C))
(global $interfaces.AccidentalOverride.Right.vtable@$interfaces.AccidentalOverride.C (ref $interfaces.AccidentalOverride.Right.vtable)
 (struct.new $interfaces.AccidentalOverride.Right.vtable
  (ref.func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.C)
 )
)

;;; Code for interfaces.Main [vtable.init]
(global $interfaces.Main.vtable (ref $interfaces.Main.vtable)
 (struct.new $interfaces.Main.vtable
  (ref.func $$getClassImpl__java_lang_Class@interfaces.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)
  (ref.func $m_testInterfaceMembers__void_$pp_interfaces@interfaces.Main)
 )
)

;;; Code for interfaces.Main.Implementor [vtable.init]
(global $interfaces.Main.Implementor.vtable (ref $interfaces.Main.Implementor.vtable)
 (struct.new $interfaces.Main.Implementor.vtable
  (ref.func $$getClassImpl__java_lang_Class@interfaces.Main.Implementor)
  (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_defaultMethod__java_lang_Object__void@interfaces.Main.Implementor)
  (ref.func $m_defaultMethod__java_lang_String__void@interfaces.Main.Implementor)
  (ref.func $m_interfaceMethod__void@interfaces.Main.Implementor)
 )
)
(global $interfaces.Main.SubInterface.vtable@$interfaces.Main.Implementor (ref $interfaces.Main.SubInterface.vtable)
 (struct.new $interfaces.Main.SubInterface.vtable
  (ref.func $m_defaultMethod__java_lang_Object__void@interfaces.Main.Implementor)
  (ref.func $m_interfaceMethod__void@interfaces.Main.Implementor)
  (ref.func $m_defaultMethod__java_lang_String__void@interfaces.Main.Implementor)
 )
)
(global $interfaces.Main.Interface.vtable@$interfaces.Main.Implementor (ref $interfaces.Main.SubInterface.vtable) (global.get $interfaces.Main.SubInterface.vtable@$interfaces.Main.Implementor))

;;; Code for interfaces.Main.EnumImplementor [vtable.init]
(global $interfaces.Main.EnumImplementor.vtable (ref $interfaces.Main.EnumImplementor.vtable)
 (struct.new $interfaces.Main.EnumImplementor.vtable
  (ref.func $$getClassImpl__java_lang_Class@interfaces.Main.EnumImplementor)
  (ref.func $m_equals__java_lang_Object__boolean@java.lang.Enum)
  (ref.func $m_hashCode__int@java.lang.Enum)
  (ref.func $m_toString__java_lang_String@java.lang.Enum)
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
  (ref.func $m_getDeclaringClass__java_lang_Class@java.lang.Enum)
  (ref.func $m_defaultMethod__java_lang_Object__void@interfaces.Main.EnumImplementor)
  (ref.func $m_defaultMethod__java_lang_String__void@interfaces.Main.EnumImplementor)
  (ref.func $m_interfaceMethod__void@interfaces.Main.EnumImplementor)
 )
)
(global $interfaces.Main.SubInterface.vtable@$interfaces.Main.EnumImplementor (ref $interfaces.Main.SubInterface.vtable)
 (struct.new $interfaces.Main.SubInterface.vtable
  (ref.func $m_defaultMethod__java_lang_Object__void@interfaces.Main.EnumImplementor)
  (ref.func $m_interfaceMethod__void@interfaces.Main.EnumImplementor)
  (ref.func $m_defaultMethod__java_lang_String__void@interfaces.Main.EnumImplementor)
 )
)
(global $interfaces.Main.Interface.vtable@$interfaces.Main.EnumImplementor (ref $interfaces.Main.SubInterface.vtable) (global.get $interfaces.Main.SubInterface.vtable@$interfaces.Main.EnumImplementor))
(global $java.lang.Comparable.vtable@$interfaces.Main.EnumImplementor (ref $java.lang.Comparable.vtable)
 (struct.new $java.lang.Comparable.vtable
  (ref.func $m_compareTo__java_lang_Object__int@java.lang.Enum)
 )
)
(global $java.io.Serializable.vtable@$interfaces.Main.EnumImplementor (ref $java.io.Serializable.vtable)
 (struct.new $java.io.Serializable.vtable
 )
)

;;; Code for interfaces.AccidentalOverride.Left [methods]

;;; void Left.foo(T t)
(func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.Left
 (param $this (ref null $java.lang.Object))
 (param $t (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:23:17
 (block
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.Left)

;;; void Left.$clinit()
(func $$clinit__void_<once>_@interfaces.AccidentalOverride.Left
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:22:19
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:22:19
  (if (global.get $$class-initialized@interfaces.AccidentalOverride.Left)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:22:19
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:22:19
  (global.set $$class-initialized@interfaces.AccidentalOverride.Left (i32.const 1))
 )
)

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

;;; Code for interfaces.AccidentalOverride.Right [methods]

;;; void Right.foo(T t)
(func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.Right
 (param $this (ref null $java.lang.Object))
 (param $t (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:27:17
 (block
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.Right)

;;; void Right.$clinit()
(func $$clinit__void_<once>_@interfaces.AccidentalOverride.Right
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:26:19
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:26:19
  (if (global.get $$class-initialized@interfaces.AccidentalOverride.Right)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:26:19
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:26:19
  (global.set $$class-initialized@interfaces.AccidentalOverride.Right (i32.const 1))
 )
)

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

;;; Code for interfaces.Main.Interface [methods]

;;; void Interface.defaultMethod(T t)
(func $m_defaultMethod__java_lang_Object__void@interfaces.Main.Interface
 (param $this (ref null $java.lang.Object))
 (param $t (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:26:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:27:6
  (call $m_privateMethod__java_lang_Object__void_$p_interfaces_Main_Interface@interfaces.Main.Interface (ref.as_non_null (local.get $this))(local.get $t))
 )
)
(elem declare func $m_defaultMethod__java_lang_Object__void@interfaces.Main.Interface)

;;; void Interface.privateMethod(T t)
(func $m_privateMethod__java_lang_Object__void_$p_interfaces_Main_Interface@interfaces.Main.Interface
 (param $this (ref null $java.lang.Object))
 (param $t (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:30:17
 (block
 )
)

;;; void Interface.staticInterfaceMethod()
(func $m_staticInterfaceMethod__void@interfaces.Main.Interface
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:32:16
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:32:40
  (call $$clinit__void_<once>_@interfaces.Main.Interface )
 )
)

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

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

;;; Code for interfaces.AccidentalOverride [methods]

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

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

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

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

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

;;; Code for interfaces.AccidentalOverride.Bottom [methods]

;;; void Bottom.foo(T t)
(func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.Bottom
 (param $this (ref null $java.lang.Object))
 (param $t (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:32:17
 (block
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.Bottom)

;;; void Bottom.$clinit()
(func $$clinit__void_<once>_@interfaces.AccidentalOverride.Bottom
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:30:19
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:30:19
  (if (global.get $$class-initialized@interfaces.AccidentalOverride.Bottom)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:30:19
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:30:19
  (global.set $$class-initialized@interfaces.AccidentalOverride.Bottom (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:30:19
  (call $$clinit__void_<once>_@interfaces.AccidentalOverride.Left )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:30:19
  (call $$clinit__void_<once>_@interfaces.AccidentalOverride.Right )
 )
)

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

;;; Code for interfaces.AccidentalOverride.A [methods]

;;; A<T, V> A.$create()
(func $$create__@interfaces.AccidentalOverride.A
 (result (ref null $interfaces.AccidentalOverride.A))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
 (local $$instance (ref null $interfaces.AccidentalOverride.A))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
  (call $$clinit__void_<once>_@interfaces.AccidentalOverride.A )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
  (local.set $$instance (struct.new $interfaces.AccidentalOverride.A (global.get $interfaces.AccidentalOverride.A.vtable) (global.get $interfaces.AccidentalOverride.A.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
  (call $$ctor__void_$p_interfaces_AccidentalOverride_A@interfaces.AccidentalOverride.A (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
  (return (local.get $$instance))
 )
)

;;; void A.$ctor()
(func $$ctor__void_$p_interfaces_AccidentalOverride_A@interfaces.AccidentalOverride.A
 (param $this (ref null $interfaces.AccidentalOverride.A))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void A.foo(T arg0)
(func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.A
 (type $function.m_foo__interfaces_AccidentalOverride_Left__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
 (local $this (ref null $interfaces.AccidentalOverride.A))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.A) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
  (call $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.Left (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.A)

;;; void A.foo(V arg0)
(func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.A
 (type $function.m_foo__interfaces_AccidentalOverride_Right__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
 (local $this (ref null $interfaces.AccidentalOverride.A))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.A) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:35:22
  (call $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.Right (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.A)

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

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

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

;;; Code for interfaces.Main [methods]

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

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

;;; void Main.testInterfaceMembers()
(func $m_testInterfaceMembers__void_$pp_interfaces@interfaces.Main
 (type $function.m_testInterfaceMembers__void_$pp_interfaces)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:59:7
 (local $i (ref null $java.lang.Object))
 (local $impl (ref null $interfaces.Main.Implementor))
 (local $enumImpl (ref null $interfaces.Main.EnumImplementor))
 (local $x i32)
 (local $si (ref null $java.lang.Object))
 (local $this (ref null $interfaces.Main))
 (local.set $this (ref.cast (ref $interfaces.Main) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:60:4
  (local.set $i (call $$create__interfaces_Main@interfaces.Main.Implementor (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:61:4
  (call_ref $function.m_interfaceMethod__void (ref.as_non_null (local.get $i))(struct.get $interfaces.Main.Interface.vtable $m_interfaceMethod__void (ref.cast (ref $interfaces.Main.Interface.vtable) (call $get.itable.$interfaces.Main.Interface (local.get $i)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:62:4
  (call_ref $function.m_defaultMethod__java_lang_Object__void (ref.as_non_null (local.get $i))(ref.null $java.lang.String)(struct.get $interfaces.Main.Interface.vtable $m_defaultMethod__java_lang_Object__void (ref.cast (ref $interfaces.Main.Interface.vtable) (call $get.itable.$interfaces.Main.Interface (local.get $i)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:63:4
  (drop (call_ref $function.m_toString__java_lang_String (ref.as_non_null (local.get $i))(struct.get $java.lang.Object.vtable $m_toString__java_lang_String (struct.get $java.lang.Object $vtable(local.get $i)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:65:4
  (local.set $impl (call $$create__interfaces_Main@interfaces.Main.Implementor (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:66:4
  (call_ref $function.m_defaultMethod__java_lang_String__void (ref.as_non_null (local.get $impl))(ref.null $java.lang.String)(struct.get $interfaces.Main.Implementor.vtable $m_defaultMethod__java_lang_String__void (struct.get $interfaces.Main.Implementor $vtable(local.get $impl))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:68:4
  (local.set $enumImpl (block (result (ref null $interfaces.Main.EnumImplementor))
   (call $$clinit__void_<once>_@interfaces.Main.EnumImplementor )
   (global.get $ONE@interfaces.Main.EnumImplementor)
  ))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:69:4
  (call_ref $function.m_defaultMethod__java_lang_String__void (ref.as_non_null (local.get $enumImpl))(ref.null $java.lang.String)(struct.get $interfaces.Main.EnumImplementor.vtable $m_defaultMethod__java_lang_String__void (struct.get $interfaces.Main.EnumImplementor $vtable(local.get $enumImpl))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:71:4
  (call $m_staticInterfaceMethod__void@interfaces.Main.Interface )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:72:4
  (local.set $x (i32.add (block (result i32)
   (drop (call $$create__interfaces_Main@interfaces.Main.Implementor (local.get $this)))
   (i32.const 1)
  ) (i32.const 2)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:74:4
  (local.set $si (call $$create__interfaces_Main@interfaces.Main.Implementor (local.get $this)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:75:4
  (call_ref $function.m_interfaceMethod__void (ref.as_non_null (local.get $si))(struct.get $interfaces.Main.SubInterface.vtable $m_interfaceMethod__void (ref.cast (ref $interfaces.Main.SubInterface.vtable) (call $get.itable.$interfaces.Main.SubInterface (local.get $si)))))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:76:4
  (call_ref $function.m_defaultMethod__java_lang_String__void (ref.as_non_null (local.get $si))(ref.null $java.lang.String)(struct.get $interfaces.Main.SubInterface.vtable $m_defaultMethod__java_lang_String__void (ref.cast (ref $interfaces.Main.SubInterface.vtable) (call $get.itable.$interfaces.Main.SubInterface (local.get $si)))))
 )
)
(elem declare func $m_testInterfaceMembers__void_$pp_interfaces@interfaces.Main)

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

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

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

;;; Code for interfaces.Main.Interface.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_interfaces_Main_Interface_$LambdaAdaptor@interfaces.Main.Interface.$LambdaAdaptor
 (param $this (ref null $interfaces.Main.Interface.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:20:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:20:12
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void $LambdaAdaptor.defaultMethod(T arg0)
(func $m_defaultMethod__java_lang_Object__void@interfaces.Main.Interface.$LambdaAdaptor
 (type $function.m_defaultMethod__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:20:12
 (local $this (ref null $interfaces.Main.Interface.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $interfaces.Main.Interface.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:20:12
  (call $m_defaultMethod__java_lang_Object__void@interfaces.Main.Interface (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_defaultMethod__java_lang_Object__void@interfaces.Main.Interface.$LambdaAdaptor)

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

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

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

;;; Code for interfaces.Main.SubInterface [methods]

;;; void SubInterface.defaultMethod(String s)
(func $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface
 (param $this (ref null $java.lang.Object))
 (param $s (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:39:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:40:6
  (call $m_defaultMethod__java_lang_Object__void@interfaces.Main.Interface (ref.as_non_null (local.get $this))(local.get $s))
 )
)
(elem declare func $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface)

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

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

;;; Code for interfaces.AccidentalOverride.B [methods]

;;; B B.$create()
(func $$create__@interfaces.AccidentalOverride.B
 (result (ref null $interfaces.AccidentalOverride.B))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
 (local $$instance (ref null $interfaces.AccidentalOverride.B))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
  (call $$clinit__void_<once>_@interfaces.AccidentalOverride.B )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
  (local.set $$instance (struct.new $interfaces.AccidentalOverride.B (global.get $interfaces.AccidentalOverride.B.vtable) (global.get $interfaces.AccidentalOverride.B.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
  (call $$ctor__void_$p_interfaces_AccidentalOverride_B@interfaces.AccidentalOverride.B (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
  (return (local.get $$instance))
 )
)

;;; void B.$ctor()
(func $$ctor__void_$p_interfaces_AccidentalOverride_B@interfaces.AccidentalOverride.B
 (param $this (ref null $interfaces.AccidentalOverride.B))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
  (call $$ctor__void_$p_interfaces_AccidentalOverride_A@interfaces.AccidentalOverride.A (ref.as_non_null (local.get $this)))
 )
)

;;; void B.foo(T arg0)
(func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.B
 (type $function.m_foo__interfaces_AccidentalOverride_Left__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
 (local $this (ref null $interfaces.AccidentalOverride.B))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.B) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
  (call $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.Bottom (ref.as_non_null (local.get $this))(ref.cast (ref null $interfaces.AccidentalOverride.B) (local.get $arg0)))
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.B)

;;; void B.foo(V arg0)
(func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.B
 (type $function.m_foo__interfaces_AccidentalOverride_Right__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
 (local $this (ref null $interfaces.AccidentalOverride.B))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.B) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
  (call $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.Bottom (ref.as_non_null (local.get $this))(ref.cast (ref null $interfaces.AccidentalOverride.B) (local.get $arg0)))
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.B)

;;; void B.foo(T arg0)
(func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.B
 (type $function.m_foo__interfaces_AccidentalOverride_Bottom__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
 (local $this (ref null $interfaces.AccidentalOverride.B))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.B) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
  (call $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.Bottom (ref.as_non_null (local.get $this))(ref.cast (ref null $interfaces.AccidentalOverride.B) (local.get $arg0)))
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.B)

;;; void B.foo(B arg0)
(func $m_foo__interfaces_AccidentalOverride_B__void@interfaces.AccidentalOverride.B
 (type $function.m_foo__interfaces_AccidentalOverride_B__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $interfaces.AccidentalOverride.B))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
 (local $this (ref null $interfaces.AccidentalOverride.B))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.B) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:37:22
  (call $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.Bottom (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_B__void@interfaces.AccidentalOverride.B)

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

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

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

;;; Code for interfaces.AccidentalOverride.C [methods]

;;; C C.$create()
(func $$create__@interfaces.AccidentalOverride.C
 (result (ref null $interfaces.AccidentalOverride.C))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
 (local $$instance (ref null $interfaces.AccidentalOverride.C))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
  (call $$clinit__void_<once>_@interfaces.AccidentalOverride.C )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
  (local.set $$instance (struct.new $interfaces.AccidentalOverride.C (global.get $interfaces.AccidentalOverride.C.vtable) (global.get $interfaces.AccidentalOverride.C.itable) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
  (call $$ctor__void_$p_interfaces_AccidentalOverride_C@interfaces.AccidentalOverride.C (ref.as_non_null (local.get $$instance)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
  (return (local.get $$instance))
 )
)

;;; void C.$ctor()
(func $$ctor__void_$p_interfaces_AccidentalOverride_C@interfaces.AccidentalOverride.C
 (param $this (ref null $interfaces.AccidentalOverride.C))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void C.foo(C c)
(func $m_foo__interfaces_AccidentalOverride_C__void@interfaces.AccidentalOverride.C
 (type $function.m_foo__interfaces_AccidentalOverride_C__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $c (ref null $interfaces.AccidentalOverride.C))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:41:16
 (local $this (ref null $interfaces.AccidentalOverride.C))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.C) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_C__void@interfaces.AccidentalOverride.C)

;;; void C.foo(T arg0)
(func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.C
 (type $function.m_foo__interfaces_AccidentalOverride_Left__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
 (local $this (ref null $interfaces.AccidentalOverride.C))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.C) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
  (call_ref $function.m_foo__interfaces_AccidentalOverride_C__void (ref.as_non_null (local.get $this))(ref.cast (ref null $interfaces.AccidentalOverride.C) (local.get $arg0))(struct.get $interfaces.AccidentalOverride.C.vtable $m_foo__interfaces_AccidentalOverride_C__void (struct.get $interfaces.AccidentalOverride.C $vtable(local.get $this))))
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Left__void@interfaces.AccidentalOverride.C)

;;; void C.foo(T arg0)
(func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.C
 (type $function.m_foo__interfaces_AccidentalOverride_Right__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
 (local $this (ref null $interfaces.AccidentalOverride.C))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.C) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
  (call_ref $function.m_foo__interfaces_AccidentalOverride_C__void (ref.as_non_null (local.get $this))(ref.cast (ref null $interfaces.AccidentalOverride.C) (local.get $arg0))(struct.get $interfaces.AccidentalOverride.C.vtable $m_foo__interfaces_AccidentalOverride_C__void (struct.get $interfaces.AccidentalOverride.C $vtable(local.get $this))))
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Right__void@interfaces.AccidentalOverride.C)

;;; void C.foo(T arg0)
(func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.C
 (type $function.m_foo__interfaces_AccidentalOverride_Bottom__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
 (local $this (ref null $interfaces.AccidentalOverride.C))
 (local.set $this (ref.cast (ref $interfaces.AccidentalOverride.C) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/AccidentalOverride.java:39:22
  (call_ref $function.m_foo__interfaces_AccidentalOverride_C__void (ref.as_non_null (local.get $this))(ref.cast (ref null $interfaces.AccidentalOverride.C) (local.get $arg0))(struct.get $interfaces.AccidentalOverride.C.vtable $m_foo__interfaces_AccidentalOverride_C__void (struct.get $interfaces.AccidentalOverride.C $vtable(local.get $this))))
 )
)
(elem declare func $m_foo__interfaces_AccidentalOverride_Bottom__void@interfaces.AccidentalOverride.C)

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

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

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

;;; Code for interfaces.Main.SubInterface.$LambdaAdaptor [methods]

;;; void $LambdaAdaptor.$ctor()
(func $$ctor__void_$p_interfaces_Main_SubInterface_$LambdaAdaptor@interfaces.Main.SubInterface.$LambdaAdaptor
 (param $this (ref null $interfaces.Main.SubInterface.$LambdaAdaptor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:38:12
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:38:12
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void $LambdaAdaptor.defaultMethod(T arg0)
(func $m_defaultMethod__java_lang_Object__void@interfaces.Main.SubInterface.$LambdaAdaptor
 (type $function.m_defaultMethod__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:38:12
 (local $this (ref null $interfaces.Main.SubInterface.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $interfaces.Main.SubInterface.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:38:12
  (call $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface (ref.as_non_null (local.get $this))(ref.cast (ref null $java.lang.String) (local.get $arg0)))
 )
)
(elem declare func $m_defaultMethod__java_lang_Object__void@interfaces.Main.SubInterface.$LambdaAdaptor)

;;; void $LambdaAdaptor.defaultMethod(String arg0)
(func $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface.$LambdaAdaptor
 (type $function.m_defaultMethod__java_lang_String__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:38:12
 (local $this (ref null $interfaces.Main.SubInterface.$LambdaAdaptor))
 (local.set $this (ref.cast (ref $interfaces.Main.SubInterface.$LambdaAdaptor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:38:12
  (call $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface.$LambdaAdaptor)

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

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

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

;;; Code for interfaces.Main.Implementor [methods]

;;; Implementor Implementor.$create(Main $outer_this)
(func $$create__interfaces_Main@interfaces.Main.Implementor
 (param $$outer_this (ref null $interfaces.Main))
 (result (ref null $interfaces.Main.Implementor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
 (local $$instance (ref null $interfaces.Main.Implementor))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
  (call $$clinit__void_<once>_@interfaces.Main.Implementor )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
  (local.set $$instance (struct.new $interfaces.Main.Implementor (global.get $interfaces.Main.Implementor.vtable) (global.get $interfaces.Main.Implementor.itable) (i32.const 0) (ref.null $interfaces.Main)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
  (call $$ctor__interfaces_Main__void_$p_interfaces_Main_Implementor@interfaces.Main.Implementor (ref.as_non_null (local.get $$instance))(local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
  (return (local.get $$instance))
 )
)

;;; void Implementor.$ctor(Main $outer_this)
(func $$ctor__interfaces_Main__void_$p_interfaces_Main_Implementor@interfaces.Main.Implementor
 (param $this (ref null $interfaces.Main.Implementor))
 (param $$outer_this (ref null $interfaces.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
  (struct.set $interfaces.Main.Implementor $$outer_this@interfaces.Main.Implementor (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void Implementor.interfaceMethod()
(func $m_interfaceMethod__void@interfaces.Main.Implementor
 (type $function.m_interfaceMethod__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:46:16
 (local $this (ref null $interfaces.Main.Implementor))
 (local.set $this (ref.cast (ref $interfaces.Main.Implementor) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_interfaceMethod__void@interfaces.Main.Implementor)

;;; void Implementor.defaultMethod(T arg0)
(func $m_defaultMethod__java_lang_Object__void@interfaces.Main.Implementor
 (type $function.m_defaultMethod__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
 (local $this (ref null $interfaces.Main.Implementor))
 (local.set $this (ref.cast (ref $interfaces.Main.Implementor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
  (call $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface (ref.as_non_null (local.get $this))(ref.cast (ref null $java.lang.String) (local.get $arg0)))
 )
)
(elem declare func $m_defaultMethod__java_lang_Object__void@interfaces.Main.Implementor)

;;; void Implementor.defaultMethod(String arg0)
(func $m_defaultMethod__java_lang_String__void@interfaces.Main.Implementor
 (type $function.m_defaultMethod__java_lang_String__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
 (local $this (ref null $interfaces.Main.Implementor))
 (local.set $this (ref.cast (ref $interfaces.Main.Implementor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:44:8
  (call $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_defaultMethod__java_lang_String__void@interfaces.Main.Implementor)

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

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

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

;;; Code for interfaces.Main.AbstractImplementor [methods]

;;; void AbstractImplementor.$ctor(Main $outer_this)
(func $$ctor__interfaces_Main__void_$p_interfaces_Main_AbstractImplementor@interfaces.Main.AbstractImplementor
 (param $this (ref null $interfaces.Main.AbstractImplementor))
 (param $$outer_this (ref null $interfaces.Main))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:50:17
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:50:17
  (struct.set $interfaces.Main.AbstractImplementor $$outer_this@interfaces.Main.AbstractImplementor (local.get $this) (local.get $$outer_this))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:50:17
  (call $$ctor__void_$p_java_lang_Object@java.lang.Object (ref.as_non_null (local.get $this)))
 )
)

;;; void AbstractImplementor.defaultMethod(T arg0)
(func $m_defaultMethod__java_lang_Object__void@interfaces.Main.AbstractImplementor
 (type $function.m_defaultMethod__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:50:17
 (local $this (ref null $interfaces.Main.AbstractImplementor))
 (local.set $this (ref.cast (ref $interfaces.Main.AbstractImplementor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:50:17
  (call $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface (ref.as_non_null (local.get $this))(ref.cast (ref null $java.lang.String) (local.get $arg0)))
 )
)
(elem declare func $m_defaultMethod__java_lang_Object__void@interfaces.Main.AbstractImplementor)

;;; void AbstractImplementor.defaultMethod(String arg0)
(func $m_defaultMethod__java_lang_String__void@interfaces.Main.AbstractImplementor
 (type $function.m_defaultMethod__java_lang_String__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:50:17
 (local $this (ref null $interfaces.Main.AbstractImplementor))
 (local.set $this (ref.cast (ref $interfaces.Main.AbstractImplementor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:50:17
  (call $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_defaultMethod__java_lang_String__void@interfaces.Main.AbstractImplementor)

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

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

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

;;; Code for interfaces.Main.EnumImplementor [methods]

;;; EnumImplementor EnumImplementor.$create(String $name, int $ordinal)
(func $$create__java_lang_String__int@interfaces.Main.EnumImplementor
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 (result (ref null $interfaces.Main.EnumImplementor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
 (local $$instance (ref null $interfaces.Main.EnumImplementor))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (local.set $$instance (struct.new $interfaces.Main.EnumImplementor (global.get $interfaces.Main.EnumImplementor.vtable) (global.get $interfaces.Main.EnumImplementor.itable) (i32.const 0) (ref.null $java.lang.String) (i32.const 0)))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (call $$ctor__java_lang_String__int__void_$p_interfaces_Main_EnumImplementor@interfaces.Main.EnumImplementor (ref.as_non_null (local.get $$instance))(local.get $$name)(local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (return (local.get $$instance))
 )
)

;;; void EnumImplementor.$ctor(String $name, int $ordinal)
(func $$ctor__java_lang_String__int__void_$p_interfaces_Main_EnumImplementor@interfaces.Main.EnumImplementor
 (param $this (ref null $interfaces.Main.EnumImplementor))
 (param $$name (ref null $java.lang.String))
 (param $$ordinal i32)
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (struct.set $java.lang.Enum $name@java.lang.Enum (local.get $this) (local.get $$name))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (struct.set $java.lang.Enum $ordinal@java.lang.Enum (local.get $this) (local.get $$ordinal))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (call $$ctor__java_lang_String__int__void_$p_java_lang_Enum@java.lang.Enum (ref.as_non_null (local.get $this))(local.get $$name)(local.get $$ordinal))
 )
)

;;; void EnumImplementor.interfaceMethod()
(func $m_interfaceMethod__void@interfaces.Main.EnumImplementor
 (type $function.m_interfaceMethod__void)
 (param $this.untyped (ref $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:56:16
 (local $this (ref null $interfaces.Main.EnumImplementor))
 (local.set $this (ref.cast (ref $interfaces.Main.EnumImplementor) (local.get $this.untyped)))
 (block
 )
)
(elem declare func $m_interfaceMethod__void@interfaces.Main.EnumImplementor)

;;; void EnumImplementor.defaultMethod(T arg0)
(func $m_defaultMethod__java_lang_Object__void@interfaces.Main.EnumImplementor
 (type $function.m_defaultMethod__java_lang_Object__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.Object))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
 (local $this (ref null $interfaces.Main.EnumImplementor))
 (local.set $this (ref.cast (ref $interfaces.Main.EnumImplementor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (call $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface (ref.as_non_null (local.get $this))(ref.cast (ref null $java.lang.String) (local.get $arg0)))
 )
)
(elem declare func $m_defaultMethod__java_lang_Object__void@interfaces.Main.EnumImplementor)

;;; void EnumImplementor.defaultMethod(String arg0)
(func $m_defaultMethod__java_lang_String__void@interfaces.Main.EnumImplementor
 (type $function.m_defaultMethod__java_lang_String__void)
 (param $this.untyped (ref $java.lang.Object))
 (param $arg0 (ref null $java.lang.String))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
 (local $this (ref null $interfaces.Main.EnumImplementor))
 (local.set $this (ref.cast (ref $interfaces.Main.EnumImplementor) (local.get $this.untyped)))
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (call $m_defaultMethod__java_lang_String__void@interfaces.Main.SubInterface (ref.as_non_null (local.get $this))(local.get $arg0))
 )
)
(elem declare func $m_defaultMethod__java_lang_String__void@interfaces.Main.EnumImplementor)

;;; EnumImplementor EnumImplementor.valueOf(String name)
(func $m_valueOf__java_lang_String__interfaces_Main_EnumImplementor@interfaces.Main.EnumImplementor
 (param $name (ref null $java.lang.String))
 (result (ref null $interfaces.Main.EnumImplementor))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (call $$clinit__void_<once>_@interfaces.Main.EnumImplementor )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (if (ref.is_null (global.get $namesToValuesMap@interfaces.Main.EnumImplementor))
   (then
    (block
     ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
     (global.set $namesToValuesMap@interfaces.Main.EnumImplementor (call $m_createMapFromValues__arrayOf_java_lang_Enum__java_util_Map@javaemul.internal.Enums (call $m_values_$private__arrayOf_interfaces_Main_EnumImplementor@interfaces.Main.EnumImplementor )))
    )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (return (ref.cast (ref null $interfaces.Main.EnumImplementor) (call $m_getValueFromNameAndMap__java_lang_String__java_util_Map__java_lang_Object@javaemul.internal.Enums (local.get $name)(global.get $namesToValuesMap@interfaces.Main.EnumImplementor))))
 )
)

;;; EnumImplementor[] EnumImplementor.values()
(func $m_values__arrayOf_interfaces_Main_EnumImplementor@interfaces.Main.EnumImplementor
 (result (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (call $$clinit__void_<once>_@interfaces.Main.EnumImplementor )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (return (call $m_values_$private__arrayOf_interfaces_Main_EnumImplementor@interfaces.Main.EnumImplementor ))
 )
)

;;; EnumImplementor[] EnumImplementor.values_$private()
(func $m_values_$private__arrayOf_interfaces_Main_EnumImplementor@interfaces.Main.EnumImplementor
 (result (ref null $javaemul.internal.WasmArray.OfObject))
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (return (call $m_newWithLiteral__arrayOf_java_lang_Object__javaemul_internal_WasmArray_OfObject@javaemul.internal.WasmArray.OfObject (array.new_fixed $java.lang.Object.array 1 (global.get $ONE@interfaces.Main.EnumImplementor))))
 )
)

;;; void EnumImplementor.$clinit()
(func $$clinit__void_<once>_@interfaces.Main.EnumImplementor
 ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
 (block
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (if (global.get $$class-initialized@interfaces.Main.EnumImplementor)
   (then
    ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
    (return )
   )
  )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (global.set $$class-initialized@interfaces.Main.EnumImplementor (i32.const 1))
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (call $$clinit__void_<once>_@java.lang.Enum )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:52:7
  (call $$clinit__void_<once>_@interfaces.Main.SubInterface )
  ;;@ transpiler/javatests/com/google/j2cl/readable/java/interfaces/readable-j2wasm.js/interfaces/Main.java:53:4
  (global.set $ONE@interfaces.Main.EnumImplementor (call $$create__java_lang_String__int@interfaces.Main.EnumImplementor (call $$getString_|ONE|__java_lang_String_<once>_@interfaces.Main.EnumImplementor )(i32.const 0)))
 )
)

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

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