blob: 457e9e5a54be1540121cebecda29df8faf4ca440 [file] [log] [blame]
main = #lib::main;
[@vm.bytecode=
BytecodeMetadata {
Bytecode (version: stable)
Main library: #lib
Library '#lib'
name '#lib'
script '#lib'
Class '', script = '#lib'
Field 'globalVar', type = dart:core::List < dart:core::Iterable null* >*, reflectable, static
value = null
Function 'foo1', static, reflectable, debuggable
parameters [dynamic 'x'] (required: 1)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
PushConstant CP#0
InterfaceCall CP#1, 2
JumpIfFalse L1
PushConstant CP#3
DirectCall CP#4, 1
Drop1
L1:
Push FP[-5]
PushNull
PushNull
PushConstant CP#6
InterfaceCall CP#7, 4
JumpIfFalse L2
PushConstant CP#9
DirectCall CP#4, 1
Drop1
L2:
Push FP[-5]
PushConstant CP#10
PushNull
PushNull
PushConstant CP#11
AssertAssignable 0, CP#12
ReturnTOS
}
ConstantPool {
[0] = Type #lib::B < dart:core::String* >*
[1] = InterfaceCall 'dart:core::Object::_simpleInstanceOf', ArgDesc num-args 2, num-type-args 0, names []
[2] = Reserved
[3] = ObjectRef '11'
[4] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[5] = Reserved
[6] = Type #lib::C < dart:core::String*, dart:core::int*, dart:core::Object*, dynamic >*
[7] = InterfaceCall 'dart:core::Object::_instanceOf', ArgDesc num-args 4, num-type-args 0, names []
[8] = Reserved
[9] = ObjectRef '12'
[10] = Type #lib::A < dart:core::int* >*
[11] = ObjectRef ' in type cast'
[12] = SubtypeTestCache
}
Function 'foo5', static, reflectable, debuggable
parameters [dynamic 'x'] (required: 1)
return-type void
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
PushConstant CP#0
PushNull
PushNull
PushConstant CP#1
AssertAssignable 0, CP#2
StoreStaticTOS CP#3
PushNull
ReturnTOS
}
ConstantPool {
[0] = Type dart:core::List < dart:core::Iterable null* >*
[1] = ObjectRef ''
[2] = SubtypeTestCache
[3] = StaticField #lib::globalVar (field)
}
Function 'main', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
PushNull
ReturnTOS
}
ConstantPool {
}
Class 'A', script = '#lib'
type-params <dart:core::Object* T> (args: 1)
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::A < #lib::A::TypeParam/0* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type*
Class 'B', script = '#lib'
extends #lib::A < dart:core::String* >*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::B < dart:core::String* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::A:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Class 'C', script = '#lib'
type-params <dart:core::Object* T1, dart:core::Object* T2, dart:core::Object* T3> (args: 4)
extends #lib::B < dart:core::String* >*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C < dart:core::String*, #lib::C::TypeParam/0*, #lib::C::TypeParam/1*, #lib::C::TypeParam/2* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::B:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Class 'D', script = '#lib'
type-params <dart:core::Object* P, dart:core::Object* Q> (args: 5)
extends #lib::C < dart:core::String*, dart:core::int*, #lib::D::TypeParam/1*, #lib::D::TypeParam/0* >*
Field 'foo', type = dart:core::Map < #lib::D::TypeParam/0*, #lib::D::TypeParam/1* >*, getter = 'get:foo', setter = 'set:foo', reflectable
value = null
Function '', constructor, reflectable, debuggable
parameters [dynamic 'tt'] (required: 1)
return-type #lib::D < dart:core::String*, dart:core::int*, #lib::D::TypeParam/1*, #lib::D::TypeParam/0*, #lib::D::TypeParam/1* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-6]
Push FP[-5]
PushConstant CP#0
Push FP[-6]
LoadTypeArgumentsField CP#1
PushNull
PushConstant CP#2
AssertAssignable 0, CP#3
StoreFieldTOS CP#4
Push FP[-6]
DirectCall CP#6, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = Type dart:core::Map < #lib::D::TypeParam/0*, #lib::D::TypeParam/1* >*
[1] = TypeArgumentsField #lib::D
[2] = ObjectRef ''
[3] = SubtypeTestCache
[4] = InstanceField #lib::D::foo (field)
[5] = Reserved
[6] = DirectCall '#lib::C:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[7] = Reserved
}
Function 'foo2', reflectable, debuggable
parameters [dynamic 'y'] (required: 1)
return-type dynamic
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
Push FP[-6]
LoadTypeArgumentsField CP#0
PushNull
PushConstant CP#1
InterfaceCall CP#2, 4
JumpIfFalse L1
PushConstant CP#4
DirectCall CP#5, 1
Drop1
L1:
Push FP[-5]
Push FP[-6]
LoadTypeArgumentsField CP#0
PushNull
PushConstant CP#7
InterfaceCall CP#2, 4
JumpIfFalse L2
PushConstant CP#8
DirectCall CP#5, 1
Drop1
L2:
Push FP[-6]
Push FP[-5]
PushConstant CP#9
Push FP[-6]
LoadTypeArgumentsField CP#0
PushNull
PushConstant CP#10
AssertAssignable 0, CP#11
UncheckedInterfaceCall CP#12, 2
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = TypeArgumentsField #lib::D
[1] = Type #lib::A < #lib::D::TypeParam/0* >*
[2] = InterfaceCall 'dart:core::Object::_instanceOf', ArgDesc num-args 4, num-type-args 0, names []
[3] = Reserved
[4] = ObjectRef '21'
[5] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[6] = Reserved
[7] = Type #lib::C < dart:core::String*, dynamic, #lib::D::TypeParam/1*, dart:core::List < #lib::D::TypeParam/0* >* >*
[8] = ObjectRef '22'
[9] = Type dart:core::Map < #lib::D::TypeParam/0*, #lib::D::TypeParam/1* >*
[10] = ObjectRef ''
[11] = SubtypeTestCache
[12] = InterfaceCall '#lib::D::set:foo', ArgDesc num-args 2, num-type-args 0, names []
[13] = Reserved
}
Function 'foo3', reflectable, debuggable
type-params <dart:core::Object* T1, dart:core::Object* T2>
parameters [dynamic 'z'] (required: 1)
return-type dynamic
Bytecode {
Entry 1
CheckFunctionTypeArgs 2, r0
CheckStack 0
Push FP[-5]
PushNull
Push r0
PushConstant CP#0
InterfaceCall CP#1, 4
JumpIfFalse L1
PushConstant CP#3
DirectCall CP#4, 1
Drop1
L1:
Push FP[-5]
Push FP[-6]
LoadTypeArgumentsField CP#6
Push r0
PushConstant CP#7
InterfaceCall CP#1, 4
JumpIfFalse L2
PushConstant CP#8
DirectCall CP#4, 1
Drop1
L2:
Push FP[-5]
PushConstant CP#9
Push FP[-6]
LoadTypeArgumentsField CP#6
Push r0
PushConstant CP#10
AssertAssignable 0, CP#11
InterfaceCall CP#12, 1
ReturnTOS
}
ConstantPool {
[0] = Type #lib::A < #lib::D::foo3::TypeParam/0* >*
[1] = InterfaceCall 'dart:core::Object::_instanceOf', ArgDesc num-args 4, num-type-args 0, names []
[2] = Reserved
[3] = ObjectRef '31'
[4] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[5] = Reserved
[6] = TypeArgumentsField #lib::D
[7] = Type #lib::C < dart:core::String*, dart:core::Map < #lib::D::foo3::TypeParam/0*, #lib::D::TypeParam/0* >*, dart:core::List < #lib::D::foo3::TypeParam/1* >*, #lib::D::TypeParam/1* >*
[8] = ObjectRef '32'
[9] = Type dart:core::Map < #lib::D::foo3::TypeParam/1*, #lib::D::TypeParam/1* >*
[10] = ObjectRef ' in type cast'
[11] = SubtypeTestCache
[12] = InterfaceCall 'dart:core::Map::get:values', ArgDesc num-args 1, num-type-args 0, names []
[13] = Reserved
}
Function 'foo4', reflectable, debuggable
parameters [dynamic 'w'] (required: 1)
return-type dart:core::Map < #lib::D::TypeParam/0*, #lib::D::TypeParam/1* >*
Bytecode {
Entry 2
CheckStack 0
Push FP[-6]
LoadTypeArgumentsField CP#0
PushNull
InstantiateTypeArgumentsTOS 0, CP#1
StoreLocal r1
Push r1
PushInt 1
CreateArrayTOS
StoreLocal r1
Push r1
PushInt 0
Push FP[-5]
PushConstant CP#2
Push FP[-6]
LoadTypeArgumentsField CP#0
PushNull
PushConstant CP#3
AssertAssignable 0, CP#4
StoreIndexedTOS
DirectCall CP#5, 2
PopLocal r0
Push FP[-5]
PushConstant CP#2
Push FP[-6]
LoadTypeArgumentsField CP#0
PushNull
PushConstant CP#3
AssertAssignable 0, CP#7
ReturnTOS
}
ConstantPool {
[0] = TypeArgumentsField #lib::D
[1] = ObjectRef < dart:core::Map < #lib::D::TypeParam/0*, #lib::D::TypeParam/1* >* >
[2] = Type dart:core::Map < #lib::D::TypeParam/0*, #lib::D::TypeParam/1* >*
[3] = ObjectRef ''
[4] = SubtypeTestCache
[5] = DirectCall 'dart:core::List::_fromLiteral (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[6] = Reserved
[7] = SubtypeTestCache
}
Class 'E', script = '#lib'
type-params <dart:core::String* P> (args: 1)
extends dart:core::Object*
Function '', factory, static, reflectable, debuggable
type-params <dart:core::String* P>
parameters [] (required: 0)
return-type #lib::E < #lib::E:: (constructor)::TypeParam/0* >*
Bytecode {
Entry 0
CheckStack 0
PushNull
ReturnTOS
}
Default function type arguments: CP#0
ConstantPool {
[0] = ObjectRef < dart:core::String* >
}
Function 'foo6', reflectable, debuggable
type-params <#lib::E::TypeParam/0* T, dart:core::List < #lib::E::foo6::TypeParam/0* >* U>
parameters [dart:core::Map < #lib::E::foo6::TypeParam/0*, #lib::E::foo6::TypeParam/1* >* 'map'] (required: 1)
return-type void
Bytecode {
Entry 1
CheckFunctionTypeArgs 2, r0
JumpIfNotZeroTypeArgs L1
Push FP[-6]
LoadTypeArgumentsField CP#0
PushNull
InstantiateTypeArgumentsTOS 0, CP#1
PopLocal r0
L1:
CheckStack 0
JumpIfUnchecked L2
Push FP[-6]
LoadTypeArgumentsField CP#0
Push r0
PushConstant CP#2
PushConstant CP#3
PushConstant CP#4
AssertSubtype
L2:
PushNull
ReturnTOS
}
Default function type arguments: CP#1
ConstantPool {
[0] = TypeArgumentsField #lib::E
[1] = ObjectRef < #lib::E::TypeParam/0*, dart:core::List < #lib::E::TypeParam/0* >* >
[2] = Type #lib::E::foo6::TypeParam/0*
[3] = Type #lib::E::TypeParam/0*
[4] = ObjectRef 'T'
}
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type*
Class 'F', script = '#lib', abstract
type-params <dart:core::Object* T> (args: 1)
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::F < #lib::F::TypeParam/0* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'foo7', abstract, reflectable, debuggable
type-params <#lib::F::TypeParam/0* Q>
parameters [#lib::F::foo7::TypeParam/0* 'a', dart:core::num* 'b', #lib::F::TypeParam/0* 'c'] (required: 3)
return-type void
Function 'foo8', abstract, reflectable, debuggable
type-params <#lib::F::TypeParam/0* Q>
parameters [#lib::F::foo8::TypeParam/0* 'a', dart:core::num* 'b', #lib::F::TypeParam/0* 'c'] (required: 3)
return-type void
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type*
Class 'G', script = '#lib'
type-params <dart:core::Object* T> (args: 1)
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::G < #lib::G::TypeParam/0* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'foo7', reflectable, debuggable
type-params <#lib::G::TypeParam/0* Q>
parameters [#lib::G::foo7::TypeParam/0* 'a', dart:core::int* 'b', #lib::G::TypeParam/0* 'c'] (required: 3)
return-type void
Bytecode {
Entry 1
CheckFunctionTypeArgs 1, r0
JumpIfNotZeroTypeArgs L1
Push FP[-8]
LoadTypeArgumentsField CP#0
PopLocal r0
L1:
CheckStack 0
JumpIfUnchecked L2
Push FP[-8]
LoadTypeArgumentsField CP#0
Push r0
PushConstant CP#1
PushConstant CP#2
PushConstant CP#3
AssertSubtype
Push FP[-5]
PushConstant CP#2
Push FP[-8]
LoadTypeArgumentsField CP#0
PushNull
PushConstant CP#4
AssertAssignable 0, CP#5
Drop1
L2:
PushNull
ReturnTOS
}
Parameter flags: [0, 0, 2]
Default function type arguments: CP#6
ConstantPool {
[0] = TypeArgumentsField #lib::G
[1] = Type #lib::G::foo7::TypeParam/0*
[2] = Type #lib::G::TypeParam/0*
[3] = ObjectRef 'Q'
[4] = ObjectRef 'c'
[5] = SubtypeTestCache
[6] = ObjectRef < #lib::G::TypeParam/0* >
}
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type*
Class 'H', script = '#lib'
type-params <dart:core::Object* T> (args: 1)
extends #lib::G < #lib::H::TypeParam/0* >*
implements [#lib::F < #lib::H::TypeParam/0* >*]
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::H < #lib::H::TypeParam/0* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::G:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'foo8', reflectable, debuggable
type-params <#lib::H::TypeParam/0* Q>
parameters [#lib::H::foo8::TypeParam/0* 'a', dart:core::int* 'b', #lib::H::TypeParam/0* 'c'] (required: 3)
return-type void
Bytecode {
Entry 1
CheckFunctionTypeArgs 1, r0
JumpIfNotZeroTypeArgs L1
Push FP[-8]
LoadTypeArgumentsField CP#0
PopLocal r0
L1:
CheckStack 0
JumpIfUnchecked L2
Push FP[-8]
LoadTypeArgumentsField CP#0
Push r0
PushConstant CP#1
PushConstant CP#2
PushConstant CP#3
AssertSubtype
Push FP[-5]
PushConstant CP#2
Push FP[-8]
LoadTypeArgumentsField CP#0
PushNull
PushConstant CP#4
AssertAssignable 0, CP#5
Drop1
L2:
Push FP[-6]
PushConstant CP#6
PushNull
PushNull
PushConstant CP#7
AssertAssignable 1, CP#8
Drop1
PushNull
ReturnTOS
}
Parameter flags: [0, 1, 2]
Default function type arguments: CP#9
ConstantPool {
[0] = TypeArgumentsField #lib::H
[1] = Type #lib::H::foo8::TypeParam/0*
[2] = Type #lib::H::TypeParam/0*
[3] = ObjectRef 'Q'
[4] = ObjectRef 'c'
[5] = SubtypeTestCache
[6] = Type dart:core::int*
[7] = ObjectRef 'b'
[8] = SubtypeTestCache
[9] = ObjectRef < #lib::H::TypeParam/0* >
}
Function 'foo7', reflectable, debuggable, forwarding-stub
type-params <#lib::H::TypeParam/0* Q>
parameters [#lib::H::foo7::TypeParam/0* 'a', dart:core::num* 'b', #lib::H::TypeParam/0* 'c'] (required: 3)
return-type void
Bytecode {
Entry 2
CheckFunctionTypeArgs 1, r0
JumpIfNotZeroTypeArgs L1
Push FP[-8]
LoadTypeArgumentsField CP#0
PopLocal r0
L1:
CheckStack 0
JumpIfUnchecked L2
Push FP[-8]
LoadTypeArgumentsField CP#0
Push r0
PushConstant CP#1
PushConstant CP#2
PushConstant CP#3
AssertSubtype
Push FP[-5]
PushConstant CP#2
Push FP[-8]
LoadTypeArgumentsField CP#0
PushNull
PushConstant CP#4
AssertAssignable 0, CP#5
Drop1
L2:
Push FP[-6]
PushConstant CP#6
PushNull
PushNull
PushConstant CP#7
AssertAssignable 1, CP#8
Drop1
PushNull
Push r0
InstantiateTypeArgumentsTOS 0, CP#9
Push FP[-8]
Push FP[-7]
Push FP[-6]
Push FP[-5]
UncheckedDirectCall CP#10, 5
ReturnTOS
}
Parameter flags: [0, 1, 2]
Forwarding stub target: CP#12
Default function type arguments: CP#13
ConstantPool {
[0] = TypeArgumentsField #lib::H
[1] = Type #lib::H::foo7::TypeParam/0*
[2] = Type #lib::H::TypeParam/0*
[3] = ObjectRef 'Q'
[4] = ObjectRef 'c'
[5] = SubtypeTestCache
[6] = Type dart:core::int*
[7] = ObjectRef 'b'
[8] = SubtypeTestCache
[9] = ObjectRef < #lib::H::foo7::TypeParam/0* >
[10] = DirectCall '#lib::G::foo7', ArgDesc num-args 4, num-type-args 1, names []
[11] = Reserved
[12] = ObjectRef #lib::G::foo7
[13] = ObjectRef < #lib::H::TypeParam/0* >
}
}
]library #lib from "#lib" as #lib {
class A<T extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() #lib::A<#lib::A::T*>*
: super dart.core::Object::•()
;
abstract member-signature get _identityHashCode() dart.core::int*; -> dart.core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*; -> dart.core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) dart.core::bool*; -> dart.core::Object::==
abstract member-signature get hashCode() dart.core::int*; -> dart.core::Object::hashCode
abstract member-signature method toString() dart.core::String*; -> dart.core::Object::toString
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic; -> dart.core::Object::noSuchMethod
abstract member-signature get runtimeType() dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends #lib::A<dart.core::String*> {
synthetic constructor •() #lib::B*
: super #lib::A::•()
;
}
class C<T1 extends dart.core::Object* = dynamic, T2 extends dart.core::Object* = dynamic, T3 extends dart.core::Object* = dynamic> extends #lib::B {
synthetic constructor •() #lib::C<#lib::C::T1*, #lib::C::T2*, #lib::C::T3*>*
: super #lib::B::•()
;
}
class D<P extends dart.core::Object* = dynamic, Q extends dart.core::Object* = dynamic> extends #lib::C<dart.core::int*, #lib::D::Q*, #lib::D::P*> {
generic-covariant-impl field dart.core::Map<#lib::D::P*, #lib::D::Q*>* foo;
constructor •(dynamic tt) #lib::D<#lib::D::P*, #lib::D::Q*>*
: #lib::D::foo = tt as{TypeError,ForDynamic} dart.core::Map<#lib::D::P*, #lib::D::Q*>*, super #lib::C::•()
;
method foo2(dynamic y) dynamic {
if(y is #lib::A<#lib::D::P*>*) {
dart.core::print("21");
}
if(y is #lib::C<dynamic, #lib::D::Q*, dart.core::List<#lib::D::P*>*>*) {
dart.core::print("22");
}
[@vm.call-site-attributes.metadata=receiverType:#lib::D<#lib::D.P*, #lib::D.Q*>*] this.{#lib::D::foo} = y as{TypeError,ForDynamic} dart.core::Map<#lib::D::P*, #lib::D::Q*>*;
}
method foo3<T1 extends dart.core::Object* = dynamic, T2 extends dart.core::Object* = dynamic>(dynamic z) dynamic {
if(z is #lib::A<#lib::D::foo3::T1*>*) {
dart.core::print("31");
}
if(z is #lib::C<dart.core::Map<#lib::D::foo3::T1*, #lib::D::P*>*, dart.core::List<#lib::D::foo3::T2*>*, #lib::D::Q*>*) {
dart.core::print("32");
}
return (z as dart.core::Map<#lib::D::foo3::T2*, #lib::D::Q*>*).{dart.core::Map::values};
}
method foo4(dynamic w) dart.core::Map<#lib::D::P*, #lib::D::Q*>* {
dart.core::List<dart.core::Map<#lib::D::P*, #lib::D::Q*>*>* list = <dart.core::Map<#lib::D::P*, #lib::D::Q*>*>[w as{TypeError,ForDynamic} dart.core::Map<#lib::D::P*, #lib::D::Q*>*];
return w as{TypeError,ForDynamic} dart.core::Map<#lib::D::P*, #lib::D::Q*>*;
}
}
class E<P extends dart.core::String* = dart.core::String*> extends dart.core::Object {
static factory •<P extends dart.core::String* = dart.core::String*>() #lib::E<#lib::E::•::P*>*
return null;
method foo6<generic-covariant-impl T extends #lib::E::P* = #lib::E::P*, U extends dart.core::List<#lib::E::foo6::T*>* = dart.core::List<#lib::E::P*>*>(dart.core::Map<#lib::E::foo6::T*, #lib::E::foo6::U*>* map) → void {}
abstract member-signature get _identityHashCode() dart.core::int*; -> dart.core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*; -> dart.core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) dart.core::bool*; -> dart.core::Object::==
abstract member-signature get hashCode() dart.core::int*; -> dart.core::Object::hashCode
abstract member-signature method toString() dart.core::String*; -> dart.core::Object::toString
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic; -> dart.core::Object::noSuchMethod
abstract member-signature get runtimeType() dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class F<T extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() #lib::F<#lib::F::T*>*
: super dart.core::Object::•()
;
abstract method foo7<generic-covariant-impl Q extends #lib::F::T* = #lib::F::T*>(#lib::F::foo7::Q* a, covariant dart.core::num* b, generic-covariant-impl #lib::F::T* c) → void;
abstract method foo8<generic-covariant-impl Q extends #lib::F::T* = #lib::F::T*>(#lib::F::foo8::Q* a, covariant dart.core::num* b, generic-covariant-impl #lib::F::T* c) → void;
abstract member-signature get _identityHashCode() dart.core::int*; -> dart.core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*; -> dart.core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) dart.core::bool*; -> dart.core::Object::==
abstract member-signature get hashCode() dart.core::int*; -> dart.core::Object::hashCode
abstract member-signature method toString() dart.core::String*; -> dart.core::Object::toString
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic; -> dart.core::Object::noSuchMethod
abstract member-signature get runtimeType() dart.core::Type*; -> dart.core::Object::runtimeType
}
class G<T extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() #lib::G<#lib::G::T*>*
: super dart.core::Object::•()
;
method foo7<generic-covariant-impl Q extends #lib::G::T* = #lib::G::T*>(#lib::G::foo7::Q* a, dart.core::int* b, generic-covariant-impl #lib::G::T* c) → void {}
abstract member-signature get _identityHashCode() dart.core::int*; -> dart.core::Object::_identityHashCode
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*; -> dart.core::Object::_instanceOf
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
abstract member-signature operator ==(dynamic other) dart.core::bool*; -> dart.core::Object::==
abstract member-signature get hashCode() dart.core::int*; -> dart.core::Object::hashCode
abstract member-signature method toString() dart.core::String*; -> dart.core::Object::toString
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic; -> dart.core::Object::noSuchMethod
abstract member-signature get runtimeType() dart.core::Type*; -> dart.core::Object::runtimeType
}
class H<T extends dart.core::Object* = dynamic> extends #lib::G<#lib::H::T*> implements #lib::F<#lib::H::T*> {
synthetic constructor •() #lib::H<#lib::H::T*>*
: super #lib::G::•()
;
method foo8<generic-covariant-impl Q extends #lib::H::T* = #lib::H::T*>(#lib::H::foo8::Q* a, covariant dart.core::int* b, generic-covariant-impl #lib::H::T* c) → void {}
forwarding-stub method foo7<generic-covariant-impl Q extends #lib::H::T* = #lib::H::T*>(#lib::H::foo7::Q* a, covariant dart.core::num* b, generic-covariant-impl #lib::H::T* c) → void
return super.{#lib::G::foo7}<#lib::H::foo7::Q*>(a, b, c);
}
static field dart.core::List<dart.core::Iterable<dynamic>*>* globalVar;
static method foo1(dynamic x) dynamic {
if(x is #lib::B*) {
dart.core::print("11");
}
if(x is #lib::C<dart.core::int*, dart.core::Object*, dynamic>*) {
dart.core::print("12");
}
return x as #lib::A<dart.core::int*>*;
}
static method foo5(dynamic x) void {
#lib::globalVar = x as{TypeError,ForDynamic} dart.core::List<dart.core::Iterable<dynamic>*>*;
}
static method main() dynamic {}
}