blob: 54bd3ff1b581d5d0264be83c01fb47935e109d30 [file] [log] [blame]
main = #lib::main;
[@vm.bytecode=
BytecodeMetadata {
Bytecode (version: stable)
Main library: #lib
Library '#lib'
name '#lib'
script '#lib'
Class '', script = '#lib'
Function 'foo1', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 1
CheckStack 0
Allocate CP#0
StoreLocal r0
Push r0
PushConstant CP#1
DirectCall CP#2, 2
Drop1
ReturnTOS
}
ConstantPool {
[0] = Class #lib::C
[1] = ObjectRef 'hello'
[2] = DirectCall '#lib::C:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[3] = Reserved
}
Function 'foo2', static, reflectable, debuggable
parameters [] (required: 0)
return-type void
Bytecode {
Entry 1
CheckStack 0
PushConstant CP#1
PushConstant CP#0
AllocateT
StoreLocal r0
Push r0
PushConstant CP#2
DirectCall CP#3, 2
Drop1
Drop1
PushConstant CP#6
PushConstant CP#5
AllocateT
StoreLocal r0
Push r0
DirectCall CP#7, 1
Drop1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = Class #lib::A
[1] = ObjectRef < dart:core::int*, dart:core::String* >
[2] = ObjectRef 'hi'
[3] = DirectCall '#lib::A:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[4] = Reserved
[5] = Class #lib::B
[6] = ObjectRef < dart:core::List < dart:core::int* >*, dart:core::String*, dart:core::int* >
[7] = DirectCall '#lib::B:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
}
Function 'foo3', static, reflectable, debuggable
type-params <dart:core::Object* T>
parameters [] (required: 0)
return-type void
Bytecode {
Entry 2
CheckFunctionTypeArgs 1, r0
CheckStack 0
PushNull
Push r0
InstantiateTypeArgumentsTOS 0, CP#1
PushConstant CP#0
AllocateT
StoreLocal r1
Push r1
DirectCall CP#2, 1
Drop1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = Class #lib::B
[1] = ObjectRef < dart:core::List < dart:core::List < #lib::foo3::TypeParam/0* >* >*, dart:core::String*, dart:core::List < #lib::foo3::TypeParam/0* >* >
[2] = DirectCall '#lib::B:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
}
Function 'foo4', static, reflectable, debuggable
parameters [] (required: 0)
return-type void
Bytecode {
Entry 0
CheckStack 0
PushConstant CP#0
DirectCall CP#1, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int*, dart:core::List < dart:core::String* >* >
[1] = DirectCall '#lib::G::test_factory (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
Function 'foo5', static, reflectable, debuggable
parameters [] (required: 0)
return-type void
Bytecode {
Entry 0
CheckStack 0
PushNull
DirectCall CP#0, 1
Drop1
PushNull
PushInt 42
DirectCall CP#2, 2
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::I::test_factory2 (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = DirectCall '#lib::I::test_factory2 (constructor)', ArgDesc num-args 2, num-type-args 0, names ['param']
[3] = Reserved
}
Function 'foo6', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
PushConstant CP#0
PushInt 0
DirectCall CP#1, 2
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::String* >
[1] = DirectCall 'dart:core::_GrowableList:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[2] = Reserved
}
Function 'foo7', static, reflectable, debuggable
parameters [dart:core::int* 'n'] (required: 1)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
PushConstant CP#0
Push FP[-5]
DirectCall CP#1, 2
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int* >
[1] = DirectCall 'dart:core::_List:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[2] = Reserved
}
Function 'main', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
DirectCall CP#0, 0
Drop1
DirectCall CP#2, 0
Drop1
PushConstant CP#4
DirectCall CP#5, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::foo1', ArgDesc num-args 0, num-type-args 0, names []
[1] = Reserved
[2] = DirectCall '#lib::foo2', ArgDesc num-args 0, num-type-args 0, names []
[3] = Reserved
[4] = ObjectRef < dart:core::String* >
[5] = DirectCall '#lib::foo3', ArgDesc num-args 0, num-type-args 1, names []
[6] = Reserved
}
Class 'Base', script = '#lib'
type-params <dart:core::Object* T1, dart:core::Object* T2> (args: 2)
extends dart:core::Object*
Field 't1', type = #lib::Base::TypeParam/0*, getter = 'get:t1', setter = 'set:t1', reflectable, has-initializer
value = null
Field 't2', type = #lib::Base::TypeParam/1*, getter = 'get:t2', setter = 'set:t2', reflectable, has-initializer
value = null
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::Base < #lib::Base::TypeParam/0*, #lib::Base::TypeParam/1* >*
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
PushInt 4
CreateArrayTOS
StoreLocal r0
Push r0
PushInt 0
PushConstant CP#2
StoreIndexedTOS
Push r0
PushInt 1
Push FP[-5]
LoadTypeArgumentsField CP#4
PushNull
InstantiateType CP#3
StoreIndexedTOS
Push r0
PushInt 2
PushConstant CP#5
StoreIndexedTOS
Push r0
PushInt 3
Push FP[-5]
LoadTypeArgumentsField CP#4
PushNull
InstantiateType CP#6
StoreIndexedTOS
DirectCall CP#7, 1
DirectCall CP#9, 1
Drop1
PushNull
ReturnTOS
}
Nullable fields: [#lib::Base::t1 (field), #lib::Base::t2 (field)]
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = ObjectRef 'Base: '
[3] = Type #lib::Base::TypeParam/0*
[4] = TypeArgumentsField #lib::Base
[5] = ObjectRef ', '
[6] = Type #lib::Base::TypeParam/1*
[7] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
[9] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[10] = 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 'A', script = '#lib'
extends #lib::Base < dart:core::int*, dart:core::String* >*
Function '', constructor, reflectable, debuggable
parameters [dart:core::String* 's'] (required: 1)
return-type #lib::A < dart:core::int*, dart:core::String* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-6]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::Base:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Class 'B', script = '#lib'
type-params <dart:core::Object* T> (args: 3)
extends #lib::Base < dart:core::List < #lib::B::TypeParam/0* >*, dart:core::String* >*
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::B < dart:core::List < #lib::B::TypeParam/0* >*, dart:core::String*, #lib::B::TypeParam/0* >*
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
PushInt 2
CreateArrayTOS
StoreLocal r0
Push r0
PushInt 0
PushConstant CP#2
StoreIndexedTOS
Push r0
PushInt 1
Push FP[-5]
LoadTypeArgumentsField CP#4
PushNull
InstantiateType CP#3
StoreIndexedTOS
DirectCall CP#5, 1
DirectCall CP#7, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::Base:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = ObjectRef 'B: '
[3] = Type #lib::B::TypeParam/0*
[4] = TypeArgumentsField #lib::B
[5] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names []
[6] = Reserved
[7] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
}
Class 'C', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable, debuggable
parameters [dart:core::String* 's'] (required: 1)
return-type #lib::C*
Bytecode {
Entry 1
CheckStack 0
Push FP[-6]
DirectCall CP#0, 1
Drop1
PushNull
PushInt 2
CreateArrayTOS
StoreLocal r0
Push r0
PushInt 0
PushConstant CP#2
StoreIndexedTOS
Push r0
PushInt 1
Push FP[-5]
StoreIndexedTOS
DirectCall CP#3, 1
DirectCall CP#5, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = ObjectRef 'C: '
[3] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names []
[4] = Reserved
[5] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[6] = 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 'E', script = '#lib'
type-params <dart:core::Object* K, dart:core::Object* V> (args: 2)
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::E < #lib::E::TypeParam/0*, #lib::E::TypeParam/1* >*
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 'test_reuse1', reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
LoadTypeArgumentsField CP#0
DirectCall CP#1, 1
ReturnTOS
}
ConstantPool {
[0] = TypeArgumentsField #lib::E
[1] = DirectCall 'dart:core::Map:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = 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 'F', script = '#lib'
type-params <dart:core::Object* K, dart:core::Object* V> (args: 4)
extends #lib::E < dart:core::String*, dart:core::List < #lib::F::TypeParam/1* >* >*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::F < dart:core::String*, dart:core::List < #lib::F::TypeParam/1* >*, #lib::F::TypeParam/0*, #lib::F::TypeParam/1* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::E:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'test_reuse2', reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
LoadTypeArgumentsField CP#0
DirectCall CP#1, 1
ReturnTOS
}
ConstantPool {
[0] = TypeArgumentsField #lib::F
[1] = DirectCall 'dart:core::Map:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
Class 'G', script = '#lib'
type-params <dart:core::Object* K, dart:core::Object* V> (args: 2)
extends dart:core::Object*
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::G < #lib::G::TypeParam/0*, #lib::G::TypeParam/1* >*
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 'test_factory', factory, static, reflectable, debuggable
type-params <dart:core::Object* K, dart:core::Object* V>
parameters [] (required: 0)
return-type #lib::G < #lib::G::test_factory (constructor)::TypeParam/0*, #lib::G::test_factory (constructor)::TypeParam/1* >*
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
PushNull
InstantiateTypeArgumentsTOS 0, CP#1
PushConstant CP#0
AllocateT
StoreLocal r0
Push r0
DirectCall CP#2, 1
Drop1
ReturnTOS
}
ConstantPool {
[0] = Class #lib::H
[1] = ObjectRef < #lib::G::test_factory (constructor)::TypeParam/0*, #lib::G::test_factory (constructor)::TypeParam/1*, dart:core::String*, #lib::G::test_factory (constructor)::TypeParam/0*, #lib::G::test_factory (constructor)::TypeParam/1* >
[2] = DirectCall '#lib::H:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = 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 'H', script = '#lib'
type-params <dart:core::Object* P1, dart:core::Object* P2, dart:core::Object* P3> (args: 5)
extends #lib::G < #lib::H::TypeParam/1*, #lib::H::TypeParam/2* >*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::H < #lib::H::TypeParam/1*, #lib::H::TypeParam/2*, #lib::H::TypeParam/0*, #lib::H::TypeParam/1*, #lib::H::TypeParam/2* >*
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
}
Class 'I', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable, debuggable
parameters [dynamic 'param'] (required: 1)
return-type #lib::I*
Bytecode {
Entry 0
CheckStack 0
Push FP[-6]
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 'test_factory2', factory, static, has-optional-named-params, reflectable, debuggable
parameters [dynamic 'param'] (required: 0)
return-type #lib::I*
Bytecode {
EntryOptional 1, 0, 1
LoadConstant r1, CP#0
LoadConstant r1, CP#1
Frame 1
CheckStack 0
Allocate CP#2
StoreLocal r2
Push r2
Push r1
DirectCall CP#3, 2
Drop1
ReturnTOS
}
ConstantPool {
[0] = ObjectRef 'param'
[1] = ObjectRef null
[2] = Class #lib::I
[3] = DirectCall '#lib::I:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[4] = 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 'J', script = '#lib'
extends dart:core::Object*
Function '', factory, static, reflectable, debuggable, native 'agent_J'
parameters [] (required: 0)
return-type #lib::J*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
NativeCall CP#0
ReturnTOS
}
ConstantPool {
[0] = NativeEntry agent_J
}
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 'K', script = '#lib', abstract
type-params <dart:core::Object* A, dart:core::Object* B> (args: 2)
extends dart:core::Object*
Function '', factory, static, reflectable, debuggable
type-params <dart:core::Object* A, dart:core::Object* B>
parameters [] (required: 0)
return-type #lib::K < #lib::K:: (constructor)::TypeParam/0*, #lib::K:: (constructor)::TypeParam/1* >*
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
PushConstant CP#0
AllocateT
StoreLocal r0
Push r0
DirectCall CP#1, 1
Drop1
ReturnTOS
}
ConstantPool {
[0] = Class #lib::TestTypeArgReuse
[1] = DirectCall '#lib::TestTypeArgReuse:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = 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 'TestTypeArgReuse', script = '#lib'
type-params <dart:core::Object* P, dart:core::Object* Q> (args: 2)
extends #lib::Base < #lib::TestTypeArgReuse::TypeParam/0*, #lib::TestTypeArgReuse::TypeParam/1* >*
implements [#lib::K < #lib::TestTypeArgReuse::TypeParam/0*, #lib::TestTypeArgReuse::TypeParam/1* >*]
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::TestTypeArgReuse < #lib::TestTypeArgReuse::TypeParam/0*, #lib::TestTypeArgReuse::TypeParam/1* >*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall '#lib::Base:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
}
]library #lib from "#lib" as #lib {
class Base<T1 extends dart.core::Object* = dynamic, T2 extends dart.core::Object* = dynamic> extends dart.core::Object {
generic-covariant-impl field #lib::Base::T1* t1 = null;
generic-covariant-impl field #lib::Base::T2* t2 = null;
constructor •() #lib::Base<#lib::Base::T1*, #lib::Base::T2*>*
: super dart.core::Object::•() {
dart.core::print("Base: ${#lib::Base::T1*}, ${#lib::Base::T2*}");
}
abstract member-signature get _identityHashCode() dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*;
abstract member-signature operator ==(dynamic other) dart.core::bool*;
abstract member-signature get hashCode() dart.core::int*;
abstract member-signature method toString() dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic;
abstract member-signature get runtimeType() dart.core::Type*;
}
class A extends #lib::Base<dart.core::int*, dart.core::String*> {
constructor •(dart.core::String* s) #lib::A*
: super #lib::Base::•()
;
}
class B<T extends dart.core::Object* = dynamic> extends #lib::Base<dart.core::List<#lib::B::T*>*, dart.core::String*> {
constructor •() #lib::B<#lib::B::T*>*
: super #lib::Base::•() {
dart.core::print("B: ${#lib::B::T*}");
}
}
class C extends dart.core::Object {
constructor •(dart.core::String* s) #lib::C*
: super dart.core::Object::•() {
dart.core::print("C: ${s}");
}
abstract member-signature get _identityHashCode() dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*;
abstract member-signature operator ==(dynamic other) dart.core::bool*;
abstract member-signature get hashCode() dart.core::int*;
abstract member-signature method toString() dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic;
abstract member-signature get runtimeType() dart.core::Type*;
}
class E<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() #lib::E<#lib::E::K*, #lib::E::V*>*
: super dart.core::Object::•()
;
method test_reuse1() dynamic
return dart.core::Map::•<#lib::E::K*, #lib::E::V*>();
abstract member-signature get _identityHashCode() dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*;
abstract member-signature operator ==(dynamic other) dart.core::bool*;
abstract member-signature get hashCode() dart.core::int*;
abstract member-signature method toString() dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic;
abstract member-signature get runtimeType() dart.core::Type*;
}
class F<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic> extends #lib::E<dart.core::String*, dart.core::List<#lib::F::V*>*> {
synthetic constructor •() #lib::F<#lib::F::K*, #lib::F::V*>*
: super #lib::E::•()
;
method test_reuse2() dynamic
return dart.core::Map::•<dart.core::String*, dart.core::List<#lib::F::V*>*>();
}
class G<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic> extends dart.core::Object {
constructor •() #lib::G<#lib::G::K*, #lib::G::V*>*
: super dart.core::Object::•()
;
static factory test_factory<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic>() #lib::G<#lib::G::test_factory::K*, #lib::G::test_factory::V*>*
return new #lib::H::•<dart.core::String*, #lib::G::test_factory::K*, #lib::G::test_factory::V*>();
abstract member-signature get _identityHashCode() dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*;
abstract member-signature operator ==(dynamic other) dart.core::bool*;
abstract member-signature get hashCode() dart.core::int*;
abstract member-signature method toString() dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic;
abstract member-signature get runtimeType() dart.core::Type*;
}
class H<P1 extends dart.core::Object* = dynamic, P2 extends dart.core::Object* = dynamic, P3 extends dart.core::Object* = dynamic> extends #lib::G<#lib::H::P2*, #lib::H::P3*> {
synthetic constructor •() #lib::H<#lib::H::P1*, #lib::H::P2*, #lib::H::P3*>*
: super #lib::G::•()
;
}
class I extends dart.core::Object {
constructor •(dynamic param) #lib::I*
: super dart.core::Object::•()
;
static factory test_factory2({dynamic param = #C1}) → #lib::I*
return new #lib::I::•(param);
abstract member-signature get _identityHashCode() dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*;
abstract member-signature operator ==(dynamic other) dart.core::bool*;
abstract member-signature get hashCode() dart.core::int*;
abstract member-signature method toString() dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic;
abstract member-signature get runtimeType() dart.core::Type*;
}
class J extends dart.core::Object {
@#C3
external static factory •() #lib::J*;
abstract member-signature get _identityHashCode() dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*;
abstract member-signature operator ==(dynamic other) dart.core::bool*;
abstract member-signature get hashCode() dart.core::int*;
abstract member-signature method toString() dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic;
abstract member-signature get runtimeType() dart.core::Type*;
}
abstract class K<A extends dart.core::Object* = dynamic, B extends dart.core::Object* = dynamic> extends dart.core::Object {
static factory •<A extends dart.core::Object* = dynamic, B extends dart.core::Object* = dynamic>() #lib::K<#lib::K::•::A*, #lib::K::•::B*>*
return new #lib::TestTypeArgReuse::•<#lib::K::•::A*, #lib::K::•::B*>();
abstract member-signature get _identityHashCode() dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) dart.core::bool*;
abstract member-signature operator ==(dynamic other) dart.core::bool*;
abstract member-signature get hashCode() dart.core::int*;
abstract member-signature method toString() dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) dynamic;
abstract member-signature get runtimeType() dart.core::Type*;
}
class TestTypeArgReuse<P extends dart.core::Object* = dynamic, Q extends dart.core::Object* = dynamic> extends #lib::Base<#lib::TestTypeArgReuse::P*, #lib::TestTypeArgReuse::Q*> implements #lib::K<#lib::TestTypeArgReuse::P*, #lib::TestTypeArgReuse::Q*> {
synthetic constructor •() #lib::TestTypeArgReuse<#lib::TestTypeArgReuse::P*, #lib::TestTypeArgReuse::Q*>*
: super #lib::Base::•()
;
}
static method foo1() dynamic
return new #lib::C::•("hello");
static method foo2() void {
new #lib::A::•("hi");
new #lib::B::•<dart.core::int*>();
}
static method foo3<T extends dart.core::Object* = dynamic>() void {
new #lib::B::•<dart.core::List<#lib::foo3::T*>*>();
}
static method foo4() void {
#lib::G::test_factory<dart.core::int*, dart.core::List<dart.core::String*>*>();
}
static method foo5() void {
#lib::I::test_factory2();
#lib::I::test_factory2(param: 42);
}
static method foo6() dynamic
return dart.core::_GrowableList::•<dart.core::String*>(0);
static method foo7(dart.core::int* n) dynamic
return dart.core::_List::•<dart.core::int*>(n);
static method main() dynamic {
#lib::foo1();
#lib::foo2();
#lib::foo3<dart.core::String*>();
}
}
constants {
#C1 = null
#C2 = "agent_J"
#C3 = dart._internal::ExternalName {name:#C2}
}