[vm/nnbd/bytecode] Fix reuse of type arguments in bytecode

Type arguments should not be reused if type parameter has a nullability
other than non-nullable or undertermined, as instantiating such type
parameter may alter the type.

Also, this change adds printing of nullability when dumping bytecode
and updates expectations accordingly.

Fixes language/nnbd/is_type_test/null_is_type_in_legacy_lib_test in
bytecode mode.

Change-Id: I4378a4e42fa0bf014840b9b1ef09a633c1825e20
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155560
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
Alexander Markov 2020-07-23 00:35:29 +00:00 committed by commit-bot@chromium.org
parent 58b6f40c73
commit 17d7296a42
15 changed files with 811 additions and 797 deletions

View file

@ -1488,7 +1488,9 @@ class BytecodeGenerator extends RecursiveVisitor<Null> {
for (int i = 0; i < typeArgs.length; ++i) {
final typeArg = typeArgs[i];
if (!(typeArg is TypeParameterType &&
typeArg.parameter == functionTypeParameters[i])) {
typeArg.parameter == functionTypeParameters[i] &&
(typeArg.nullability == Nullability.nonNullable ||
typeArg.nullability == Nullability.undetermined))) {
return false;
}
}

View file

@ -335,6 +335,20 @@ const String topLevelClassName = '';
String objectKindToString(ObjectKind kind) =>
kind.toString().substring('ObjectKind.k'.length);
String nullabilityToString(Nullability nullability) {
switch (nullability) {
case Nullability.legacy:
return '*';
case Nullability.nullable:
return '?';
case Nullability.undetermined:
return '%';
case Nullability.nonNullable:
return '';
}
throw "Unknown Nullability: $nullability";
}
/// Represents object (library, class, member, closure, type or name) in the
/// object table.
abstract class ObjectHandle extends BytecodeObject {
@ -763,8 +777,7 @@ class _NeverTypeHandle extends _TypeHandle {
other is _NeverTypeHandle && this.nullability == other.nullability;
@override
// TODO(regis): Print nullability.
String toString() => 'Never';
String toString() => 'Never${nullabilityToString(nullability)}';
}
class _SimpleTypeHandle extends _TypeHandle {
@ -803,8 +816,7 @@ class _SimpleTypeHandle extends _TypeHandle {
this.nullability == other.nullability;
@override
// TODO(regis): Print nullability.
String toString() => '$class_';
String toString() => '$class_${nullabilityToString(nullability)}';
}
class _TypeParameterHandle extends _TypeHandle {
@ -857,8 +869,8 @@ class _TypeParameterHandle extends _TypeHandle {
this.nullability == other.nullability;
@override
// TODO(regis): Print nullability.
String toString() => '$parent::TypeParam/$indexInParent';
String toString() =>
'$parent::TypeParam/$indexInParent${nullabilityToString(nullability)}';
}
class _GenericTypeHandle extends _TypeHandle {
@ -903,8 +915,7 @@ class _GenericTypeHandle extends _TypeHandle {
this.nullability == other.nullability;
@override
// TODO(regis): Print nullability.
String toString() => '$class_ $typeArgs';
String toString() => '$class_ $typeArgs${nullabilityToString(nullability)}';
}
class _RecursiveGenericTypeHandle extends _TypeHandle {
@ -956,8 +967,8 @@ class _RecursiveGenericTypeHandle extends _TypeHandle {
this.nullability == other.nullability;
@override
// TODO(regis): Print nullability.
String toString() => '(recursive #$id) $class_ $typeArgs';
String toString() =>
'(recursive #$id) $class_ $typeArgs${nullabilityToString(nullability)}';
}
class _RecursiveTypeRefHandle extends _TypeHandle {
@ -1009,7 +1020,6 @@ class NameAndType {
this.type == other.type;
@override
// TODO(regis): Print nullability.
String toString() => '$type ${name.name}';
}
@ -1152,7 +1162,6 @@ class _FunctionTypeHandle extends _TypeHandle {
this.returnType == other.returnType;
@override
// TODO(regis): Print nullability.
String toString() {
StringBuffer sb = new StringBuffer();
sb.write('FunctionType');
@ -1173,7 +1182,7 @@ class _FunctionTypeHandle extends _TypeHandle {
}
sb.write('{ ${namedParams.join(', ')} }');
}
sb.write(') -> ');
sb.write(')${nullabilityToString(nullability)} -> ');
sb.write(returnType);
return sb.toString();
}

View file

@ -11,7 +11,7 @@ Class '', script = '#lib'
Function 'test1', static, reflectable, debuggable
parameters [dart:core::bool 'condition'] (required: 1)
parameters [dart:core::bool* 'condition'] (required: 1)
return-type void
Bytecode {
@ -37,7 +37,7 @@ ConstantPool {
Function 'test2', static, reflectable, debuggable
parameters [FunctionType () -> dart:core::bool 'condition', FunctionType () -> dart:core::String 'message'] (required: 2)
parameters [FunctionType ()* -> dart:core::bool* 'condition', FunctionType ()* -> dart:core::String* 'message'] (required: 2)
return-type void
Bytecode {

View file

@ -9,7 +9,7 @@ Library '#lib'
Class '', script = '#lib'
Field 'asyncInFieldInitializer', type = FunctionType (dart:async::Future < dart:core::int >) -> dart:async::Future < dart:core::Null >, getter = 'get:asyncInFieldInitializer', reflectable, static, has-initializer
Field 'asyncInFieldInitializer', type = FunctionType (dart:async::Future < dart:core::int* >*)* -> dart:async::Future < dart:core::Null? >*, getter = 'get:asyncInFieldInitializer', reflectable, static, has-initializer
initializer
Bytecode {
Entry 3
@ -34,11 +34,11 @@ ConstantPool {
[0] = ClosureFunction 0
[1] = InstanceField dart:core::_Closure::_context (field)
[2] = Reserved
[3] = Type dart:async::Future < dart:core::int >
[3] = Type dart:async::Future < dart:core::int* >*
[4] = ObjectRef 'x'
[5] = SubtypeTestCache
[6] = Class dart:async::_AsyncAwaitCompleter
[7] = ObjectRef < dart:core::Null >
[7] = ObjectRef < dart:core::Null? >
[8] = DirectCall 'dart:async::_AsyncAwaitCompleter:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[9] = Reserved
[10] = ClosureFunction 1
@ -67,7 +67,7 @@ ConstantPool {
[33] = Reserved
[34] = EndClosureFunctionScope
}
Closure #lib::asyncInFieldInitializer (field)::'<anonymous closure>' async (dart:async::Future < dart:core::int > x) -> dart:async::Future < dart:core::Null >
Closure #lib::asyncInFieldInitializer (field)::'<anonymous closure>' async (dart:async::Future < dart:core::int* >* x) -> dart:async::Future < dart:core::Null? >*
ClosureCode {
EntryFixed 2, 4
Push FP[-6]
@ -233,7 +233,7 @@ L1:
Function 'foo', static, reflectable, async
parameters [] (required: 0)
return-type dart:async::Future < dart:core::int >
return-type dart:async::Future < dart:core::int* >*
Bytecode {
Entry 7
@ -293,7 +293,7 @@ Bytecode {
}
ConstantPool {
[0] = Class dart:async::_AsyncAwaitCompleter
[1] = ObjectRef < dart:core::int >
[1] = ObjectRef < dart:core::int* >
[2] = DirectCall 'dart:async::_AsyncAwaitCompleter:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = ClosureFunction 0
@ -380,8 +380,8 @@ L1:
Function 'simpleAsyncAwait', static, reflectable, async
parameters [dart:async::Future < dart:core::int > 'a', dart:async::Future < dart:core::int > 'b'] (required: 2)
return-type dart:async::Future < dart:core::int >
parameters [dart:async::Future < dart:core::int* >* 'a', dart:async::Future < dart:core::int* >* 'b'] (required: 2)
return-type dart:async::Future < dart:core::int* >*
Bytecode {
Entry 4
@ -449,7 +449,7 @@ Bytecode {
}
ConstantPool {
[0] = Class dart:async::_AsyncAwaitCompleter
[1] = ObjectRef < dart:core::int >
[1] = ObjectRef < dart:core::int* >
[2] = DirectCall 'dart:async::_AsyncAwaitCompleter:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = ClosureFunction 0
@ -605,8 +605,8 @@ L1:
Function 'loops', static, reflectable, async
parameters [dart:core::List < dart:core::int > 'list'] (required: 1)
return-type dart:async::Future < dart:core::int >
parameters [dart:core::List < dart:core::int* >* 'list'] (required: 1)
return-type dart:async::Future < dart:core::int* >*
Bytecode {
Entry 4
@ -671,7 +671,7 @@ Bytecode {
}
ConstantPool {
[0] = Class dart:async::_AsyncAwaitCompleter
[1] = ObjectRef < dart:core::int >
[1] = ObjectRef < dart:core::int* >
[2] = DirectCall 'dart:async::_AsyncAwaitCompleter:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = ClosureFunction 0
@ -951,8 +951,8 @@ L1:
Function 'tryCatchRethrow', static, reflectable, async
parameters [dart:async::Future < dart:core::int > 'a', dart:async::Future < dart:core::int > 'b', dart:async::Future < dart:core::int > 'c'] (required: 3)
return-type dart:async::Future < dart:core::int >
parameters [dart:async::Future < dart:core::int* >* 'a', dart:async::Future < dart:core::int* >* 'b', dart:async::Future < dart:core::int* >* 'c'] (required: 3)
return-type dart:async::Future < dart:core::int* >*
Bytecode {
Entry 4
@ -1023,7 +1023,7 @@ Bytecode {
}
ConstantPool {
[0] = Class dart:async::_AsyncAwaitCompleter
[1] = ObjectRef < dart:core::int >
[1] = ObjectRef < dart:core::int* >
[2] = DirectCall 'dart:async::_AsyncAwaitCompleter:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = ClosureFunction 0
@ -1033,7 +1033,7 @@ ConstantPool {
[8] = DirectCall 'dart:async::_awaitHelper', ArgDesc num-args 4, num-type-args 0, names []
[9] = Reserved
[10] = Type dynamic
[11] = Type dart:core::Error
[11] = Type dart:core::Error*
[12] = InterfaceCall 'dart:core::Object::_simpleInstanceOf', ArgDesc num-args 2, num-type-args 0, names []
[13] = Reserved
[14] = ObjectRef 'fin'
@ -1480,7 +1480,7 @@ L1:
Function 'closure', static, reflectable, debuggable
parameters [dart:async::Future < dart:core::int > 'a'] (required: 1)
parameters [dart:async::Future < dart:core::int* >* 'a'] (required: 1)
return-type dynamic
Bytecode {
@ -1517,7 +1517,7 @@ ConstantPool {
[1] = InstanceField dart:core::_Closure::_context (field)
[2] = Reserved
[3] = Class dart:async::_AsyncAwaitCompleter
[4] = ObjectRef < dart:core::int >
[4] = ObjectRef < dart:core::int* >
[5] = DirectCall 'dart:async::_AsyncAwaitCompleter:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[6] = Reserved
[7] = ClosureFunction 1
@ -1549,7 +1549,7 @@ ConstantPool {
[33] = Reserved
[34] = EndClosureFunctionScope
}
Closure #lib::closure::'nested' async () -> dart:async::Future < dart:core::int >
Closure #lib::closure::'nested' async () -> dart:async::Future < dart:core::int* >*
ClosureCode {
EntryFixed 1, 4
Push FP[-5]
@ -1776,8 +1776,8 @@ L1:
Function 'testAssert', static, reflectable, async
parameters [dart:async::Future < dart:core::int > 'a'] (required: 1)
return-type dart:async::Future < dart:core::int >
parameters [dart:async::Future < dart:core::int* >* 'a'] (required: 1)
return-type dart:async::Future < dart:core::int* >*
Bytecode {
Entry 4
@ -1842,7 +1842,7 @@ Bytecode {
}
ConstantPool {
[0] = Class dart:async::_AsyncAwaitCompleter
[1] = ObjectRef < dart:core::int >
[1] = ObjectRef < dart:core::int* >
[2] = DirectCall 'dart:async::_AsyncAwaitCompleter:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
[4] = ClosureFunction 0

View file

@ -9,23 +9,23 @@ Library '#lib'
Class '', script = '#lib'
Field '_stdinFD', type = dart:core::int, reflectable, static, has-initializer
Field '_stdinFD', type = dart:core::int*, reflectable, static, has-initializer
value = const 0
Field '_stdoutFD', type = dart:core::int, reflectable, static, has-initializer
Field '_stdoutFD', type = dart:core::int*, reflectable, static, has-initializer
value = const 1
Field '_stderrFD', type = dart:core::int, reflectable, static, has-initializer
Field '_stderrFD', type = dart:core::int*, reflectable, static, has-initializer
value = const 2
Field '_rawScript', type = dart:core::String, reflectable, static
Field '_rawScript', type = dart:core::String*, reflectable, static
value = null
Field '_stdin', type = #lib::Stdin, reflectable, static
Field '_stdin', type = #lib::Stdin*, reflectable, static
value = null
Function '_printString', static, reflectable, debuggable, native 'Builtin_PrintString'
parameters [dart:core::String 's'] (required: 1)
parameters [dart:core::String* 's'] (required: 1)
return-type void
Bytecode {
@ -78,7 +78,7 @@ ConstantPool {
Function '_setScheduleImmediateClosure', static, reflectable, debuggable
parameters [FunctionType (FunctionType () -> void) -> void 'closure'] (required: 1)
parameters [FunctionType (FunctionType ()* -> void)* -> void 'closure'] (required: 1)
return-type void
Bytecode {
@ -95,7 +95,7 @@ ConstantPool {
Function '_setStdioFDs', static, reflectable, debuggable
parameters [dart:core::int 'stdin', dart:core::int 'stdout', dart:core::int 'stderr'] (required: 3)
parameters [dart:core::int* 'stdin', dart:core::int* 'stdout', dart:core::int* 'stderr'] (required: 3)
return-type void
Bytecode {
@ -119,7 +119,7 @@ ConstantPool {
Function '_scriptUri', static, reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::Uri
return-type dart:core::Uri*
Bytecode {
Entry 2
@ -191,7 +191,7 @@ ConstantPool {
Function 'get:stdin', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::Stdin
return-type #lib::Stdin*
Bytecode {
Entry 2
@ -236,14 +236,14 @@ ConstantPool {
}
Class '_ScheduleImmediate', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Field '_closure', type = FunctionType (FunctionType () -> void) -> void, reflectable, static, has-initializer
Field '_closure', type = FunctionType (FunctionType ()* -> void)* -> void, reflectable, static, has-initializer
value = null
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::_ScheduleImmediate
return-type #lib::_ScheduleImmediate*
Bytecode {
Entry 0
@ -262,53 +262,53 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class '_NamespaceImpl', script = '#lib'
extends dart:core::Object
implements [#lib::_Namespace]
extends dart:core::Object*
implements [#lib::_Namespace*]
Field '_cachedNamespace', type = #lib::_NamespaceImpl, reflectable, static, has-initializer
Field '_cachedNamespace', type = #lib::_NamespaceImpl*, reflectable, static, has-initializer
value = null
Function '_', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::_NamespaceImpl
return-type #lib::_NamespaceImpl*
Bytecode {
Entry 0
@ -326,8 +326,8 @@ ConstantPool {
Function '_create', static, reflectable, debuggable, native 'Namespace_Create'
parameters [#lib::_NamespaceImpl 'namespace', dynamic 'n'] (required: 2)
return-type #lib::_NamespaceImpl
parameters [#lib::_NamespaceImpl* 'namespace', dynamic 'n'] (required: 2)
return-type #lib::_NamespaceImpl*
Bytecode {
Entry 0
@ -343,8 +343,8 @@ ConstantPool {
Function '_getPointer', static, reflectable, debuggable, native 'Namespace_GetPointer'
parameters [#lib::_NamespaceImpl 'namespace'] (required: 1)
return-type dart:core::int
parameters [#lib::_NamespaceImpl* 'namespace'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 0
@ -360,7 +360,7 @@ ConstantPool {
Function '_getDefault', static, reflectable, debuggable, native 'Namespace_GetDefault'
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Bytecode {
Entry 0
@ -403,7 +403,7 @@ ConstantPool {
Function 'get:_namespace', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::_NamespaceImpl
return-type #lib::_NamespaceImpl*
Bytecode {
Entry 2
@ -436,7 +436,7 @@ ConstantPool {
Function 'get:_namespacePointer', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Bytecode {
Entry 0
@ -455,50 +455,50 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class '_Namespace', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::_Namespace
return-type #lib::_Namespace*
Bytecode {
Entry 0
@ -536,7 +536,7 @@ ConstantPool {
Function 'get:_namespace', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::_Namespace
return-type #lib::_Namespace*
Bytecode {
Entry 0
@ -552,7 +552,7 @@ ConstantPool {
Function 'get:_namespacePointer', getter, static, reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Bytecode {
Entry 0
@ -568,45 +568,45 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'VMLibraryHooks', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Field 'timerFactory', type = dynamic, reflectable, static, has-initializer
value = null
@ -643,7 +643,7 @@ Field '_cachedScript', type = dynamic, reflectable, static, has-initializer
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::VMLibraryHooks
return-type #lib::VMLibraryHooks*
Bytecode {
Entry 0
@ -708,50 +708,50 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'Stdin', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::Stdin
return-type #lib::Stdin*
Bytecode {
Entry 0
@ -770,50 +770,50 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class '_StdIOUtils', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::_StdIOUtils
return-type #lib::_StdIOUtils*
Bytecode {
Entry 0
@ -831,8 +831,8 @@ ConstantPool {
Function '_getStdioInputStream', static, reflectable, debuggable
parameters [dart:core::int 'fd'] (required: 1)
return-type #lib::Stdin
parameters [dart:core::int* 'fd'] (required: 1)
return-type #lib::Stdin*
Bytecode {
Entry 0
@ -846,43 +846,43 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
}
]library #lib from "#lib" as #lib {

File diff suppressed because it is too large Load diff

View file

@ -24,26 +24,26 @@ ConstantPool {
}
Class 'A', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Field 'foo1', type = dart:core::int, getter = 'get:foo1', setter = 'set:foo1', reflectable
Field 'foo1', type = dart:core::int*, getter = 'get:foo1', setter = 'set:foo1', reflectable
value = null
Field 'foo2', type = dart:core::int, getter = 'get:foo2', setter = 'set:foo2', reflectable, has-initializer
Field 'foo2', type = dart:core::int*, getter = 'get:foo2', setter = 'set:foo2', reflectable, has-initializer
value = null
Field 'foo3', type = dart:core::int, getter = 'get:foo3', setter = 'set:foo3', reflectable, has-initializer
Field 'foo3', type = dart:core::int*, getter = 'get:foo3', setter = 'set:foo3', reflectable, has-initializer
value = const 42
Field 'foo4', type = dart:core::int, getter = 'get:foo4', setter = 'set:foo4', reflectable
Field 'foo4', type = dart:core::int*, getter = 'get:foo4', setter = 'set:foo4', reflectable
value = null
Field 'foo5', type = dart:core::int, getter = 'get:foo5', setter = 'set:foo5', reflectable, has-initializer
Field 'foo5', type = dart:core::int*, getter = 'get:foo5', setter = 'set:foo5', reflectable, has-initializer
value = const 43
Function '', constructor, reflectable, debuggable
parameters [dart:core::int 'foo4'] (required: 1)
return-type #lib::A
parameters [dart:core::int* 'foo4'] (required: 1)
return-type #lib::A*
Bytecode {
Entry 0
@ -79,8 +79,8 @@ ConstantPool {
Function 'constr2', constructor, reflectable, debuggable
parameters [dart:core::int 'x', dart:core::int 'y'] (required: 2)
return-type #lib::A
parameters [dart:core::int* 'x', dart:core::int* 'y'] (required: 2)
return-type #lib::A*
Bytecode {
Entry 0
@ -119,7 +119,7 @@ ConstantPool {
Function 'redirecting1', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::A
return-type #lib::A*
Bytecode {
Entry 0
@ -138,8 +138,8 @@ ConstantPool {
Function 'redirecting2', constructor, reflectable, debuggable
parameters [dart:core::int 'a', dart:core::int 'b', dart:core::int 'c'] (required: 3)
return-type #lib::A
parameters [dart:core::int* 'a', dart:core::int* 'b', dart:core::int* 'c'] (required: 3)
return-type #lib::A*
Bytecode {
Entry 0
@ -162,58 +162,58 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'B', script = '#lib'
extends #lib::A
extends #lib::A*
Field 'foo6', type = dart:core::int, getter = 'get:foo6', setter = 'set:foo6', reflectable, has-initializer
Field 'foo6', type = dart:core::int*, getter = 'get:foo6', setter = 'set:foo6', reflectable, has-initializer
value = const 46
Field 'foo7', type = dart:core::int, reflectable, static, has-initializer
Field 'foo7', type = dart:core::int*, reflectable, static, has-initializer
value = const 47
Field 'foo8', type = dart:core::int, reflectable, static, const, final, has-initializer
Field 'foo8', type = dart:core::int*, reflectable, static, const, final, has-initializer
value = const 48
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::B
return-type #lib::B*
Bytecode {
Entry 0
@ -237,8 +237,8 @@ ConstantPool {
Function 'c2', constructor, reflectable, debuggable
parameters [dart:core::int 'i', dart:core::int 'j'] (required: 2)
return-type #lib::B
parameters [dart:core::int* 'i', dart:core::int* 'j'] (required: 2)
return-type #lib::B*
Bytecode {
Entry 0

View file

@ -62,19 +62,19 @@ Bytecode {
}
ConstantPool {
[0] = Class #lib::A
[1] = ObjectRef < dart:core::int, dart:core::String >
[1] = ObjectRef < dart:core::int*, dart:core::String* >
[2] = ObjectRef 'hi'
[3] = DirectCall '#lib::A:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[4] = Reserved
[5] = Class #lib::B
[6] = ObjectRef < dart:core::List < dart:core::int >, dart:core::String, dart:core::int >
[6] = ObjectRef < dart:core::List < dart:core::int* >*, dart:core::String*, dart:core::int* >
[7] = DirectCall '#lib::B:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
}
Function 'foo3', static, reflectable, debuggable
type-params <dart:core::Object T>
type-params <dart:core::Object* T>
parameters [] (required: 0)
return-type void
@ -97,7 +97,7 @@ Bytecode {
}
ConstantPool {
[0] = Class #lib::B
[1] = ObjectRef < dart:core::List < dart:core::List < #lib::foo3::TypeParam/0 > >, dart:core::String, dart:core::List < #lib::foo3::TypeParam/0 > >
[1] = ObjectRef < dart:core::List < dart:core::List < #lib::foo3::TypeParam/0* >* >*, dart:core::String*, dart:core::List < #lib::foo3::TypeParam/0* >* >
[2] = DirectCall '#lib::B:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
}
@ -117,7 +117,7 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int, dart:core::List < dart:core::String > >
[0] = ObjectRef < dart:core::int*, dart:core::List < dart:core::String* >* >
[1] = DirectCall '#lib::G::test_factory (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
}
@ -161,14 +161,14 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::String >
[0] = ObjectRef < dart:core::String* >
[1] = DirectCall 'dart:core::_GrowableList:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[2] = Reserved
}
Function 'foo7', static, reflectable, debuggable
parameters [dart:core::int 'n'] (required: 1)
parameters [dart:core::int* 'n'] (required: 1)
return-type dynamic
Bytecode {
@ -180,7 +180,7 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int >
[0] = ObjectRef < dart:core::int* >
[1] = DirectCall 'dart:core::_List:: (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[2] = Reserved
}
@ -208,24 +208,24 @@ ConstantPool {
[1] = Reserved
[2] = DirectCall '#lib::foo2', ArgDesc num-args 0, num-type-args 0, names []
[3] = Reserved
[4] = ObjectRef < dart:core::String >
[4] = ObjectRef < dart:core::String* >
[5] = DirectCall '#lib::foo3', ArgDesc num-args 0, num-type-args 1, names []
[6] = Reserved
}
Class 'Base', script = '#lib'
type-params <dart:core::Object T1, dart:core::Object T2> (args: 2)
extends dart:core::Object
type-params <dart:core::Object* T1, dart:core::Object* T2> (args: 2)
extends dart:core::Object*
Field 't1', type = #lib::Base::TypeParam/0, getter = 'get:t1', setter = 'set:t1', reflectable, has-initializer
Field 't1', type = #lib::Base::TypeParam/0*, getter = 'get:t1', setter = 'set:t1', reflectable, has-initializer
value = null
Field 't2', type = #lib::Base::TypeParam/1, getter = 'get:t2', setter = 'set:t2', reflectable, has-initializer
Field 't2', type = #lib::Base::TypeParam/1*, getter = 'get:t2', setter = 'set:t2', reflectable, has-initializer
value = null
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::Base < #lib::Base::TypeParam/0, #lib::Base::TypeParam/1 >
return-type #lib::Base < #lib::Base::TypeParam/0*, #lib::Base::TypeParam/1* >*
Bytecode {
Entry 1
@ -270,10 +270,10 @@ ConstantPool {
[0] = DirectCall 'dart:core::Object:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = ObjectRef 'Base: '
[3] = Type #lib::Base::TypeParam/0
[3] = Type #lib::Base::TypeParam/0*
[4] = TypeArgumentsField #lib::Base
[5] = ObjectRef ', '
[6] = Type #lib::Base::TypeParam/1
[6] = Type #lib::Base::TypeParam/1*
[7] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
[9] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
@ -283,50 +283,50 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'A', script = '#lib'
extends #lib::Base < dart:core::int, dart:core::String >
extends #lib::Base < dart:core::int*, dart:core::String* >*
Function '', constructor, reflectable, debuggable
parameters [dart:core::String 's'] (required: 1)
return-type #lib::A < dart:core::int, dart:core::String >
parameters [dart:core::String* 's'] (required: 1)
return-type #lib::A < dart:core::int*, dart:core::String* >*
Bytecode {
Entry 0
@ -343,13 +343,13 @@ ConstantPool {
}
Class 'B', script = '#lib'
type-params <dart:core::Object T> (args: 3)
extends #lib::Base < dart:core::List < #lib::B::TypeParam/0 >, dart:core::String >
type-params <dart:core::Object* T> (args: 3)
extends #lib::Base < dart:core::List < #lib::B::TypeParam/0* >*, dart:core::String* >*
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::B < dart:core::List < #lib::B::TypeParam/0 >, dart:core::String, #lib::B::TypeParam/0 >
return-type #lib::B < dart:core::List < #lib::B::TypeParam/0* >*, dart:core::String*, #lib::B::TypeParam/0* >*
Bytecode {
Entry 1
@ -382,7 +382,7 @@ ConstantPool {
[0] = DirectCall '#lib::Base:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = ObjectRef 'B: '
[3] = Type #lib::B::TypeParam/0
[3] = Type #lib::B::TypeParam/0*
[4] = TypeArgumentsField #lib::B
[5] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names []
[6] = Reserved
@ -391,12 +391,12 @@ ConstantPool {
}
Class 'C', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Function '', constructor, reflectable, debuggable
parameters [dart:core::String 's'] (required: 1)
return-type #lib::C
parameters [dart:core::String* 's'] (required: 1)
return-type #lib::C*
Bytecode {
Entry 1
@ -435,51 +435,51 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'E', script = '#lib'
type-params <dart:core::Object K, dart:core::Object V> (args: 2)
extends dart:core::Object
type-params <dart:core::Object* K, dart:core::Object* V> (args: 2)
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::E < #lib::E::TypeParam/0, #lib::E::TypeParam/1 >
return-type #lib::E < #lib::E::TypeParam/0*, #lib::E::TypeParam/1* >*
Bytecode {
Entry 0
@ -517,51 +517,51 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'F', script = '#lib'
type-params <dart:core::Object K, dart:core::Object V> (args: 4)
extends #lib::E < dart:core::String, dart:core::List < #lib::F::TypeParam/1 > >
type-params <dart:core::Object* K, dart:core::Object* V> (args: 4)
extends #lib::E < dart:core::String*, dart:core::List < #lib::F::TypeParam/1* >* >*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::F < dart:core::String, dart:core::List < #lib::F::TypeParam/1 >, #lib::F::TypeParam/0, #lib::F::TypeParam/1 >
return-type #lib::F < dart:core::String*, dart:core::List < #lib::F::TypeParam/1* >*, #lib::F::TypeParam/0*, #lib::F::TypeParam/1* >*
Bytecode {
Entry 0
@ -597,13 +597,13 @@ ConstantPool {
}
Class 'G', script = '#lib'
type-params <dart:core::Object K, dart:core::Object V> (args: 2)
extends dart:core::Object
type-params <dart:core::Object* K, dart:core::Object* V> (args: 2)
extends dart:core::Object*
Function '', constructor, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::G < #lib::G::TypeParam/0, #lib::G::TypeParam/1 >
return-type #lib::G < #lib::G::TypeParam/0*, #lib::G::TypeParam/1* >*
Bytecode {
Entry 0
@ -621,9 +621,9 @@ ConstantPool {
Function 'test_factory', factory, static, reflectable, debuggable
type-params <dart:core::Object K, dart:core::Object V>
type-params <dart:core::Object* K, dart:core::Object* V>
parameters [] (required: 0)
return-type #lib::G < #lib::G::test_factory (constructor)::TypeParam/0, #lib::G::test_factory (constructor)::TypeParam/1 >
return-type #lib::G < #lib::G::test_factory (constructor)::TypeParam/0*, #lib::G::test_factory (constructor)::TypeParam/1* >*
Bytecode {
Entry 1
@ -641,7 +641,7 @@ Bytecode {
}
ConstantPool {
[0] = Class #lib::H
[1] = ObjectRef < #lib::G::test_factory (constructor)::TypeParam/0, #lib::G::test_factory (constructor)::TypeParam/1, dart:core::String, #lib::G::test_factory (constructor)::TypeParam/0, #lib::G::test_factory (constructor)::TypeParam/1 >
[1] = ObjectRef < #lib::G::test_factory (constructor)::TypeParam/0*, #lib::G::test_factory (constructor)::TypeParam/1*, dart:core::String*, #lib::G::test_factory (constructor)::TypeParam/0*, #lib::G::test_factory (constructor)::TypeParam/1* >
[2] = DirectCall '#lib::H:: (constructor)', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved
}
@ -649,51 +649,51 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'H', script = '#lib'
type-params <dart:core::Object P1, dart:core::Object P2, dart:core::Object P3> (args: 5)
extends #lib::G < #lib::H::TypeParam/1, #lib::H::TypeParam/2 >
type-params <dart:core::Object* P1, dart:core::Object* P2, dart:core::Object* P3> (args: 5)
extends #lib::G < #lib::H::TypeParam/1*, #lib::H::TypeParam/2* >*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::H < #lib::H::TypeParam/1, #lib::H::TypeParam/2, #lib::H::TypeParam/0, #lib::H::TypeParam/1, #lib::H::TypeParam/2 >
return-type #lib::H < #lib::H::TypeParam/1*, #lib::H::TypeParam/2*, #lib::H::TypeParam/0*, #lib::H::TypeParam/1*, #lib::H::TypeParam/2* >*
Bytecode {
Entry 0
@ -710,12 +710,12 @@ ConstantPool {
}
Class 'I', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Function '', constructor, reflectable, debuggable
parameters [dynamic 'param'] (required: 1)
return-type #lib::I
return-type #lib::I*
Bytecode {
Entry 0
@ -734,7 +734,7 @@ ConstantPool {
Function 'test_factory2', factory, static, has-optional-named-params, reflectable, debuggable
parameters [dynamic 'param'] (required: 0)
return-type #lib::I
return-type #lib::I*
Bytecode {
EntryOptional 1, 0, 1
@ -761,50 +761,50 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'J', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Function '', factory, static, reflectable, debuggable, native 'agent_J'
parameters [] (required: 0)
return-type #lib::J
return-type #lib::J*
Bytecode {
Entry 0
@ -820,52 +820,52 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'K', script = '#lib', abstract
type-params <dart:core::Object A, dart:core::Object B> (args: 2)
extends dart:core::Object
type-params <dart:core::Object* A, dart:core::Object* B> (args: 2)
extends dart:core::Object*
Function '', factory, static, reflectable, debuggable
type-params <dart:core::Object A, dart:core::Object B>
type-params <dart:core::Object* A, dart:core::Object* B>
parameters [] (required: 0)
return-type #lib::K < #lib::K:: (constructor)::TypeParam/0, #lib::K:: (constructor)::TypeParam/1 >
return-type #lib::K < #lib::K:: (constructor)::TypeParam/0*, #lib::K:: (constructor)::TypeParam/1* >*
Bytecode {
Entry 1
@ -888,52 +888,52 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'TestTypeArgReuse', script = '#lib'
type-params <dart:core::Object P, dart:core::Object Q> (args: 2)
extends #lib::Base < #lib::TestTypeArgReuse::TypeParam/0, #lib::TestTypeArgReuse::TypeParam/1 >
implements [#lib::K < #lib::TestTypeArgReuse::TypeParam/0, #lib::TestTypeArgReuse::TypeParam/1 >]
type-params <dart:core::Object* P, dart:core::Object* Q> (args: 2)
extends #lib::Base < #lib::TestTypeArgReuse::TypeParam/0*, #lib::TestTypeArgReuse::TypeParam/1* >*
implements [#lib::K < #lib::TestTypeArgReuse::TypeParam/0*, #lib::TestTypeArgReuse::TypeParam/1* >*]
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::TestTypeArgReuse < #lib::TestTypeArgReuse::TypeParam/0, #lib::TestTypeArgReuse::TypeParam/1 >
return-type #lib::TestTypeArgReuse < #lib::TestTypeArgReuse::TypeParam/0*, #lib::TestTypeArgReuse::TypeParam/1* >*
Bytecode {
Entry 0

View file

@ -9,7 +9,7 @@ Library '#lib'
Class '', script = '#lib'
Field 'c1', type = #lib::A, getter = 'get:c1', reflectable, static, const, final, has-initializer
Field 'c1', type = #lib::A*, getter = 'get:c1', reflectable, static, const, final, has-initializer
initializer
Bytecode {
Entry 0
@ -18,17 +18,17 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const #lib::A {#lib::A::index (field): const 2, #lib::A::_name (field): 'A.elem3'}
[0] = ObjectRef const #lib::A* {#lib::A::index (field): const 2, #lib::A::_name (field): 'A.elem3'}
}
Field 'c2', type = dart:core::String, reflectable, static, const, final, has-initializer
Field 'c2', type = dart:core::String*, reflectable, static, const, final, has-initializer
value = 'hello!'
Field 'c3', type = dart:core::int, reflectable, static, const, final, has-initializer
Field 'c3', type = dart:core::int*, reflectable, static, const, final, has-initializer
value = const 6
Field 'c4', type = #lib::C, getter = 'get:c4', reflectable, static, const, final, has-initializer
Field 'c4', type = #lib::C*, getter = 'get:c4', reflectable, static, const, final, has-initializer
initializer
Bytecode {
Entry 0
@ -37,11 +37,11 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const #lib::C {#lib::C::j (field): const 3, #lib::B::i (field): const 15}
[0] = ObjectRef const #lib::C* {#lib::C::j (field): const 3, #lib::B::i (field): const 15}
}
Field 'c5', type = #lib::D, getter = 'get:c5', reflectable, static, const, final, has-initializer
Field 'c5', type = #lib::D*, getter = 'get:c5', reflectable, static, const, final, has-initializer
initializer
Bytecode {
Entry 0
@ -50,11 +50,11 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const #lib::D {#lib::D::x (field): const #lib::B {#lib::B::i (field): const 4}, #lib::D::y (field): null}
[0] = ObjectRef const #lib::D* {#lib::D::x (field): const #lib::B* {#lib::B::i (field): const 4}, #lib::D::y (field): null}
}
Field 'fieldWithDoubleLiteralInitializer', type = dart:core::double, reflectable, static, has-initializer
Field 'fieldWithDoubleLiteralInitializer', type = dart:core::double*, reflectable, static, has-initializer
value = const 1.0
Function 'test_constants1', static, reflectable, debuggable
@ -83,12 +83,12 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const #lib::A {#lib::A::index (field): const 2, #lib::A::_name (field): 'A.elem3'}
[0] = ObjectRef const #lib::A* {#lib::A::index (field): const 2, #lib::A::_name (field): 'A.elem3'}
[1] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
[3] = ObjectRef 'hello!'
[4] = ObjectRef const #lib::C {#lib::C::j (field): const 3, #lib::B::i (field): const 15}
[5] = ObjectRef const #lib::D {#lib::D::x (field): const #lib::B {#lib::B::i (field): const 4}, #lib::D::y (field): null}
[4] = ObjectRef const #lib::C* {#lib::C::j (field): const 3, #lib::B::i (field): const 15}
[5] = ObjectRef const #lib::D* {#lib::D::x (field): const #lib::B* {#lib::B::i (field): const 4}, #lib::D::y (field): null}
}
@ -124,15 +124,15 @@ ConstantPool {
[0] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved
[2] = ObjectRef 'foo'
[3] = ObjectRef const #lib::A {#lib::A::index (field): const 1, #lib::A::_name (field): 'A.elem2'}
[4] = ObjectRef const <dart:core::Object> [const 42, 'foo', dart:core::int]
[5] = ObjectRef const dart:core::_ImmutableMap < dart:core::String, #lib::A > {dart:core::_ImmutableMap::_kvPairs (field): const <dynamic> ['E2', const #lib::A {#lib::A::index (field): const 1, #lib::A::_name (field): 'A.elem2'}, 'E4', const #lib::A {#lib::A::index (field): const 3, #lib::A::_name (field): 'A.elem4'}]}
[6] = ObjectRef const #lib::D {#lib::D::x (field): const #lib::C {#lib::C::j (field): const 9, #lib::B::i (field): const 30}, #lib::D::y (field): const dart:core::_ImmutableMap < dart:core::String, dart:core::Object > {dart:core::_ImmutableMap::_kvPairs (field): const <dynamic> ['foo', const 42, 'bar', const #lib::B {#lib::B::i (field): const 6}]}}
[3] = ObjectRef const #lib::A* {#lib::A::index (field): const 1, #lib::A::_name (field): 'A.elem2'}
[4] = ObjectRef const <dart:core::Object*> [const 42, 'foo', dart:core::int*]
[5] = ObjectRef const dart:core::_ImmutableMap < dart:core::String*, #lib::A* >* {dart:core::_ImmutableMap::_kvPairs (field): const <dynamic> ['E2', const #lib::A* {#lib::A::index (field): const 1, #lib::A::_name (field): 'A.elem2'}, 'E4', const #lib::A* {#lib::A::index (field): const 3, #lib::A::_name (field): 'A.elem4'}]}
[6] = ObjectRef const #lib::D* {#lib::D::x (field): const #lib::C* {#lib::C::j (field): const 9, #lib::B::i (field): const 30}, #lib::D::y (field): const dart:core::_ImmutableMap < dart:core::String*, dart:core::Object* >* {dart:core::_ImmutableMap::_kvPairs (field): const <dynamic> ['foo', const 42, 'bar', const #lib::B* {#lib::B::i (field): const 6}]}}
}
Function 'test_list_literal', static, reflectable, debuggable
parameters [dart:core::int 'a'] (required: 1)
parameters [dart:core::int* 'a'] (required: 1)
return-type void
Bytecode {
@ -185,12 +185,12 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int >
[0] = ObjectRef < dart:core::int* >
[1] = DirectCall 'dart:core::List::_fromLiteral (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[2] = Reserved
[3] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[4] = Reserved
[5] = ObjectRef < dart:core::String >
[5] = ObjectRef < dart:core::String* >
[6] = ObjectRef 'a'
[7] = InterfaceCall 'dart:core::int::toString', ArgDesc num-args 1, num-type-args 0, names []
[8] = Reserved
@ -199,8 +199,8 @@ ConstantPool {
Function 'test_map_literal', static, reflectable, debuggable
type-params <dart:core::Object T>
parameters [dart:core::int 'a', dart:core::int 'b', #lib::test_map_literal::TypeParam/0 'c'] (required: 3)
type-params <dart:core::Object* T>
parameters [dart:core::int* 'a', dart:core::int* 'b', #lib::test_map_literal::TypeParam/0* 'c'] (required: 3)
return-type void
Bytecode {
@ -285,19 +285,19 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int, dart:core::int >
[0] = ObjectRef < dart:core::int*, dart:core::int* >
[1] = ObjectRef < dynamic >
[2] = DirectCall 'dart:core::Map::_fromLiteral (constructor)', ArgDesc num-args 2, num-type-args 0, names []
[3] = Reserved
[4] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[5] = Reserved
[6] = ObjectRef < dart:core::String, dart:core::int >
[6] = ObjectRef < dart:core::String*, dart:core::int* >
[7] = ObjectRef 'foo'
[8] = InterfaceCall 'dart:core::int::toString', ArgDesc num-args 1, num-type-args 0, names []
[9] = Reserved
[10] = ObjectRef < dart:core::String, #lib::test_map_literal::TypeParam/0 >
[10] = ObjectRef < dart:core::String*, #lib::test_map_literal::TypeParam/0* >
[11] = ObjectRef const <dynamic> []
[12] = ObjectRef < #lib::test_map_literal::TypeParam/0, dart:core::int >
[12] = ObjectRef < #lib::test_map_literal::TypeParam/0*, dart:core::int* >
}
@ -326,7 +326,7 @@ ConstantPool {
Function 'test_type_literal', static, reflectable, debuggable
type-params <dart:core::Object T>
type-params <dart:core::Object* T>
parameters [] (required: 0)
return-type void
@ -346,10 +346,10 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = Type dart:core::String
[0] = Type dart:core::String*
[1] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
[3] = Type #lib::test_type_literal::TypeParam/0
[3] = Type #lib::test_type_literal::TypeParam/0*
}
@ -364,7 +364,7 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const #lib::F < dart:core::Map < dart:core::int, dart:core::String >, dart:core::int, dart:core::String > {}
[0] = ObjectRef const #lib::F < dart:core::Map < dart:core::int*, dart:core::String* >*, dart:core::int*, dart:core::String* >* {}
}
@ -379,7 +379,7 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = Type FunctionType <dart:core::Object X> (null::TypeParam/0) -> null::TypeParam/0
[0] = Type FunctionType <dart:core::Object* X> (null::TypeParam/0*)* -> null::TypeParam/0*
}
@ -412,15 +412,15 @@ ConstantPool {
}
Class 'A', script = '#lib', enum
extends dart:core::Object
extends dart:core::Object*
Field 'index', type = dart:core::int, getter = 'get:index', reflectable, final
Field 'index', type = dart:core::int*, getter = 'get:index', reflectable, final
value = null
Field '_name', type = dart:core::String, getter = 'get:_name', reflectable, final
Field '_name', type = dart:core::String*, getter = 'get:_name', reflectable, final
value = null
Field 'values', type = dart:core::List < #lib::A >, getter = 'get:values', reflectable, static, const, final, has-initializer
Field 'values', type = dart:core::List < #lib::A* >*, getter = 'get:values', reflectable, static, const, final, has-initializer
initializer
Bytecode {
Entry 0
@ -429,11 +429,11 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const <#lib::A> [const #lib::A {#lib::A::index (field): const 0, #lib::A::_name (field): 'A.elem1'}, const #lib::A {#lib::A::index (field): const 1, #lib::A::_name (field): 'A.elem2'}, const #lib::A {#lib::A::index (field): const 2, #lib::A::_name (field): 'A.elem3'}, const #lib::A {#lib::A::index (field): const 3, #lib::A::_name (field): 'A.elem4'}]
[0] = ObjectRef const <#lib::A*> [const #lib::A* {#lib::A::index (field): const 0, #lib::A::_name (field): 'A.elem1'}, const #lib::A* {#lib::A::index (field): const 1, #lib::A::_name (field): 'A.elem2'}, const #lib::A* {#lib::A::index (field): const 2, #lib::A::_name (field): 'A.elem3'}, const #lib::A* {#lib::A::index (field): const 3, #lib::A::_name (field): 'A.elem4'}]
}
Field 'elem1', type = #lib::A, getter = 'get:elem1', reflectable, static, const, final, has-initializer
Field 'elem1', type = #lib::A*, getter = 'get:elem1', reflectable, static, const, final, has-initializer
initializer
Bytecode {
Entry 0
@ -442,11 +442,11 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const #lib::A {#lib::A::index (field): const 0, #lib::A::_name (field): 'A.elem1'}
[0] = ObjectRef const #lib::A* {#lib::A::index (field): const 0, #lib::A::_name (field): 'A.elem1'}
}
Field 'elem2', type = #lib::A, getter = 'get:elem2', reflectable, static, const, final, has-initializer
Field 'elem2', type = #lib::A*, getter = 'get:elem2', reflectable, static, const, final, has-initializer
initializer
Bytecode {
Entry 0
@ -455,11 +455,11 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const #lib::A {#lib::A::index (field): const 1, #lib::A::_name (field): 'A.elem2'}
[0] = ObjectRef const #lib::A* {#lib::A::index (field): const 1, #lib::A::_name (field): 'A.elem2'}
}
Field 'elem3', type = #lib::A, getter = 'get:elem3', reflectable, static, const, final, has-initializer
Field 'elem3', type = #lib::A*, getter = 'get:elem3', reflectable, static, const, final, has-initializer
initializer
Bytecode {
Entry 0
@ -468,11 +468,11 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const #lib::A {#lib::A::index (field): const 2, #lib::A::_name (field): 'A.elem3'}
[0] = ObjectRef const #lib::A* {#lib::A::index (field): const 2, #lib::A::_name (field): 'A.elem3'}
}
Field 'elem4', type = #lib::A, getter = 'get:elem4', reflectable, static, const, final, has-initializer
Field 'elem4', type = #lib::A*, getter = 'get:elem4', reflectable, static, const, final, has-initializer
initializer
Bytecode {
Entry 0
@ -481,13 +481,13 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef const #lib::A {#lib::A::index (field): const 3, #lib::A::_name (field): 'A.elem4'}
[0] = ObjectRef const #lib::A* {#lib::A::index (field): const 3, #lib::A::_name (field): 'A.elem4'}
}
Function '', constructor, const, reflectable, debuggable
parameters [dart:core::int 'index', dart:core::String '_name'] (required: 2)
return-type #lib::A
parameters [dart:core::int* 'index', dart:core::String* '_name'] (required: 2)
return-type #lib::A*
Bytecode {
Entry 0
@ -516,7 +516,7 @@ ConstantPool {
Function 'toString', reflectable, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Bytecode {
Entry 0
@ -533,48 +533,48 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'B', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Field 'i', type = dart:core::int, getter = 'get:i', reflectable, final
Field 'i', type = dart:core::int*, getter = 'get:i', reflectable, final
value = null
Function '', constructor, const, reflectable, debuggable
parameters [dart:core::int 'i'] (required: 1)
return-type #lib::B
parameters [dart:core::int* 'i'] (required: 1)
return-type #lib::B*
Bytecode {
Entry 0
@ -598,52 +598,52 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'C', script = '#lib'
extends #lib::B
extends #lib::B*
Field 'j', type = dart:core::int, getter = 'get:j', reflectable, final
Field 'j', type = dart:core::int*, getter = 'get:j', reflectable, final
value = null
Function '', constructor, const, reflectable, debuggable
parameters [dart:core::int 'a', dart:core::int 'b', dart:core::int 'c'] (required: 3)
return-type #lib::C
parameters [dart:core::int* 'a', dart:core::int* 'b', dart:core::int* 'c'] (required: 3)
return-type #lib::C*
Bytecode {
Entry 0
@ -670,7 +670,7 @@ ConstantPool {
}
Class 'D', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Field 'x', type = dynamic, getter = 'get:x', reflectable, final
value = null
@ -680,7 +680,7 @@ Field 'y', type = dynamic, getter = 'get:y', reflectable, final
Function '', constructor, const, has-optional-positional-params, reflectable, debuggable
parameters [dynamic 'x', dynamic 'y'] (required: 1)
return-type #lib::D
return-type #lib::D*
Bytecode {
EntryOptional 2, 1, 0
@ -712,51 +712,51 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'E', script = '#lib'
type-params <dart:core::Object T> (args: 1)
extends dart:core::Object
type-params <dart:core::Object* T> (args: 1)
extends dart:core::Object*
Function '', constructor, const, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::E < #lib::E::TypeParam/0 >
return-type #lib::E < #lib::E::TypeParam/0* >*
Bytecode {
Entry 0
@ -775,51 +775,51 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'F', script = '#lib'
type-params <dart:core::Object P, dart:core::Object Q> (args: 3)
extends #lib::E < dart:core::Map < #lib::F::TypeParam/0, #lib::F::TypeParam/1 > >
type-params <dart:core::Object* P, dart:core::Object* Q> (args: 3)
extends #lib::E < dart:core::Map < #lib::F::TypeParam/0*, #lib::F::TypeParam/1* >* >*
Function '', constructor, const, reflectable, debuggable
parameters [] (required: 0)
return-type #lib::F < dart:core::Map < #lib::F::TypeParam/0, #lib::F::TypeParam/1 >, #lib::F::TypeParam/0, #lib::F::TypeParam/1 >
return-type #lib::F < dart:core::Map < #lib::F::TypeParam/0*, #lib::F::TypeParam/1* >*, #lib::F::TypeParam/0*, #lib::F::TypeParam/1* >*
Bytecode {
Entry 0

View file

@ -11,8 +11,8 @@ Class '', script = '#lib'
Function 'test_for', static, reflectable, debuggable
parameters [dart:core::List < dart:core::int > 'list'] (required: 1)
return-type dart:core::int
parameters [dart:core::List < dart:core::int* >* 'list'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 2
@ -56,8 +56,8 @@ ConstantPool {
Function 'test_for_break', static, reflectable, debuggable
parameters [dart:core::List < dart:core::int > 'list'] (required: 1)
return-type dart:core::int
parameters [dart:core::List < dart:core::int* >* 'list'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 2
@ -107,8 +107,8 @@ ConstantPool {
Function 'test_for_continue', static, reflectable, debuggable
parameters [dart:core::List < dart:core::int > 'list'] (required: 1)
return-type dart:core::int
parameters [dart:core::List < dart:core::int* >* 'list'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 2
@ -160,8 +160,8 @@ ConstantPool {
Function 'test_while', static, reflectable, debuggable
parameters [dart:core::List < dart:core::int > 'list'] (required: 1)
return-type dart:core::int
parameters [dart:core::List < dart:core::int* >* 'list'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 4
@ -207,8 +207,8 @@ ConstantPool {
Function 'test_do_while', static, reflectable, debuggable
parameters [dart:core::List < dart:core::int > 'list'] (required: 1)
return-type dart:core::int
parameters [dart:core::List < dart:core::int* >* 'list'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 2
@ -249,8 +249,8 @@ ConstantPool {
Function 'test_for_in', static, reflectable, debuggable
parameters [dart:core::List < dart:core::int > 'list'] (required: 1)
return-type dart:core::int
parameters [dart:core::List < dart:core::int* >* 'list'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 3
@ -289,8 +289,8 @@ ConstantPool {
Function 'test_for_in_with_outer_var', static, reflectable, debuggable
parameters [dart:core::List < dart:core::int > 'list'] (required: 1)
return-type dart:core::int
parameters [dart:core::List < dart:core::int* >* 'list'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 4

View file

@ -177,7 +177,7 @@ ConstantPool {
[0] = ObjectRef 'a'
[1] = ObjectRef const 42
[2] = ObjectRef 'b'
[3] = ObjectRef const <dart:core::String> ['default_b']
[3] = ObjectRef const <dart:core::String*> ['default_b']
[4] = ObjectRef 'c'
[5] = ObjectRef 'default_c'
[6] = ObjectRef 'y = '
@ -193,8 +193,8 @@ ConstantPool {
Function 'foo3', static, has-optional-named-params, reflectable, debuggable
type-params <dart:core::Object P, dart:core::Object Q>
parameters [dynamic 'z', dynamic 'y', dart:core::bool 'a', dart:core::Map < #lib::foo3::TypeParam/0, #lib::foo3::TypeParam/1 > 'b'] (required: 2)
type-params <dart:core::Object* P, dart:core::Object* Q>
parameters [dynamic 'z', dynamic 'y', dart:core::bool* 'a', dart:core::Map < #lib::foo3::TypeParam/0*, #lib::foo3::TypeParam/1* >* 'b'] (required: 2)
return-type void
Bytecode {
@ -225,7 +225,7 @@ ConstantPool {
[1] = ObjectRef const false
[2] = ObjectRef 'b'
[3] = ObjectRef null
[4] = Type #lib::foo3::TypeParam/0
[4] = Type #lib::foo3::TypeParam/0*
[5] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[6] = Reserved
}

View file

@ -24,12 +24,12 @@ ConstantPool {
}
Class 'Base1', script = '#lib'
extends dart:core::Object
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::Base1
return-type #lib::Base1*
Bytecode {
Entry 0
@ -47,8 +47,8 @@ ConstantPool {
Function 'foo', reflectable, debuggable
type-params <dart:core::Object T>
parameters [#lib::Base1::foo::TypeParam/0 'a1', dart:core::int 'a2'] (required: 2)
type-params <dart:core::Object* T>
parameters [#lib::Base1::foo::TypeParam/0* 'a1', dart:core::int* 'a2'] (required: 2)
return-type void
Bytecode {
@ -77,7 +77,7 @@ ConstantPool {
Function 'set:bazz', setter, reflectable, debuggable
parameters [dart:core::int 'x'] (required: 1)
parameters [dart:core::int* 'x'] (required: 1)
return-type void
Bytecode {
@ -92,50 +92,50 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'A', script = '#lib'
extends #lib::Base1
extends #lib::Base1*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::A
return-type #lib::A*
Bytecode {
Entry 0
@ -153,7 +153,7 @@ ConstantPool {
Function 'testSuperCall', reflectable, debuggable
parameters [dart:core::int 'x'] (required: 1)
parameters [dart:core::int* 'x'] (required: 1)
return-type dynamic
Bytecode {
@ -167,7 +167,7 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::String >
[0] = ObjectRef < dart:core::String* >
[1] = ObjectRef 'a1'
[2] = DirectCall '#lib::Base1::foo', ArgDesc num-args 3, num-type-args 1, names []
[3] = Reserved
@ -223,7 +223,7 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int >
[0] = ObjectRef < dart:core::int* >
[1] = DirectCall '#lib::Base1::get:bar', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
[3] = ObjectRef 'param'
@ -252,12 +252,12 @@ ConstantPool {
}
Class 'Base2', script = '#lib', abstract
extends dart:core::Object
extends dart:core::Object*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::Base2
return-type #lib::Base2*
Bytecode {
Entry 0
@ -275,8 +275,8 @@ ConstantPool {
Function 'foo', abstract, reflectable, debuggable
type-params <dart:core::Object T>
parameters [dart:core::String 'a1', #lib::Base2::foo::TypeParam/0 'a2', dart:core::int 'a3'] (required: 3)
type-params <dart:core::Object* T>
parameters [dart:core::String* 'a1', #lib::Base2::foo::TypeParam/0* 'a2', dart:core::int* 'a3'] (required: 3)
return-type void
Function 'get:bar', getter, abstract, reflectable, debuggable
@ -284,55 +284,55 @@ Function 'get:bar', getter, abstract, reflectable, debuggable
return-type dynamic
Function 'set:bazz', setter, abstract, reflectable, debuggable
parameters [dart:core::int 'x'] (required: 1)
parameters [dart:core::int* 'x'] (required: 1)
return-type void
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'B', script = '#lib', abstract
extends #lib::Base2
extends #lib::Base2*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::B
return-type #lib::B*
Bytecode {
Entry 0
@ -350,7 +350,7 @@ ConstantPool {
Function 'testSuperCall', reflectable, debuggable
parameters [dart:core::int 'x'] (required: 1)
parameters [dart:core::int* 'x'] (required: 1)
return-type dynamic
Bytecode {
@ -392,7 +392,7 @@ ConstantPool {
[0] = ObjectRef ArgDesc num-args 4, num-type-args 1, names []
[1] = ObjectRef 'foo'
[2] = ObjectRef < dynamic >
[3] = ObjectRef < dart:core::double >
[3] = ObjectRef < dart:core::double* >
[4] = ObjectRef 'a1'
[5] = ObjectRef const 3.14
[6] = DirectCall 'dart:core::_InvocationMirror::_allocateInvocationMirror', ArgDesc num-args 4, num-type-args 0, names []
@ -497,7 +497,7 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = ObjectRef < dart:core::int >
[0] = ObjectRef < dart:core::int* >
[1] = ObjectRef ArgDesc num-args 1, num-type-args 0, names []
[2] = ObjectRef 'bar'
[3] = ObjectRef < dynamic >

View file

@ -11,8 +11,8 @@ Class '', script = '#lib'
Function 'foo1', static, reflectable, debuggable
parameters [dart:core::int 'x'] (required: 1)
return-type dart:core::int
parameters [dart:core::int* 'x'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 2
@ -57,8 +57,8 @@ ConstantPool {
Function 'foo2', static, reflectable, debuggable
parameters [dart:core::int 'x'] (required: 1)
return-type dart:core::int
parameters [dart:core::int* 'x'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 2
@ -114,8 +114,8 @@ ConstantPool {
Function 'foo3', static, reflectable, debuggable
parameters [dart:core::int 'x'] (required: 1)
return-type dart:core::int
parameters [dart:core::int* 'x'] (required: 1)
return-type dart:core::int*
Bytecode {
Entry 2

View file

@ -184,15 +184,15 @@ ConstantPool {
[0] = ObjectRef 'danger!'
[1] = DirectCall 'dart:core::print', ArgDesc num-args 1, num-type-args 0, names []
[2] = Reserved
[3] = Type dart:core::TypeError
[3] = Type dart:core::TypeError*
[4] = InterfaceCall 'dart:core::Object::_simpleInstanceOf', ArgDesc num-args 2, num-type-args 0, names []
[5] = Reserved
[6] = ObjectRef 'caught type error'
[7] = Type dart:core::AssertionError
[7] = Type dart:core::AssertionError*
[8] = ObjectRef 'caught assertion error '
[9] = DirectCall 'dart:core::_StringBase::_interpolate', ArgDesc num-args 1, num-type-args 0, names []
[10] = Reserved
[11] = Type dart:core::Error
[11] = Type dart:core::Error*
[12] = ObjectRef 'caught error '
[13] = ObjectRef ' '
[14] = Type dynamic
@ -328,7 +328,7 @@ ConstantPool {
[18] = Reserved
[19] = ClosureFunction 1
[20] = ObjectRef 'danger bar'
[21] = Type dart:core::Error
[21] = Type dart:core::Error*
[22] = InterfaceCall 'dart:core::Object::_simpleInstanceOf', ArgDesc num-args 2, num-type-args 0, names []
[23] = Reserved
[24] = ObjectRef 'error '
@ -436,7 +436,7 @@ L1:
Function 'testRethrow', static, reflectable, debuggable
parameters [dart:core::bool 'cond'] (required: 1)
parameters [dart:core::bool* 'cond'] (required: 1)
return-type dynamic
Bytecode {
@ -582,7 +582,7 @@ ConstantPool {
Function 'testTryFinally2', static, reflectable, debuggable
parameters [dart:core::int 'x'] (required: 1)
parameters [dart:core::int* 'x'] (required: 1)
return-type dynamic
Bytecode {
@ -828,7 +828,7 @@ ConstantPool {
[15] = DynamicCall 'call', ArgDesc num-args 1, num-type-args 0, names []
[16] = Reserved
}
Closure #lib::testTryFinally3::'<anonymous closure>' () -> dart:core::int
Closure #lib::testTryFinally3::'<anonymous closure>' () -> dart:core::int*
ClosureCode {
EntryFixed 1, 6
Push FP[-5]

View file

@ -9,7 +9,7 @@ Library '#lib'
Class '', script = '#lib'
Field 'globalVar', type = dart:core::List < dart:core::Iterable null >, reflectable, static
Field 'globalVar', type = dart:core::List < dart:core::Iterable null* >*, reflectable, static
value = null
Function 'foo1', static, reflectable, debuggable
@ -46,17 +46,17 @@ L2:
ReturnTOS
}
ConstantPool {
[0] = Type #lib::B < dart:core::String >
[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 >
[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 >
[10] = Type #lib::A < dart:core::int* >*
[11] = ObjectRef ' in type cast'
[12] = SubtypeTestCache
}
@ -80,7 +80,7 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = Type dart:core::List < dart:core::Iterable null >
[0] = Type dart:core::List < dart:core::Iterable null* >*
[1] = ObjectRef ''
[2] = SubtypeTestCache
[3] = StaticField #lib::globalVar (field)
@ -101,13 +101,13 @@ ConstantPool {
}
Class 'A', script = '#lib'
type-params <dart:core::Object T> (args: 1)
extends dart:core::Object
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 >
return-type #lib::A < #lib::A::TypeParam/0* >*
Bytecode {
Entry 0
@ -126,50 +126,50 @@ ConstantPool {
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'B', script = '#lib'
extends #lib::A < dart:core::String >
extends #lib::A < dart:core::String* >*
Function '', constructor, reflectable
parameters [] (required: 0)
return-type #lib::B < dart:core::String >
return-type #lib::B < dart:core::String* >*
Bytecode {
Entry 0
@ -186,13 +186,13 @@ ConstantPool {
}
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 >
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 >
return-type #lib::C < dart:core::String*, #lib::C::TypeParam/0*, #lib::C::TypeParam/1*, #lib::C::TypeParam/2* >*
Bytecode {
Entry 0
@ -209,15 +209,15 @@ ConstantPool {
}
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 >
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
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 >
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
@ -238,7 +238,7 @@ Bytecode {
ReturnTOS
}
ConstantPool {
[0] = Type dart:core::Map < #lib::D::TypeParam/0, #lib::D::TypeParam/1 >
[0] = Type dart:core::Map < #lib::D::TypeParam/0*, #lib::D::TypeParam/1* >*
[1] = TypeArgumentsField #lib::D
[2] = ObjectRef ''
[3] = SubtypeTestCache
@ -293,15 +293,15 @@ L2:
}
ConstantPool {
[0] = TypeArgumentsField #lib::D
[1] = Type #lib::A < #lib::D::TypeParam/0 >
[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 > >
[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 >
[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 []
@ -310,7 +310,7 @@ ConstantPool {
Function 'foo3', reflectable, debuggable
type-params <dart:core::Object T1, dart:core::Object T2>
type-params <dart:core::Object* T1, dart:core::Object* T2>
parameters [dynamic 'z'] (required: 1)
return-type dynamic
@ -350,16 +350,16 @@ L2:
ReturnTOS
}
ConstantPool {
[0] = Type #lib::A < #lib::D::foo3::TypeParam/0 >
[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 >
[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 >
[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 []
@ -369,7 +369,7 @@ ConstantPool {
Function 'foo4', reflectable, debuggable
parameters [dynamic 'w'] (required: 1)
return-type dart:core::Map < #lib::D::TypeParam/0, #lib::D::TypeParam/1 >
return-type dart:core::Map < #lib::D::TypeParam/0*, #lib::D::TypeParam/1* >*
Bytecode {
Entry 2
@ -406,8 +406,8 @@ Bytecode {
}
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 >
[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 []
@ -416,14 +416,14 @@ ConstantPool {
}
Class 'E', script = '#lib'
type-params <dart:core::String P> (args: 1)
extends dart:core::Object
type-params <dart:core::String* P> (args: 1)
extends dart:core::Object*
Function '', factory, static, reflectable, debuggable
type-params <dart:core::String P>
type-params <dart:core::String* P>
parameters [] (required: 0)
return-type #lib::E < #lib::E:: (constructor)::TypeParam/0 >
return-type #lib::E < #lib::E:: (constructor)::TypeParam/0* >*
Bytecode {
Entry 0
@ -436,8 +436,8 @@ ConstantPool {
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)
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 {
@ -466,60 +466,60 @@ L2:
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
[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
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'F', script = '#lib', abstract
type-params <dart:core::Object T> (args: 1)
extends dart:core::Object
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 >
return-type #lib::F < #lib::F::TypeParam/0* >*
Bytecode {
Entry 0
@ -537,62 +537,62 @@ ConstantPool {
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)
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)
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
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
return-type dart:core::Type*
Class 'G', script = '#lib'
type-params <dart:core::Object T> (args: 1)
extends dart:core::Object
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 >
return-type #lib::G < #lib::G::TypeParam/0* >*
Bytecode {
Entry 0
@ -610,8 +610,8 @@ ConstantPool {
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)
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 {
@ -647,63 +647,63 @@ 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
[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 >
[6] = ObjectRef < #lib::G::TypeParam/0* >
}
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
return-type dart:core::bool*
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
return-type dart:core::int*
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
return-type dart:core::String*
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
parameters [dart:core::Invocation* 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
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 >]
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 >
return-type #lib::H < #lib::H::TypeParam/0* >*
Bytecode {
Entry 0
@ -721,8 +721,8 @@ ConstantPool {
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)
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 {
@ -765,21 +765,21 @@ 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
[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
[6] = Type dart:core::int*
[7] = ObjectRef 'b'
[8] = SubtypeTestCache
[9] = ObjectRef < #lib::H::TypeParam/0 >
[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)
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 {
@ -815,31 +815,34 @@ L2:
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#9, 5
UncheckedDirectCall CP#10, 5
ReturnTOS
}
Parameter flags: [0, 1, 2]
Forwarding stub target: CP#11
Default function type arguments: CP#12
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
[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
[6] = Type dart:core::int*
[7] = ObjectRef 'b'
[8] = SubtypeTestCache
[9] = DirectCall '#lib::G::foo7', ArgDesc num-args 4, num-type-args 1, names []
[10] = Reserved
[11] = ObjectRef #lib::G::foo7
[12] = ObjectRef < #lib::H::TypeParam/0 >
[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* >
}