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