blob: 1582f9560d19915652fd54d3fa5f0adabaf5887d [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 'simpleClosure', static, reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Bytecode {
Entry 4
CheckStack 0
AllocateContext 0, 1
PopLocal r0
Push r0
PushInt 5
StoreContextVar 0, 0
AllocateClosure CP#0
StoreLocal r3
Push r3
PushNull
StoreFieldTOS CP#7
Push r3
PushNull
StoreFieldTOS CP#9
Push r3
PushConstant CP#0
StoreFieldTOS CP#11
Push r3
Push r0
StoreFieldTOS CP#1
PopLocal r2
Push r2
StoreLocal r3
PushInt 3
Push r3
UncheckedClosureCall CP#13, 2
Drop1
Push r0
LoadContextVar 0, 0
ReturnTOS
}
ConstantPool {
[0] = ClosureFunction 0
[1] = InstanceField dart:core::_Closure::_context (field)
[2] = Reserved
[3] = Type dart:core::int*
[4] = ObjectRef 'y'
[5] = SubtypeTestCache
[6] = EndClosureFunctionScope
[7] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
[8] = Reserved
[9] = InstanceField dart:core::_Closure::_function_type_arguments (field)
[10] = Reserved
[11] = InstanceField dart:core::_Closure::_function (field)
[12] = Reserved
[13] = ObjectRef ArgDesc num-args 2, num-type-args 0, names []
}
Closure #lib::simpleClosure::'<anonymous closure>' (dart:core::int* y) -> dart:core::Null?
ClosureCode {
Entry 3
Push FP[-6]
LoadFieldTOS CP#1
PopLocal r0
CheckStack 0
JumpIfUnchecked L1
Push FP[-5]
PushConstant CP#3
PushNull
PushNull
PushConstant CP#4
AssertAssignable 1, CP#5
Drop1
L1:
Push r0
Push r0
LoadContextVar 0, 0
Push FP[-5]
AddInt
StoreContextVar 0, 0
PushNull
ReturnTOS
}
Function 'callWithArgs', static, reflectable, debuggable
type-params <dart:core::Object* T1, dart:core::Object* T2, dart:core::Object* T3, dart:core::Object* T4, dart:core::Object* T5, dart:core::Object* T6, dart:core::Object* T7, dart:core::Object* T8>
parameters [] (required: 0)
return-type void
Bytecode {
Entry 2
CheckFunctionTypeArgs 8, r0
CheckStack 0
PushConstant CP#0
StoreLocal r1
Push r1
PushInt 8
CreateArrayTOS
StoreLocal r1
Push r1
PushInt 0
PushNull
Push r0
InstantiateType CP#1
StoreIndexedTOS
Push r1
PushInt 1
PushNull
Push r0
InstantiateType CP#2
StoreIndexedTOS
Push r1
PushInt 2
PushNull
Push r0
InstantiateType CP#3
StoreIndexedTOS
Push r1
PushInt 3
PushNull
Push r0
InstantiateType CP#4
StoreIndexedTOS
Push r1
PushInt 4
PushNull
Push r0
InstantiateType CP#5
StoreIndexedTOS
Push r1
PushInt 5
PushNull
Push r0
InstantiateType CP#6
StoreIndexedTOS
Push r1
PushInt 6
PushNull
Push r0
InstantiateType CP#7
StoreIndexedTOS
Push r1
PushInt 7
PushNull
Push r0
InstantiateType CP#8
StoreIndexedTOS
DirectCall CP#9, 2
DirectCall CP#11, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::Type* >
[1] = Type #lib::callWithArgs::TypeParam/0*
[2] = Type #lib::callWithArgs::TypeParam/1*
[3] = Type #lib::callWithArgs::TypeParam/2*
[4] = Type #lib::callWithArgs::TypeParam/3*
[5] = Type #lib::callWithArgs::TypeParam/4*
[6] = Type #lib::callWithArgs::TypeParam/5*
[7] = Type #lib::callWithArgs::TypeParam/6*
[8] = Type #lib::callWithArgs::TypeParam/7*
[9] = DirectCall 'dart:core::List::_fromLiteral (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[10] = Reserved
[11] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[12] = Reserved
}
Function 'callA', static, reflectable, debuggable
parameters [] (required: 0)
return-type void
Bytecode {
Entry 1
CheckStack 0
PushConstant CP#0
PushConstant CP#2
PushConstant CP#1
AllocateT
StoreLocal r0
Push r0
DirectCall CP#3, 1
Drop1
InterfaceCall CP#5, 2
Drop1
PushConstant CP#7
PushConstant CP#2
PushConstant CP#1
AllocateT
StoreLocal r0
Push r0
DirectCall CP#3, 1
Drop1
InterfaceCall CP#5, 2
Drop1
PushConstant CP#7
PushConstant CP#8
PushConstant CP#1
AllocateT
StoreLocal r0
Push r0
DirectCall CP#3, 1
Drop1
InterfaceCall CP#5, 2
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < #lib::C3*, #lib::C4* >
[1] = Class #lib::A
[2] = ObjectRef < #lib::C1*, #lib::C2* >
[3] = DirectCall '#lib::A:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[4] = Reserved
[5] = InterfaceCall '#lib::A::foo', ArgDesc num-args 1, num-type-args 2, names []
[6] = Reserved
[7] = ObjectRef < dart:core::List < #lib::C3* >*, dart:core::List < #lib::C4* >* >
[8] = ObjectRef < dart:core::List < #lib::C1* >*, dart:core::List < #lib::C2* >* >
}
Function 'testPartialInstantiation', static, reflectable, debuggable
parameters [] (required: 0)
return-type FunctionType (dart:core::int*)* -> dynamic
Bytecode {
Entry 7
CheckStack 0
AllocateClosure CP#0
StoreLocal r3
Push r3
PushNull
StoreFieldTOS CP#14
Push r3
PushNull
StoreFieldTOS CP#6
Push r3
PushConstant CP#5
StoreFieldTOS CP#3
Push r3
PushConstant CP#0
StoreFieldTOS CP#16
Push r3
Push r0
StoreFieldTOS CP#1
PopLocal r2
Push r2
StoreLocal r3
PushConstant CP#18
StoreLocal r6
DirectCall CP#19, 2
Drop1
Allocate CP#21
StoreLocal r5
Push r6
StoreFieldTOS CP#3
Push r5
Push r3
LoadFieldTOS CP#14
StoreFieldTOS CP#14
Push r5
Push r3
LoadFieldTOS CP#6
StoreFieldTOS CP#6
Push r5
Push r3
LoadFieldTOS CP#16
StoreFieldTOS CP#16
Push r5
Push r3
LoadFieldTOS CP#1
StoreFieldTOS CP#1
Push r5
PopLocal r4
Push r4
ReturnTOS
}
ConstantPool {
[0] = ClosureFunction 0
[1] = InstanceField dart:core::_Closure::_context (field)
[2] = Reserved
[3] = InstanceField dart:core::_Closure::_delayed_type_arguments (field)
[4] = Reserved
[5] = EmptyTypeArguments
[6] = InstanceField dart:core::_Closure::_function_type_arguments (field)
[7] = Reserved
[8] = DirectCall 'dart:_internal::_prependTypeArguments', ArgDesc num-args 4, num-type-args 0, names []
[9] = Reserved
[10] = Type #lib::testPartialInstantiation::Closure/0::TypeParam/0*
[11] = ObjectRef 't'
[12] = SubtypeTestCache
[13] = EndClosureFunctionScope
[14] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
[15] = Reserved
[16] = InstanceField dart:core::_Closure::_function (field)
[17] = Reserved
[18] = ObjectRef < dart:core::int* >
[19] = DirectCall 'dart:_internal::_boundsCheckForPartialInstantiation', ArgDesc num-args 2, num-type-args 0, names []
[20] = Reserved
[21] = Class dart:core::_Closure
}
Closure #lib::testPartialInstantiation::'foo' <dart:core::Object* T> (#lib::testPartialInstantiation::Closure/0::TypeParam/0* t) -> void
ClosureCode {
Entry 3
Push FP[-6]
LoadFieldTOS CP#1
PopLocal r1
Push FP[-6]
LoadFieldTOS CP#3
StoreLocal r0
PushConstant CP#5
JumpIfEqStrict L1
CheckFunctionTypeArgs 0, r2
Jump L2
L1:
CheckFunctionTypeArgs 1, r0
L2:
CheckStack 0
Push r0
Push FP[-6]
LoadFieldTOS CP#6
PushInt 0
PushInt 1
DirectCall CP#8, 4
PopLocal r0
JumpIfUnchecked L3
Push FP[-5]
PushConstant CP#10
PushNull
Push r0
PushConstant CP#11
AssertAssignable 0, CP#12
Drop1
L3:
PushNull
ReturnTOS
}
Function 'main', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
PushNull
ReturnTOS
}
ConstantPool {
}
Class 'C1', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C1*
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 'C2', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C2*
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 'C3', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C3*
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 'C4', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C4*
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 'C5', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C5*
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 'C6', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C6*
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 'C7', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C7*
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 'C8', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C8*
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 'A', script = '#lib'
type-params <dart:core::Object* T1, dart:core::Object* T2> (args: 2)
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::A < #lib::A::TypeParam/0*, #lib::A::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 'foo', reflectable, debuggable
type-params <dart:core::Object* T3, dart:core::Object* T4>
parameters [] (required: 0)
return-type void
Bytecode {
Entry 5
CheckFunctionTypeArgs 2, r0
CheckStack 0
AllocateContext 0, 1
PopLocal r1
Push r1
Push FP[-5]
StoreContextVar 0, 0
AllocateClosure CP#0
StoreLocal r4
Push r4
Push FP[-5]
LoadTypeArgumentsField CP#14
StoreFieldTOS CP#30
Push r4
Push r0
StoreFieldTOS CP#6
Push r4
PushConstant CP#5
StoreFieldTOS CP#3
Push r4
PushConstant CP#0
StoreFieldTOS CP#32
Push r4
Push r1
StoreFieldTOS CP#1
PopLocal r3
PushConstant CP#40
Push r3
StoreLocal r4
Push r4
UncheckedClosureCall CP#37, 2
Drop1
PushConstant CP#41
Push r3
StoreLocal r4
Push r4
UncheckedClosureCall CP#37, 2
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = ClosureFunction 0
[1] = InstanceField dart:core::_Closure::_context (field)
[2] = Reserved
[3] = InstanceField dart:core::_Closure::_delayed_type_arguments (field)
[4] = Reserved
[5] = EmptyTypeArguments
[6] = InstanceField dart:core::_Closure::_function_type_arguments (field)
[7] = Reserved
[8] = DirectCall 'dart:_internal::_prependTypeArguments', ArgDesc num-args 4, num-type-args 0, names []
[9] = Reserved
[10] = ClosureFunction 1
[11] = ClosureFunction 2
[12] = ObjectRef < dart:core::Type* >
[13] = Type #lib::A::TypeParam/0*
[14] = TypeArgumentsField #lib::A
[15] = Type #lib::A::TypeParam/1*
[16] = Type #lib::A::foo::TypeParam/0*
[17] = Type #lib::A::foo::TypeParam/1*
[18] = Type #lib::A::foo::Closure/0::TypeParam/0*
[19] = Type #lib::A::foo::Closure/0::TypeParam/1*
[20] = Type #lib::A::foo::Closure/1::TypeParam/0*
[21] = Type #lib::A::foo::Closure/1::TypeParam/1*
[22] = DirectCall 'dart:core::List::_fromLiteral (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[23] = Reserved
[24] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[25] = Reserved
[26] = ObjectRef < #lib::A::TypeParam/0*, #lib::A::TypeParam/1*, #lib::A::foo::TypeParam/0*, #lib::A::foo::TypeParam/1*, #lib::A::foo::Closure/0::TypeParam/0*, #lib::A::foo::Closure/0::TypeParam/1*, #lib::A::foo::Closure/1::TypeParam/0*, #lib::A::foo::Closure/1::TypeParam/1* >
[27] = DirectCall '#lib::callWithArgs', ArgDesc num-args 0, num-type-args 8, names []
[28] = Reserved
[29] = EndClosureFunctionScope
[30] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
[31] = Reserved
[32] = InstanceField dart:core::_Closure::_function (field)
[33] = Reserved
[34] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
[35] = EndClosureFunctionScope
[36] = ObjectRef < #lib::C7*, #lib::C8* >
[37] = ObjectRef ArgDesc num-args 1, num-type-args 2, names []
[38] = ObjectRef < dart:core::List < #lib::C7* >*, dart:core::List < #lib::C8* >* >
[39] = EndClosureFunctionScope
[40] = ObjectRef < #lib::C5*, #lib::C6* >
[41] = ObjectRef < dart:core::List < #lib::C5* >*, dart:core::List < #lib::C6* >* >
}
Closure #lib::A::foo::'nested1' <dart:core::Object* T5, dart:core::Object* T6> () -> void
ClosureCode {
Entry 5
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r1
Push FP[-5]
LoadFieldTOS CP#3
StoreLocal r0
PushConstant CP#5
JumpIfEqStrict L1
CheckFunctionTypeArgs 0, r2
Jump L2
L1:
CheckFunctionTypeArgs 2, r0
L2:
CheckStack 0
Push r0
Push FP[-5]
LoadFieldTOS CP#6
PushInt 2
PushInt 4
DirectCall CP#8, 4
PopLocal r0
AllocateClosure CP#10
StoreLocal r4
Push r4
Push r1
LoadContextVar 0, 0
LoadTypeArgumentsField CP#14
StoreFieldTOS CP#30
Push r4
Push r0
StoreFieldTOS CP#6
Push r4
PushConstant CP#5
StoreFieldTOS CP#3
Push r4
PushConstant CP#10
StoreFieldTOS CP#32
Push r4
Push r1
StoreFieldTOS CP#1
PopLocal r3
PushConstant CP#36
Push r3
StoreLocal r4
Push r4
UncheckedClosureCall CP#37, 2
Drop1
PushConstant CP#38
Push r3
StoreLocal r4
Push r4
UncheckedClosureCall CP#37, 2
Drop1
PushNull
ReturnTOS
}
Closure #lib::A::foo::Closure/0::'nested2' <dart:core::Object* T7, dart:core::Object* T8> () -> void
ClosureCode {
Entry 5
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r1
Push FP[-5]
LoadFieldTOS CP#3
StoreLocal r0
PushConstant CP#5
JumpIfEqStrict L1
CheckFunctionTypeArgs 0, r2
Jump L2
L1:
CheckFunctionTypeArgs 2, r0
L2:
CheckStack 0
Push r0
Push FP[-5]
LoadFieldTOS CP#6
PushInt 4
PushInt 6
DirectCall CP#8, 4
PopLocal r0
AllocateClosure CP#11
StoreLocal r4
Push r4
Push r1
LoadContextVar 0, 0
LoadTypeArgumentsField CP#14
StoreFieldTOS CP#30
Push r4
Push r0
StoreFieldTOS CP#6
Push r4
PushConstant CP#11
StoreFieldTOS CP#32
Push r4
Push r1
StoreFieldTOS CP#1
PopLocal r3
Push r3
StoreLocal r4
Push r4
UncheckedClosureCall CP#34, 1
Drop1
PushNull
ReturnTOS
}
Closure #lib::A::foo::Closure/1::'<anonymous closure>' () -> dart:core::Null?
ClosureCode {
Entry 4
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r1
CheckStack 0
Push FP[-5]
LoadFieldTOS CP#6
PopLocal r0
PushConstant CP#12
StoreLocal r3
Push r3
PushInt 8
CreateArrayTOS
StoreLocal r3
Push r3
PushInt 0
Push r1
LoadContextVar 0, 0
LoadTypeArgumentsField CP#14
PushNull
InstantiateType CP#13
StoreIndexedTOS
Push r3
PushInt 1
Push r1
LoadContextVar 0, 0
LoadTypeArgumentsField CP#14
PushNull
InstantiateType CP#15
StoreIndexedTOS
Push r3
PushInt 2
PushNull
Push r0
InstantiateType CP#16
StoreIndexedTOS
Push r3
PushInt 3
PushNull
Push r0
InstantiateType CP#17
StoreIndexedTOS
Push r3
PushInt 4
PushNull
Push r0
InstantiateType CP#18
StoreIndexedTOS
Push r3
PushInt 5
PushNull
Push r0
InstantiateType CP#19
StoreIndexedTOS
Push r3
PushInt 6
PushNull
Push r0
InstantiateType CP#20
StoreIndexedTOS
Push r3
PushInt 7
PushNull
Push r0
InstantiateType CP#21
StoreIndexedTOS
DirectCall CP#22, 2
DirectCall CP#24, 1
Drop1
Push r1
LoadContextVar 0, 0
LoadTypeArgumentsField CP#14
Push r0
InstantiateTypeArgumentsTOS 0, CP#26
DirectCall CP#27, 1
Drop1
PushNull
ReturnTOS
}
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 dart:core::Object*
Field 'foo', type = dart:core::int*, getter = 'get:foo', setter = 'set:foo', reflectable, has-initializer
value = null
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::B*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
Nullable fields: [#lib::B::foo (field)]
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'topLevel', reflectable, debuggable
parameters [] (required: 0)
return-type void
Bytecode {
Entry 5
CheckStack 0
AllocateContext 0, 4
PopLocal r0
Push r0
Push FP[-5]
StoreContextVar 0, 0
Push r0
PushInt 1
StoreContextVar 0, 1
PushInt 2
PopLocal r2
Push r0
PushInt 3
StoreContextVar 0, 2
AllocateClosure CP#0
StoreLocal r4
Push r4
PushNull
StoreFieldTOS CP#10
Push r4
PushNull
StoreFieldTOS CP#12
Push r4
PushConstant CP#0
StoreFieldTOS CP#14
Push r4
Push r0
StoreFieldTOS CP#1
PopLocal r3
Push r3
StoreLocal r4
PushInt 10
Push r4
UncheckedClosureCall CP#20, 2
Drop1
Push r3
StoreLocal r4
PushInt 11
Push r4
UncheckedClosureCall CP#20, 2
Drop1
Push r2
DirectCall CP#17, 1
Drop1
Push r0
LoadContextVar 0, 2
DirectCall CP#17, 1
Drop1
Push r0
LoadContextVar 0, 1
DirectCall CP#17, 1
Drop1
Push r0
PushInt 42
StoreContextVar 0, 3
AllocateClosure CP#21
StoreLocal r3
Push r3
PushNull
StoreFieldTOS CP#10
Push r3
PushNull
StoreFieldTOS CP#12
Push r3
PushConstant CP#21
StoreFieldTOS CP#14
Push r3
Push r0
StoreFieldTOS CP#1
PopLocal r2
Push r2
StoreLocal r3
Push r3
UncheckedClosureCall CP#16, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = ClosureFunction 0
[1] = InstanceField dart:core::_Closure::_context (field)
[2] = Reserved
[3] = Type dart:core::int*
[4] = ObjectRef 'y'
[5] = SubtypeTestCache
[6] = ClosureFunction 1
[7] = InterfaceCall '#lib::B::get:foo', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
[9] = EndClosureFunctionScope
[10] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
[11] = Reserved
[12] = InstanceField dart:core::_Closure::_function_type_arguments (field)
[13] = Reserved
[14] = InstanceField dart:core::_Closure::_function (field)
[15] = Reserved
[16] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
[17] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[18] = Reserved
[19] = EndClosureFunctionScope
[20] = ObjectRef ArgDesc num-args 2, num-type-args 0, names []
[21] = ClosureFunction 2
[22] = InterfaceCall '#lib::B::set:foo', ArgDesc num-args 2, num-type-args 0, names []
[23] = Reserved
[24] = EndClosureFunctionScope
}
Closure #lib::B::topLevel::'<anonymous closure>' (dart:core::int* y) -> dart:core::Null?
ClosureCode {
Entry 4
Push FP[-6]
LoadFieldTOS CP#1
PopLocal r0
CheckStack 0
AllocateContext 1, 2
StoreLocal r1
Push r1
Push r0
StoreContextParent
PopLocal r0
Push r0
Push FP[-5]
StoreContextVar 1, 0
JumpIfUnchecked L1
Push FP[-5]
PushConstant CP#3
PushNull
PushNull
PushConstant CP#4
AssertAssignable 1, CP#5
Drop1
L1:
Push r0
LoadContextParent
Push r0
LoadContextVar 1, 0
PushInt 1
AddInt
StoreContextVar 0, 1
Push r0
LoadContextParent
LoadContextVar 0, 1
PushInt 5
CompareIntGt
JumpIfFalse L2
Push r0
PushInt 4
StoreContextVar 1, 1
AllocateClosure CP#6
StoreLocal r2
Push r2
PushNull
StoreFieldTOS CP#10
Push r2
PushNull
StoreFieldTOS CP#12
Push r2
PushConstant CP#6
StoreFieldTOS CP#14
Push r2
Push r0
StoreFieldTOS CP#1
PopLocal r3
Push r3
StoreLocal r2
Push r2
UncheckedClosureCall CP#16, 1
Drop1
Push r0
LoadContextVar 1, 1
DirectCall CP#17, 1
Drop1
L2:
PushNull
ReturnTOS
}
Closure #lib::B::topLevel::Closure/0::'closure2' () -> void
ClosureCode {
Entry 3
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r0
CheckStack 0
Push r0
LoadContextParent
Push r0
LoadContextParent
LoadContextVar 0, 1
PushInt 2
AddInt
StoreContextVar 0, 2
Push r0
Push r0
LoadContextParent
LoadContextVar 0, 0
InterfaceCall CP#7, 1
Push r0
LoadContextVar 1, 0
AddInt
StoreContextVar 1, 1
PushNull
ReturnTOS
}
Closure #lib::B::topLevel::'<anonymous closure>' () -> dart:core::Null?
ClosureCode {
Entry 3
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r0
CheckStack 0
Push r0
LoadContextVar 0, 0
Push r0
LoadContextVar 0, 3
InterfaceCall CP#22, 2
Drop1
PushNull
ReturnTOS
}
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 'C', script = '#lib'
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::C*
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 'testForLoop', reflectable, debuggable
parameters [] (required: 0)
return-type void
Bytecode {
Entry 5
CheckStack 0
AllocateContext 0, 1
PopLocal r0
Push r0
PushInt 0
StoreContextVar 0, 0
PushConstant CP#0
PushConstant CP#1
DirectCall CP#2, 2
PopLocal r2
PushConstant CP#0
PushConstant CP#1
DirectCall CP#2, 2
PopLocal r4
AllocateContext 1, 1
StoreLocal r1
Push r1
Push r0
StoreContextParent
PopLocal r0
Push r0
PushInt 0
StoreContextVar 1, 0
L2:
CheckStack 1
Push r0
LoadContextVar 1, 0
PushInt 10
CompareIntLt
JumpIfFalse L1
Push r2
AllocateClosure CP#4
StoreLocal r3
Push r3
PushNull
StoreFieldTOS CP#8
Push r3
PushNull
StoreFieldTOS CP#10
Push r3
PushConstant CP#4
StoreFieldTOS CP#12
Push r3
Push r0
StoreFieldTOS CP#5
InstantiatedInterfaceCall CP#14, 2
Drop1
Push r4
AllocateClosure CP#17
StoreLocal r3
Push r3
PushNull
StoreFieldTOS CP#8
Push r3
PushNull
StoreFieldTOS CP#10
Push r3
PushConstant CP#17
StoreFieldTOS CP#12
Push r3
Push r0
StoreFieldTOS CP#5
InstantiatedInterfaceCall CP#14, 2
Drop1
Push r0
CloneContext 1, 1
PopLocal r0
Push r0
Push r0
LoadContextVar 1, 0
PushInt 1
AddInt
StoreLocal r3
StoreContextVar 1, 0
Push r3
Drop1
Jump L2
L1:
Push r0
LoadContextParent
PopLocal r0
Push r0
LoadContextParent
PopLocal r0
PushNull
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::Function* >
[1] = ObjectRef const <dynamic> []
[2] = DirectCall 'dart:core::List::_fromLiteral (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[3] = Reserved
[4] = ClosureFunction 0
[5] = InstanceField dart:core::_Closure::_context (field)
[6] = Reserved
[7] = EndClosureFunctionScope
[8] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
[9] = Reserved
[10] = InstanceField dart:core::_Closure::_function_type_arguments (field)
[11] = Reserved
[12] = InstanceField dart:core::_Closure::_function (field)
[13] = Reserved
[14] = InstantiatedInterfaceCall 'dart:core::List::add', ArgDesc num-args 2, num-type-args 0, names [], receiver dart:core::List < dart:core::Function* >*
[15] = Reserved
[16] = Reserved
[17] = ClosureFunction 1
[18] = Type dart:core::int*
[19] = ObjectRef 'ii'
[20] = SubtypeTestCache
[21] = EndClosureFunctionScope
}
Closure #lib::C::testForLoop::'<anonymous closure>' () -> dart:core::int*
ClosureCode {
Entry 2
Push FP[-5]
LoadFieldTOS CP#5
PopLocal r0
CheckStack 0
Push r0
LoadContextVar 1, 0
Push r0
LoadContextParent
LoadContextVar 0, 0
AddInt
ReturnTOS
}
Closure #lib::C::testForLoop::'<anonymous closure>' (dart:core::int* ii) -> dart:core::Null?
ClosureCode {
Entry 3
Push FP[-6]
LoadFieldTOS CP#5
PopLocal r0
CheckStack 0
JumpIfUnchecked L1
Push FP[-5]
PushConstant CP#18
PushNull
PushNull
PushConstant CP#19
AssertAssignable 1, CP#20
Drop1
L1:
Push r0
Push FP[-5]
Push r0
LoadContextParent
LoadContextVar 0, 0
AddInt
StoreContextVar 1, 0
PushNull
ReturnTOS
}
Function 'testForInLoop', reflectable, debuggable
parameters [dart:core::List < dart:core::int* >* 'list'] (required: 1)
return-type void
Bytecode {
Entry 5
CheckStack 0
Push FP[-5]
InterfaceCall CP#0, 1
PopLocal r2
L2:
CheckStack 1
Push r2
InterfaceCall CP#2, 1
AssertBoolean 0
JumpIfFalse L1
AllocateContext 0, 1
PopLocal r0
Push r0
Push r2
InterfaceCall CP#4, 1
StoreContextVar 0, 0
AllocateClosure CP#6
StoreLocal r4
Push r4
PushNull
StoreFieldTOS CP#10
Push r4
PushNull
StoreFieldTOS CP#12
Push r4
PushConstant CP#6
StoreFieldTOS CP#14
Push r4
Push r0
StoreFieldTOS CP#7
PopLocal r3
Push r3
StoreLocal r4
Push r4
UncheckedClosureCall CP#16, 1
Drop1
Push r0
LoadContextVar 0, 0
DirectCall CP#17, 1
Drop1
Push r0
LoadContextParent
PopLocal r0
Jump L2
L1:
PushNull
ReturnTOS
}
ConstantPool {
[0] = InterfaceCall 'dart:core::Iterable::get:iterator', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = InterfaceCall 'dart:core::Iterator::moveNext', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = InterfaceCall 'dart:core::Iterator::get:current', ArgDesc num-args 1, num-type-args 0, names []
[5] = Reserved
[6] = ClosureFunction 0
[7] = InstanceField dart:core::_Closure::_context (field)
[8] = Reserved
[9] = EndClosureFunctionScope
[10] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
[11] = Reserved
[12] = InstanceField dart:core::_Closure::_function_type_arguments (field)
[13] = Reserved
[14] = InstanceField dart:core::_Closure::_function (field)
[15] = Reserved
[16] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
[17] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[18] = Reserved
}
Closure #lib::C::testForInLoop::'<anonymous closure>' () -> dart:core::Null?
ClosureCode {
Entry 3
Push FP[-5]
LoadFieldTOS CP#7
PopLocal r0
CheckStack 0
Push r0
Push r0
LoadContextVar 0, 0
PushInt 1
AddInt
StoreContextVar 0, 0
PushNull
ReturnTOS
}
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 'D', script = '#lib'
type-params <dart:core::Object* T> (args: 1)
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::D < #lib::D::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 'foo', reflectable, debuggable
parameters [#lib::D::TypeParam/0* 't'] (required: 1)
return-type dynamic
Bytecode {
Entry 3
CheckStack 0
AllocateContext 0, 1
PopLocal r0
Push r0
Push FP[-5]
StoreContextVar 0, 0
JumpIfUnchecked L1
Push FP[-5]
PushConstant CP#0
Push FP[-6]
LoadTypeArgumentsField CP#1
PushNull
PushConstant CP#2
AssertAssignable 0, CP#3
Drop1
L1:
AllocateClosure CP#4
StoreLocal r2
Push r2
Push FP[-6]
LoadTypeArgumentsField CP#1
StoreFieldTOS CP#8
Push r2
PushNull
StoreFieldTOS CP#10
Push r2
PushConstant CP#4
StoreFieldTOS CP#12
Push r2
Push r0
StoreFieldTOS CP#5
ReturnTOS
}
Parameter flags: [2]
ConstantPool {
[0] = Type #lib::D::TypeParam/0*
[1] = TypeArgumentsField #lib::D
[2] = ObjectRef 't'
[3] = SubtypeTestCache
[4] = ClosureFunction 0
[5] = InstanceField dart:core::_Closure::_context (field)
[6] = Reserved
[7] = EndClosureFunctionScope
[8] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
[9] = Reserved
[10] = InstanceField dart:core::_Closure::_function_type_arguments (field)
[11] = Reserved
[12] = InstanceField dart:core::_Closure::_function (field)
[13] = Reserved
}
Closure #lib::D::foo::'<anonymous closure>' () -> #lib::D::TypeParam/0*
ClosureCode {
Entry 2
Push FP[-5]
LoadFieldTOS CP#5
PopLocal r0
CheckStack 0
Push r0
LoadContextVar 0, 0
ReturnTOS
}
Function 'bar', reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 3
CheckStack 0
AllocateContext 0, 1
PopLocal r0
Push r0
Push FP[-5]
StoreContextVar 0, 0
AllocateClosure CP#0
StoreLocal r2
Push r2
Push FP[-5]
LoadTypeArgumentsField CP#5
StoreFieldTOS CP#6
Push r2
PushNull
StoreFieldTOS CP#8
Push r2
PushConstant CP#0
StoreFieldTOS CP#10
Push r2
Push r0
StoreFieldTOS CP#1
ReturnTOS
}
ConstantPool {
[0] = ClosureFunction 0
[1] = InstanceField dart:core::_Closure::_context (field)
[2] = Reserved
[3] = ClosureFunction 1
[4] = EndClosureFunctionScope
[5] = TypeArgumentsField #lib::D
[6] = InstanceField dart:core::_Closure::_instantiator_type_arguments (field)
[7] = Reserved
[8] = InstanceField dart:core::_Closure::_function_type_arguments (field)
[9] = Reserved
[10] = InstanceField dart:core::_Closure::_function (field)
[11] = Reserved
[12] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
[13] = EndClosureFunctionScope
}
Closure #lib::D::bar::'<anonymous closure>' () -> dart:core::Null?
ClosureCode {
Entry 4
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r0
CheckStack 0
AllocateClosure CP#3
StoreLocal r3
Push r3
Push r0
LoadContextVar 0, 0
LoadTypeArgumentsField CP#5
StoreFieldTOS CP#6
Push r3
PushNull
StoreFieldTOS CP#8
Push r3
PushConstant CP#3
StoreFieldTOS CP#10
Push r3
Push r0
StoreFieldTOS CP#1
PopLocal r2
Push r2
StoreLocal r3
Push r3
UncheckedClosureCall CP#12, 1
Drop1
PushNull
ReturnTOS
}
Closure #lib::D::bar::Closure/0::'inner' () -> dart:core::Null?
ClosureCode {
Entry 2
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r0
CheckStack 0
PushNull
ReturnTOS
}
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', abstract
extends dart:core::Object*
Field 'foo1', type = FunctionType (dart:core::int*, dart:core::int*)* -> dart:core::int*, getter = 'get:foo1', setter = 'set:foo1', reflectable, has-initializer
value = null
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::E*
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
Nullable fields: [#lib::E::foo1 (field)]
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'get:foo2', getter, abstract, reflectable, debuggable
parameters [] (required: 0)
return-type FunctionType <dart:core::Object* T> (null::TypeParam/0*, null::TypeParam/0*)* -> dart:core::int*
Function 'evalArg1', abstract, reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function 'evalArg2', abstract, reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Function 'getE', abstract, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::E*
Function 'testCallThroughGetter1', reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Bytecode {
Entry 3
CheckStack 0
Push FP[-5]
InterfaceCall CP#0, 1
PopLocal r0
Push FP[-5]
InterfaceCall CP#2, 1
PopLocal r1
Push FP[-5]
InterfaceCall CP#4, 1
StoreLocal r2
Push r0
Push r1
Push r2
UncheckedClosureCall CP#6, 3
ReturnTOS
}
ConstantPool {
[0] = InterfaceCall '#lib::E::evalArg1', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = InterfaceCall '#lib::E::evalArg2', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = InterfaceCall '#lib::E::get:foo1', ArgDesc num-args 1, num-type-args 0, names []
[5] = Reserved
[6] = ObjectRef ArgDesc num-args 3, num-type-args 0, names []
}
Function 'testCallThroughGetter2', reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Bytecode {
Entry 3
CheckStack 0
Push FP[-5]
InterfaceCall CP#0, 1
PopLocal r0
Push FP[-5]
InterfaceCall CP#2, 1
PopLocal r1
PushConstant CP#4
Push FP[-5]
InterfaceCall CP#5, 1
StoreLocal r2
Push r0
Push r1
Push r2
UncheckedClosureCall CP#7, 4
ReturnTOS
}
ConstantPool {
[0] = InterfaceCall '#lib::E::evalArg1', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = InterfaceCall '#lib::E::evalArg2', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = ObjectRef < dart:core::int* >
[5] = InterfaceCall '#lib::E::get:foo2', ArgDesc num-args 1, num-type-args 0, names []
[6] = Reserved
[7] = ObjectRef ArgDesc num-args 3, num-type-args 1, names []
}
Function 'testCallThroughGetter3', reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int*
Bytecode {
Entry 4
CheckStack 0
Push FP[-5]
InterfaceCall CP#0, 1
PopLocal r0
Push FP[-5]
InterfaceCall CP#2, 1
PopLocal r1
Push FP[-5]
InterfaceCall CP#4, 1
PopLocal r2
PushConstant CP#6
Push r0
InterfaceCall CP#7, 1
StoreLocal r3
Push r1
Push r2
Push r3
UncheckedClosureCall CP#9, 4
ReturnTOS
}
ConstantPool {
[0] = InterfaceCall '#lib::E::getE', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = InterfaceCall '#lib::E::evalArg1', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = InterfaceCall '#lib::E::evalArg2', ArgDesc num-args 1, num-type-args 0, names []
[5] = Reserved
[6] = ObjectRef < dart:core::int* >
[7] = InterfaceCall '#lib::E::get:foo2', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
[9] = ObjectRef ArgDesc num-args 3, num-type-args 1, names []
}
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*
}
]library #lib from "#lib" as #lib {
typedef IntFunc = (dart.core::int*) →* dynamic;
class C1 extends dart.core::Object {
synthetic constructor •() #lib::C1*
: super dart.core::Object::•()
;
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 C2 extends dart.core::Object {
synthetic constructor •() #lib::C2*
: super dart.core::Object::•()
;
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 C3 extends dart.core::Object {
synthetic constructor •() #lib::C3*
: super dart.core::Object::•()
;
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 C4 extends dart.core::Object {
synthetic constructor •() #lib::C4*
: super dart.core::Object::•()
;
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 C5 extends dart.core::Object {
synthetic constructor •() #lib::C5*
: super dart.core::Object::•()
;
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 C6 extends dart.core::Object {
synthetic constructor •() #lib::C6*
: super dart.core::Object::•()
;
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 C7 extends dart.core::Object {
synthetic constructor •() #lib::C7*
: super dart.core::Object::•()
;
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 C8 extends dart.core::Object {
synthetic constructor •() #lib::C8*
: super dart.core::Object::•()
;
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<T1 extends dart.core::Object* = dynamic, T2 extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() #lib::A<#lib::A::T1*, #lib::A::T2*>*
: super dart.core::Object::•()
;
method foo<T3 extends dart.core::Object* = dynamic, T4 extends dart.core::Object* = dynamic>() void {
function nested1<T5 extends dart.core::Object* = dynamic, T6 extends dart.core::Object* = dynamic>() void {
function nested2<T7 extends dart.core::Object* = dynamic, T8 extends dart.core::Object* = dynamic>() void {
() →* dart.core::Null? nested3 = () dart.core::Null? {
dart.core::print(<dart.core::Type*>[#lib::A::T1*, #lib::A::T2*, #lib::A::foo::T3*, #lib::A::foo::T4*, T5*, T6*, T7*, T8*]);
#lib::callWithArgs<#lib::A::T1*, #lib::A::T2*, #lib::A::foo::T3*, #lib::A::foo::T4*, T5*, T6*, T7*, T8*>();
};
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function()*] nested3.call();
}
[@vm.call-site-attributes.metadata=receiverType:void Function<T7, T8>()*] nested2.call<#lib::C7*, #lib::C8*>();
[@vm.call-site-attributes.metadata=receiverType:void Function<T7, T8>()*] nested2.call<dart.core::List<#lib::C7*>*, dart.core::List<#lib::C8*>*>();
}
[@vm.call-site-attributes.metadata=receiverType:void Function<T5, T6>()*] nested1.call<#lib::C5*, #lib::C6*>();
[@vm.call-site-attributes.metadata=receiverType:void Function<T5, T6>()*] nested1.call<dart.core::List<#lib::C5*>*, dart.core::List<#lib::C6*>*>();
}
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 B extends dart.core::Object {
field dart.core::int* foo = null;
synthetic constructor •() #lib::B*
: super dart.core::Object::•()
;
method topLevel() void {
{
dart.core::int* x = 1;
{
dart.core::int* y = 2;
dart.core::int* z = 3;
(dart.core::int*) →* dart.core::Null? closure1 = (dart.core::int* y) dart.core::Null? {
x = y.{dart.core::num::+}(1);
if(x.{dart.core::num::>}(5)) {
dart.core::int* w = 4;
function closure2() void {
z = x.{dart.core::num::+}(2);
w = this.{#lib::B::foo}.{dart.core::num::+}(y);
}
[@vm.call-site-attributes.metadata=receiverType:void Function()*] closure2.call();
dart.core::print(w);
}
};
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function(dart.core::int*)*] closure1.call(10);
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function(dart.core::int*)*] closure1.call(11);
dart.core::print(y);
dart.core::print(z);
}
dart.core::print(x);
}
{
dart.core::int* x = 42;
() →* dart.core::Null? closure3 = () dart.core::Null? {
this.{#lib::B::foo} = x;
};
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function()*] closure3.call();
}
}
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 C extends dart.core::Object {
synthetic constructor •() #lib::C*
: super dart.core::Object::•()
;
method testForLoop() void {
dart.core::int* delta = 0;
dart.core::List<dart.core::Function*>* getI = <dart.core::Function*>[];
dart.core::List<dart.core::Function*>* setI = <dart.core::Function*>[];
for (dart.core::int* i = 0; i.{dart.core::num::<}(10); i = i.{dart.core::num::+}(1)) {
[@vm.call-site-attributes.metadata=receiverType:dart.core::List<dart.core::Function*>*] getI.{dart.core::List::add}(() dart.core::int* => i.{dart.core::num::+}(delta));
[@vm.call-site-attributes.metadata=receiverType:dart.core::List<dart.core::Function*>*] setI.{dart.core::List::add}((dart.core::int* ii) dart.core::Null? {
i = ii.{dart.core::num::+}(delta);
});
}
}
method testForInLoop(dart.core::List<dart.core::int*>* list) void {
{
dart.core::Iterator<dart.core::int*>* :sync-for-iterator = list.{dart.core::Iterable::iterator};
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(); ) {
dart.core::int* i = :sync-for-iterator.{dart.core::Iterator::current};
{
() →* dart.core::Null? inc = () dart.core::Null? {
i = i.{dart.core::num::+}(1);
};
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function()*] inc.call();
dart.core::print(i);
}
}
}
}
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 D<T extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() #lib::D<#lib::D::T*>*
: super dart.core::Object::•()
;
method foo(generic-covariant-impl #lib::D::T* t) → dynamic {
return () #lib::D::T* => t;
}
method bar() dynamic {
return () dart.core::Null? {
function inner() dart.core::Null? {}
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function()*] inner.call();
};
}
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 E extends dart.core::Object {
field (dart.core::int*, dart.core::int*) →* dart.core::int* foo1 = null;
synthetic constructor •() #lib::E*
: super dart.core::Object::•()
;
abstract get foo2() <T extends dart.core::Object* = dynamic>(T*, T*) →* dart.core::int*;
abstract method evalArg1() dart.core::int*;
abstract method evalArg2() dart.core::int*;
abstract method getE() #lib::E*;
method testCallThroughGetter1() dart.core::int*
return let final dart.core::int* #t1 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t2 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:dart.core::int* Function(dart.core::int*, dart.core::int*)*] this.{#lib::E::foo1}.call(#t1, #t2);
method testCallThroughGetter2() dart.core::int*
return let final dart.core::int* #t3 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t4 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:dart.core::int* Function<T>(T*, T*)*] this.{#lib::E::foo2}.call<dart.core::int*>(#t3, #t4);
method testCallThroughGetter3() dart.core::int*
return let final #lib::E* #t5 = this.{#lib::E::getE}() in let final dart.core::int* #t6 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t7 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:dart.core::int* Function<T>(T*, T*)*] #t5.{#lib::E::foo2}.call<dart.core::int*>(#t6, #t7);
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*;
}
static method simpleClosure() dart.core::int* {
dart.core::int* x = 5;
(dart.core::int*) →* dart.core::Null? inc = (dart.core::int* y) dart.core::Null? {
x = x.{dart.core::num::+}(y);
};
[@vm.call-site-attributes.metadata=receiverType:dart.core::Null? Function(dart.core::int*)*] inc.call(3);
return x;
}
static method callWithArgs<T1 extends dart.core::Object* = dynamic, T2 extends dart.core::Object* = dynamic, T3 extends dart.core::Object* = dynamic, T4 extends dart.core::Object* = dynamic, T5 extends dart.core::Object* = dynamic, T6 extends dart.core::Object* = dynamic, T7 extends dart.core::Object* = dynamic, T8 extends dart.core::Object* = dynamic>() void {
dart.core::print(<dart.core::Type*>[#lib::callWithArgs::T1*, #lib::callWithArgs::T2*, #lib::callWithArgs::T3*, #lib::callWithArgs::T4*, #lib::callWithArgs::T5*, #lib::callWithArgs::T6*, #lib::callWithArgs::T7*, #lib::callWithArgs::T8*]);
}
static method callA() void {
new #lib::A::•<#lib::C1*, #lib::C2*>().{#lib::A::foo}<#lib::C3*, #lib::C4*>();
new #lib::A::•<#lib::C1*, #lib::C2*>().{#lib::A::foo}<dart.core::List<#lib::C3*>*, dart.core::List<#lib::C4*>*>();
new #lib::A::•<dart.core::List<#lib::C1*>*, dart.core::List<#lib::C2*>*>().{#lib::A::foo}<dart.core::List<#lib::C3*>*, dart.core::List<#lib::C4*>*>();
}
static method testPartialInstantiation() (dart.core::int*) →* dynamic {
function foo<T extends dart.core::Object* = dynamic>(T* t) void {}
(dart.core::int*) →* dynamic intFunc = foo<dart.core::int*>;
return intFunc;
}
static method main() dynamic {}
}