Files
sdk/pkg/dart2bytecode/testcases/instance_creation.dart.expect
T
Alexander Markov e32c2ac796 [vm,dyn_modules] Remove enclosing function type parameters from instantiated types
VM treats instantiated function types with NumParentTypeArguments() != 0
as non-instantiated (as they potentially depend on the numbering of
enclosing type parameters) and would explicitly instantiate such types.

So bytecode generator needs to make sure that instantiated types,
instantiated type arguments and types used in constants always have
NumParentTypeArguments() == 0, so they would not need unnecessary
instantiation.

TEST=ci

Change-Id: I3ea54a0b535655611893d28edb54ffd50dcda1f0
Cq-Include-Trybots: luci.dart.try:vm-aot-dyn-linux-debug-x64-try,vm-aot-dyn-linux-product-x64-try,vm-dyn-linux-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/443630
Reviewed-by: Tess Strickland <sstrickl@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2025-08-06 06:25:02 -07:00

693 lines
24 KiB
Plaintext

Bytecode
Dynamic Module Entry Point: DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::main
Library 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
name '#lib'
script 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
Class '', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
Function 'foo1', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 1
CheckStack 0
Allocate CP#0
StoreLocal r0
Push r0
PushConstant CP#1
DirectCall CP#2, 2
Drop1
ReturnTOS
}
ConstantPool {
[0] = Class DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::C
[1] = ObjectRef 'hello'
[2] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::C:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[3] = Reserved
}
Function 'foo2', static, reflectable, debuggable
parameters [] (required: 0)
return-type void
Bytecode {
Entry 1
CheckStack 0
PushConstant CP#1
PushConstant CP#0
AllocateT
StoreLocal r0
Push r0
PushConstant CP#2
DirectCall CP#3, 2
Drop1
Drop1
PushConstant CP#6
PushConstant CP#5
AllocateT
StoreLocal r0
Push r0
DirectCall CP#7, 1
Drop1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = Class DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::A
[1] = ObjectRef < dart:core::int, dart:core::String >
[2] = ObjectRef 'hi'
[3] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::A:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[4] = Reserved
[5] = Class DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::B
[6] = ObjectRef < dart:core::List < dart:core::int >, dart:core::String, dart:core::int >
[7] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::B:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
}
Function 'foo3', static, reflectable, debuggable
type-params <'T' extends dart:core::Object? (default dynamic)>
parameters [] (required: 0)
return-type void
Bytecode {
Entry 2
CheckFunctionTypeArgs 1, r0
CheckStack 0
PushNull
Push r0
InstantiateTypeArgumentsTOS 0, CP#1
PushConstant CP#0
AllocateT
StoreLocal r1
Push r1
DirectCall CP#2, 1
Drop1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = Class DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::B
[1] = ObjectRef < dart:core::List < dart:core::List < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::foo3::TypeParam/0 > >, dart:core::String, dart:core::List < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::foo3::TypeParam/0 > >
[2] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::B:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
}
Function 'foo4', static, reflectable, debuggable
parameters [] (required: 0)
return-type void
Bytecode {
Entry 0
CheckStack 0
PushConstant CP#0
DirectCall CP#1, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int, dart:core::List < dart:core::String > >
[1] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G::testFactory (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
Function 'foo5', static, reflectable, debuggable
parameters [] (required: 0)
return-type void
Bytecode {
Entry 0
CheckStack 0
PushNull
DirectCall CP#0, 1
Drop1
PushNull
PushInt 42
DirectCall CP#2, 2
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::I::testFactory2 (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::I::testFactory2 (constructor)', ArgDesc num-args 2, num-type-args 0, names ['param']
[3] = Reserved
}
Function 'foo6', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
PushConstant CP#0
DirectCall CP#1, 1
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::String >
[1] = DirectCall 'dart:core::_List::empty (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
Function 'foo7', static, reflectable, debuggable
parameters [dart:core::int 'n'] (required: 1)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
PushConstant CP#0
Push FP[-5]
PushInt 0
DirectCall CP#1, 3
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int >
[1] = DirectCall 'dart:core::_List::filled (constructor)', ArgDesc num-args 3, num-type-args 0, names []
[2] = Reserved
}
Function 'main', static, reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
DirectCall CP#0, 0
Drop1
DirectCall CP#2, 0
Drop1
PushConstant CP#4
DirectCall CP#5, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::foo1', ArgDesc num-args 0, num-type-args 0, names []
[1] = Reserved
[2] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::foo2', ArgDesc num-args 0, num-type-args 0, names []
[3] = Reserved
[4] = ObjectRef < dart:core::String >
[5] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::foo3', ArgDesc num-args 0, num-type-args 1, names []
[6] = Reserved
}
Class 'Base', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
type-params <'T1' extends dart:core::Object? (default dynamic), 'T2' extends dart:core::Object? (default dynamic)> (args: 2)
extends dart:core::Object
Field 't1', type = DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base::TypeParam/0?, getter = 'get:t1', setter = 'set:t1', reflectable, has-initializer
value = null
Field 't2', type = DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base::TypeParam/1?, getter = 'get:t2', setter = 'set:t2', reflectable, has-initializer
value = null
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base::TypeParam/1 >
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
PushInt 4
CreateArrayTOS
StoreLocal r0
Push r0
PushInt 0
PushConstant CP#2
StoreIndexedTOS
Push r0
PushInt 1
Push FP[-5]
LoadTypeArgumentsField CP#3
PushNull
InstantiateType CP#4
StoreIndexedTOS
Push r0
PushInt 2
PushConstant CP#5
StoreIndexedTOS
Push r0
PushInt 3
Push FP[-5]
LoadTypeArgumentsField CP#3
PushNull
InstantiateType CP#6
StoreIndexedTOS
DirectCall CP#7, 1
DirectCall CP#9, 1
Drop1
PushNull
ReturnTOS
}
Nullable fields: [DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base::t1 (field), DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base::t2 (field)]
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = ObjectRef 'Base: '
[3] = TypeArgumentsField DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base
[4] = Type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base::TypeParam/0
[5] = ObjectRef ', '
[6] = Type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base::TypeParam/1
[7] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
[9] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[10] = Reserved
}
Class 'A', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
extends DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base < dart:core::int, dart:core::String >
Function '', constructor, reflectable, debuggable
parameters [dart:core::String 's'] (required: 1)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::A
Bytecode {
Entry 0
CheckStack 0
Push FP[-6]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Class 'B', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
type-params <'T' extends dart:core::Object? (default dynamic)> (args: 3)
extends DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base < dart:core::List < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::B::TypeParam/0 >, dart:core::String >
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::B < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::B::TypeParam/0 >
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
PushInt 2
CreateArrayTOS
StoreLocal r0
Push r0
PushInt 0
PushConstant CP#2
StoreIndexedTOS
Push r0
PushInt 1
Push FP[-5]
LoadTypeArgumentsField CP#3
PushNull
InstantiateType CP#4
StoreIndexedTOS
DirectCall CP#5, 1
DirectCall CP#7, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = ObjectRef 'B: '
[3] = TypeArgumentsField DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::B
[4] = Type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::B::TypeParam/0
[5] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names []
[6] = Reserved
[7] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
}
Class 'C', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
extends dart:core::Object
Function '', constructor, reflectable, debuggable
parameters [dart:core::String 's'] (required: 1)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::C
Bytecode {
Entry 1
CheckStack 0
Push FP[-6]
DirectCall CP#0, 1
Drop1
PushNull
PushInt 2
CreateArrayTOS
StoreLocal r0
Push r0
PushInt 0
PushConstant CP#2
StoreIndexedTOS
Push r0
PushInt 1
Push FP[-5]
StoreIndexedTOS
DirectCall CP#3, 1
DirectCall CP#5, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = ObjectRef 'C: '
[3] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names []
[4] = Reserved
[5] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[6] = Reserved
}
Class 'E', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
type-params <'K' extends dart:core::Object? (default dynamic), 'V' extends dart:core::Object? (default dynamic)> (args: 2)
extends dart:core::Object
Function '', constructor, reflectable
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::E < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::E::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::E::TypeParam/1 >
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'testReuse1', reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
LoadTypeArgumentsField CP#0
DirectCall CP#1, 1
ReturnTOS
}
ConstantPool {
[0] = TypeArgumentsField DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::E
[1] = DirectCall 'dart:core::Map:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
Class 'F', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
type-params <'K' extends dart:core::Object? (default dynamic), 'V' extends dart:core::Object? (default dynamic)> (args: 4)
extends DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::E < dart:core::String, dart:core::List < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::F::TypeParam/1 > >
Function '', constructor, reflectable
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::F < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::F::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::F::TypeParam/1 >
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::E:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'testReuse2', reflectable, debuggable
parameters [] (required: 0)
return-type dynamic
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
LoadTypeArgumentsField CP#0
DirectCall CP#1, 1
ReturnTOS
}
ConstantPool {
[0] = TypeArgumentsField DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::F
[1] = DirectCall 'dart:core::Map:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
Class 'G', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
type-params <'K' extends dart:core::Object? (default dynamic), 'V' extends dart:core::Object? (default dynamic)> (args: 2)
extends dart:core::Object
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G::TypeParam/1 >
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'testFactory', factory, static, reflectable, debuggable
type-params <'K' extends dart:core::Object? (default dynamic), 'V' extends dart:core::Object? (default dynamic)>
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G::testFactory (constructor)::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G::testFactory (constructor)::TypeParam/1 >
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
PushNull
InstantiateTypeArgumentsTOS 0, CP#1
PushConstant CP#0
AllocateT
StoreLocal r0
Push r0
DirectCall CP#2, 1
Drop1
ReturnTOS
}
ConstantPool {
[0] = Class DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::H
[1] = ObjectRef < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G::testFactory (constructor)::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G::testFactory (constructor)::TypeParam/1, dart:core::String, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G::testFactory (constructor)::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G::testFactory (constructor)::TypeParam/1 >
[2] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::H:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
}
Class 'H', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
type-params <'P1' extends dart:core::Object? (default dynamic), 'P2' extends dart:core::Object? (default dynamic), 'P3' extends dart:core::Object? (default dynamic)> (args: 5)
extends DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::H::TypeParam/1, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::H::TypeParam/2 >
Function '', constructor, reflectable
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::H < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::H::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::H::TypeParam/1, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::H::TypeParam/2 >
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::G:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Class 'I', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
extends dart:core::Object
Function '', constructor, reflectable, debuggable
parameters [dynamic 'param'] (required: 1)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::I
Bytecode {
Entry 0
CheckStack 0
Push FP[-6]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}
Function 'testFactory2', factory, static, has-optional-named-params, reflectable, debuggable
parameters [dynamic 'param'] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::I
Bytecode {
EntryOptional 1, 0, 1
LoadConstant r1, CP#0
LoadConstant r1, CP#1
Frame 1
CheckStack 0
Allocate CP#2
StoreLocal r2
Push r2
Push r1
DirectCall CP#3, 2
Drop1
ReturnTOS
}
ConstantPool {
[0] = ObjectRef 'param'
[1] = ObjectRef null
[2] = Class DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::I
[3] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::I:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[4] = Reserved
}
Class 'J', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
extends dart:core::Object
Function '_', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::J
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 '', factory, static, reflectable, debuggable
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::J
Bytecode {
Entry 1
CheckStack 0
Allocate CP#0
StoreLocal r0
Push r0
DirectCall CP#1, 1
Drop1
ReturnTOS
}
ConstantPool {
[0] = Class DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::J
[1] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::J::_ (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
Class 'L', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart', abstract
type-params <'S' extends dart:core::Object? (default dynamic), 'T' extends dart:core::Object? (default dynamic)> (args: 2)
extends dart:core::Object
Function '', factory, static, reflectable, debuggable
type-params <'S' extends dart:core::Object? (default dynamic), 'T' extends dart:core::Object? (default dynamic)>
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::L < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::L:: (constructor)::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::L:: (constructor)::TypeParam/1 >
Bytecode {
Entry 1
CheckStack 0
Push FP[-5]
PushConstant CP#0
AllocateT
StoreLocal r0
Push r0
DirectCall CP#1, 1
Drop1
ReturnTOS
}
ConstantPool {
[0] = Class DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::TestTypeArgReuse
[1] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::TestTypeArgReuse:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
Class 'TestTypeArgReuse', script = 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart'
type-params <'P' extends dart:core::Object? (default dynamic), 'Q' extends dart:core::Object? (default dynamic)> (args: 2)
extends DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::TestTypeArgReuse::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::TestTypeArgReuse::TypeParam/1 >
implements [DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::L < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::TestTypeArgReuse::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::TestTypeArgReuse::TypeParam/1 >]
Function '', constructor, reflectable
parameters [] (required: 0)
return-type DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::TestTypeArgReuse < DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::TestTypeArgReuse::TypeParam/0, DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::TestTypeArgReuse::TypeParam/1 >
Bytecode {
Entry 0
CheckStack 0
Push FP[-5]
DirectCall CP#0, 1
Drop1
PushNull
ReturnTOS
}
ConstantPool {
[0] = DirectCall 'DART_SDK/pkg/dart2bytecode/testcases/instance_creation.dart::Base:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
}