Files
sdk/pkg/vm/testcases/bytecode/closures.dart.expect
T
Johnni Winther 7fce125300 [cfe,kernel] Add AstPrinter
This CL adds a Node.toText method together with an AstPrinter. These
facility and better toString implementation on AST nodes while allowing
for toString independent printing of AST to use in testing. This also
add support for an integrated toString of custom/internal nodes.

Some work is still needed in bringing the toString implementation on
all nodes to the old quality, and not all internal nodes have
customized textual representations yet. This work is left for future
CLs.

Change-Id: Ib0bf8a0bc02f489dfacdc8aa5f96da9c52f26058
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150923
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2020-06-16 17:15:10 +00:00

2555 lines
81 KiB
Plaintext

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 {
EntryFixed 2, 3
Push FP[-6]
LoadFieldTOS CP#1
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {
EntryFixed 2, 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 {
EntryFixed 1, 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 {
EntryFixed 1, 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 {
EntryFixed 1, 4
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r1
CheckFunctionTypeArgs 0, r2
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 {
EntryFixed 2, 4
Push FP[-6]
LoadFieldTOS CP#1
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {
EntryFixed 1, 3
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {
EntryFixed 1, 3
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {
EntryFixed 1, 2
Push FP[-5]
LoadFieldTOS CP#5
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {
EntryFixed 2, 3
Push FP[-6]
LoadFieldTOS CP#5
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {
EntryFixed 1, 3
Push FP[-5]
LoadFieldTOS CP#7
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {
EntryFixed 1, 2
Push FP[-5]
LoadFieldTOS CP#5
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {
EntryFixed 1, 4
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {
EntryFixed 1, 2
Push FP[-5]
LoadFieldTOS CP#1
PopLocal r0
CheckFunctionTypeArgs 0, r1
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 {}
}