This is a trial submit of the unfork CL, it will be reverted immediately.

This commit is being done so we can roll it into Flutter and run some device lab testing to see the effect this CL will have on Flutter.

[BUILD] - Initial CL to unfork the NNBD Dart SDK

- Flips the flag from --nnbd to --no-nnbd so that by default it builds
  the NNBD version
- using the --no-nnbd flag results in the SDK being built in a
  directory which has the 'Legacy' suffix added to it
  (e.g: out/DebugX64Legacy)
- the '--enable-experiment=non-nullable' flag still needs to be passed
  in during execution so that CFE runs in that mode. This is different
  from the 'null_safety' flag

Change-Id: I83c813aee2a5b61ad876d8a7b0988705bb24c839
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/144082
Reviewed-by: Siva Annamalai <asiva@google.com>
This commit is contained in:
asiva 2020-04-20 03:46:06 +00:00 committed by Siva Annamalai
parent 1c12bde2a9
commit 393468dc89
31 changed files with 2049 additions and 296 deletions

View file

@ -74,13 +74,13 @@ group("runtime_precompiled") {
] ]
} }
if (use_nnbd) { if (dont_use_nnbd) {
group("create_sdk") { group("create_sdk") {
public_deps = [ "sdk_nnbd:create_sdk" ] public_deps = [ "sdk:create_sdk" ]
} }
} else { } else {
group("create_sdk") { group("create_sdk") {
public_deps = [ "sdk:create_sdk" ] public_deps = [ "sdk_nnbd:create_sdk" ]
} }
} }

View file

@ -11,9 +11,7 @@ void main() {
group('migrate', defineMigrateTests, timeout: longTimeout); group('migrate', defineMigrateTests, timeout: longTimeout);
} }
// TODO(jcollins-g): Set to true and/or remove when when NNBD is enabled in the bool _nnbdIsEnabled = true;
// SDK running this test.
bool _nnbdIsEnabled = false;
void defineMigrateTests() { void defineMigrateTests() {
final didYouForgetToRunPubGet = contains('Did you forget to run "pub get"?'); final didYouForgetToRunPubGet = contains('Did you forget to run "pub get"?');

View file

@ -75,7 +75,12 @@ class SourceToSummaryDillStep implements IOModularStep {
List<String> extraArgs; List<String> extraArgs;
if (module.isSdk) { if (module.isSdk) {
sources = ['dart:core']; sources = ['dart:core'];
extraArgs = ['--libraries-file', '$rootScheme:///sdk/lib/libraries.json']; extraArgs = [
'--libraries-file',
'$rootScheme:///sdk_nnbd/lib/libraries.json',
'--enable-experiment',
'non-nullable',
];
assert(transitiveDependencies.isEmpty); assert(transitiveDependencies.isEmpty);
} else { } else {
sources = module.sources.map(sourceToImportUri).toList(); sources = module.sources.map(sourceToImportUri).toList();
@ -149,7 +154,13 @@ class DDCStep implements IOModularStep {
List<String> extraArgs; List<String> extraArgs;
if (module.isSdk) { if (module.isSdk) {
sources = ['dart:core']; sources = ['dart:core'];
extraArgs = ['--compile-sdk']; extraArgs = [
'--compile-sdk',
'--libraries-file',
'$rootScheme:///sdk_nnbd/lib/libraries.json',
'--enable-experiment',
'non-nullable',
];
assert(transitiveDependencies.isEmpty); assert(transitiveDependencies.isEmpty);
} else { } else {
var sdkModule = module.dependencies.firstWhere((m) => m.isSdk); var sdkModule = module.dependencies.firstWhere((m) => m.isSdk);
@ -229,6 +240,8 @@ class RunD8 implements IOModularStep {
var runjs = ''' var runjs = '''
import { dart, _isolate_helper } from 'dart_sdk.js'; import { dart, _isolate_helper } from 'dart_sdk.js';
import { main } from 'main.js'; import { main } from 'main.js';
// Run with weak null safety.
dart.strictSubtypeChecks(false);
_isolate_helper.startRootIsolate(() => {}, []); _isolate_helper.startRootIsolate(() => {}, []);
main.main(); main.main();
'''; ''';

View file

@ -468,15 +468,6 @@ class TestConfiguration {
var normal = '$result$arch'; var normal = '$result$arch';
var cross = '${result}X$arch'; var cross = '${result}X$arch';
// TODO(38701): When enabling the NNBD experiment, we need to use the
// forked version of the SDK core libraries that have NNBD support. Remove
// this once the forked SDK at `<repo>/sdk_nnbd` has been merged back with
// `<repo>/sdk`.
if (experiments.contains("non-nullable")) {
normal += "NNBD";
cross += "NNBD";
}
var outDir = system.outputDirectory; var outDir = system.outputDirectory;
var normalDir = Directory(Path('$outDir$normal').toNativePath()); var normalDir = Directory(Path('$outDir$normal').toNativePath());
var crossDir = Directory(Path('$outDir$cross').toNativePath()); var crossDir = Directory(Path('$outDir$cross').toNativePath());

View file

@ -259,6 +259,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class '_NamespaceImpl', script = '#lib' Class '_NamespaceImpl', script = '#lib'
extends dart:core::Object extends dart:core::Object
implements [#lib::_Namespace] implements [#lib::_Namespace]
@ -412,6 +452,46 @@ ConstantPool {
[3] = Reserved [3] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class '_Namespace', script = '#lib' Class '_Namespace', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -485,6 +565,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'VMLibraryHooks', script = '#lib' Class 'VMLibraryHooks', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -585,6 +705,46 @@ ConstantPool {
[3] = Reserved [3] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'Stdin', script = '#lib' Class 'Stdin', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -607,6 +767,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class '_StdIOUtils', script = '#lib' Class '_StdIOUtils', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -644,6 +844,46 @@ ConstantPool {
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
} }
]library #lib from "#lib" as #lib { ]library #lib from "#lib" as #lib {
@ -653,6 +893,16 @@ ConstantPool {
synthetic constructor •() → #lib::_ScheduleImmediate* synthetic constructor •() → #lib::_ScheduleImmediate*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class _NamespaceImpl extends dart.core::Object implements #lib::_Namespace { class _NamespaceImpl extends dart.core::Object implements #lib::_Namespace {
static field #lib::_NamespaceImpl* _cachedNamespace = null; static field #lib::_NamespaceImpl* _cachedNamespace = null;
@ -669,13 +919,23 @@ ConstantPool {
#lib::_NamespaceImpl::_cachedNamespace = #lib::_NamespaceImpl::_create(new #lib::_NamespaceImpl::_(), namespace); #lib::_NamespaceImpl::_cachedNamespace = #lib::_NamespaceImpl::_create(new #lib::_NamespaceImpl::_(), namespace);
} }
static get _namespace() → #lib::_NamespaceImpl* { static get _namespace() → #lib::_NamespaceImpl* {
if(#lib::_NamespaceImpl::_cachedNamespace.{dart.core::Object::==}(null)) { if(#lib::_NamespaceImpl::_cachedNamespace.{#lib::_NamespaceImpl::==}(null)) {
#lib::_NamespaceImpl::_cachedNamespace = #lib::_NamespaceImpl::_create(new #lib::_NamespaceImpl::_(), #lib::_NamespaceImpl::_getDefault()); #lib::_NamespaceImpl::_cachedNamespace = #lib::_NamespaceImpl::_create(new #lib::_NamespaceImpl::_(), #lib::_NamespaceImpl::_getDefault());
} }
return #lib::_NamespaceImpl::_cachedNamespace; return #lib::_NamespaceImpl::_cachedNamespace;
} }
static get _namespacePointer() → dart.core::int* static get _namespacePointer() → dart.core::int*
return #lib::_NamespaceImpl::_getPointer(#lib::_NamespaceImpl::_namespace); return #lib::_NamespaceImpl::_getPointer(#lib::_NamespaceImpl::_namespace);
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class _Namespace extends dart.core::Object { class _Namespace extends dart.core::Object {
synthetic constructor •() → #lib::_Namespace* synthetic constructor •() → #lib::_Namespace*
@ -688,6 +948,16 @@ ConstantPool {
return #lib::_NamespaceImpl::_namespace; return #lib::_NamespaceImpl::_namespace;
static get _namespacePointer() → dart.core::int* static get _namespacePointer() → dart.core::int*
return #lib::_NamespaceImpl::_namespacePointer; return #lib::_NamespaceImpl::_namespacePointer;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class VMLibraryHooks extends dart.core::Object { class VMLibraryHooks extends dart.core::Object {
static field dynamic timerFactory = null; static field dynamic timerFactory = null;
@ -714,11 +984,31 @@ ConstantPool {
} }
return #lib::VMLibraryHooks::_cachedScript; return #lib::VMLibraryHooks::_cachedScript;
} }
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class Stdin extends dart.core::Object { class Stdin extends dart.core::Object {
synthetic constructor •() → #lib::Stdin* synthetic constructor •() → #lib::Stdin*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class _StdIOUtils extends dart.core::Object { class _StdIOUtils extends dart.core::Object {
synthetic constructor •() → #lib::_StdIOUtils* synthetic constructor •() → #lib::_StdIOUtils*
@ -726,6 +1016,16 @@ ConstantPool {
; ;
static method _getStdioInputStream(dart.core::int* fd) → #lib::Stdin* static method _getStdioInputStream(dart.core::int* fd) → #lib::Stdin*
return null; return null;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
static field dart.core::int* _stdinFD = 0; static field dart.core::int* _stdinFD = 0;
static field dart.core::int* _stdoutFD = 1; static field dart.core::int* _stdoutFD = 1;
@ -759,7 +1059,7 @@ ConstantPool {
#lib::VMLibraryHooks::platformScript = #C10; #lib::VMLibraryHooks::platformScript = #C10;
} }
static get stdin() → #lib::Stdin* { static get stdin() → #lib::Stdin* {
#lib::_stdin.{dart.core::Object::==}(null) ?{#lib::Stdin*} #lib::_stdin = #lib::_StdIOUtils::_getStdioInputStream(#lib::_stdinFD) : null; #lib::_stdin.{#lib::Stdin::==}(null) ?{#lib::Stdin*} #lib::_stdin = #lib::_StdIOUtils::_getStdioInputStream(#lib::_stdinFD) : null;
return #lib::_stdin; return #lib::_stdin;
} }
static method main() → dynamic {} static method main() → dynamic {}

View file

@ -383,6 +383,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'C2', script = '#lib' Class 'C2', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -405,6 +445,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'C3', script = '#lib' Class 'C3', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -427,6 +507,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'C4', script = '#lib' Class 'C4', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -449,6 +569,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'C5', script = '#lib' Class 'C5', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -471,6 +631,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'C6', script = '#lib' Class 'C6', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -493,6 +693,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'C7', script = '#lib' Class 'C7', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -515,6 +755,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'C8', script = '#lib' Class 'C8', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -537,6 +817,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'A', script = '#lib' Class 'A', script = '#lib'
type-params <dart:core::Object T1, dart:core::Object T2> (args: 2) type-params <dart:core::Object T1, dart:core::Object T2> (args: 2)
extends dart:core::Object extends dart:core::Object
@ -846,6 +1166,46 @@ ClosureCode {
ReturnTOS ReturnTOS
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'B', script = '#lib' Class 'B', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -1101,6 +1461,46 @@ ClosureCode {
ReturnTOS ReturnTOS
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'C', script = '#lib' Class 'C', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -1380,6 +1780,46 @@ ClosureCode {
ReturnTOS ReturnTOS
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'D', script = '#lib' Class 'D', script = '#lib'
type-params <dart:core::Object T> (args: 1) type-params <dart:core::Object T> (args: 1)
extends dart:core::Object extends dart:core::Object
@ -1565,6 +2005,46 @@ ClosureCode {
ReturnTOS ReturnTOS
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'E', script = '#lib', abstract Class 'E', script = '#lib', abstract
extends dart:core::Object extends dart:core::Object
@ -1715,6 +2195,46 @@ ConstantPool {
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
} }
]library #lib from "#lib" as #lib { ]library #lib from "#lib" as #lib {
@ -1723,41 +2243,121 @@ ConstantPool {
synthetic constructor •() → #lib::C1* synthetic constructor •() → #lib::C1*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class C2 extends dart.core::Object { class C2 extends dart.core::Object {
synthetic constructor •() → #lib::C2* synthetic constructor •() → #lib::C2*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class C3 extends dart.core::Object { class C3 extends dart.core::Object {
synthetic constructor •() → #lib::C3* synthetic constructor •() → #lib::C3*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class C4 extends dart.core::Object { class C4 extends dart.core::Object {
synthetic constructor •() → #lib::C4* synthetic constructor •() → #lib::C4*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class C5 extends dart.core::Object { class C5 extends dart.core::Object {
synthetic constructor •() → #lib::C5* synthetic constructor •() → #lib::C5*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class C6 extends dart.core::Object { class C6 extends dart.core::Object {
synthetic constructor •() → #lib::C6* synthetic constructor •() → #lib::C6*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class C7 extends dart.core::Object { class C7 extends dart.core::Object {
synthetic constructor •() → #lib::C7* synthetic constructor •() → #lib::C7*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class C8 extends dart.core::Object { class C8 extends dart.core::Object {
synthetic constructor •() → #lib::C8* synthetic constructor •() → #lib::C8*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class A<T1 extends dart.core::Object* = dynamic, T2 extends dart.core::Object* = dynamic> extends dart.core::Object { class A<T1 extends dart.core::Object* = dynamic, T2 extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() → #lib::A<#lib::A::T1*, #lib::A::T2*>* synthetic constructor •() → #lib::A<#lib::A::T1*, #lib::A::T2*>*
@ -1778,6 +2378,16 @@ ConstantPool {
[@vm.call-site-attributes.metadata=receiverType:FunctionType(void Function<T5, T6>()*)] nested1.call<#lib::C5*, #lib::C6*>(); [@vm.call-site-attributes.metadata=receiverType:FunctionType(void Function<T5, T6>()*)] nested1.call<#lib::C5*, #lib::C6*>();
[@vm.call-site-attributes.metadata=receiverType:FunctionType(void Function<T5, T6>()*)] nested1.call<dart.core::List<#lib::C5*>*, dart.core::List<#lib::C6*>*>(); [@vm.call-site-attributes.metadata=receiverType:FunctionType(void Function<T5, T6>()*)] nested1.call<dart.core::List<#lib::C5*>*, dart.core::List<#lib::C6*>*>();
} }
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class B extends dart.core::Object { class B extends dart.core::Object {
field dart.core::int* foo = null; field dart.core::int* foo = null;
@ -1817,6 +2427,16 @@ ConstantPool {
[@vm.call-site-attributes.metadata=receiverType:FunctionType(Null? Function()*)] closure3.call(); [@vm.call-site-attributes.metadata=receiverType:FunctionType(Null? Function()*)] closure3.call();
} }
} }
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class C extends dart.core::Object { class C extends dart.core::Object {
synthetic constructor •() → #lib::C* synthetic constructor •() → #lib::C*
@ -1848,6 +2468,16 @@ ConstantPool {
} }
} }
} }
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class D<T extends dart.core::Object* = dynamic> extends dart.core::Object { class D<T extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() → #lib::D<#lib::D::T*>* synthetic constructor •() → #lib::D<#lib::D::T*>*
@ -1862,6 +2492,16 @@ ConstantPool {
[@vm.call-site-attributes.metadata=receiverType:FunctionType(Null? Function()*)] inner.call(); [@vm.call-site-attributes.metadata=receiverType:FunctionType(Null? Function()*)] inner.call();
}; };
} }
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
abstract class E extends dart.core::Object { abstract class E extends dart.core::Object {
field (dart.core::int*, dart.core::int*) →* dart.core::int* foo1 = null; field (dart.core::int*, dart.core::int*) →* dart.core::int* foo1 = null;
@ -1878,6 +2518,16 @@ ConstantPool {
return let final dart.core::int* #t3 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t4 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:FunctionType(int* Function<T>(T*, T*)*)] this.{#lib::E::foo2}.call<dart.core::int*>(#t3, #t4); return let final dart.core::int* #t3 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t4 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:FunctionType(int* Function<T>(T*, T*)*)] this.{#lib::E::foo2}.call<dart.core::int*>(#t3, #t4);
method testCallThroughGetter3() → dart.core::int* method testCallThroughGetter3() → dart.core::int*
return let final #lib::E* #t5 = this.{#lib::E::getE}() in let final dart.core::int* #t6 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t7 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:FunctionType(int* Function<T>(T*, T*)*)] #t5.{#lib::E::foo2}.call<dart.core::int*>(#t6, #t7); return let final #lib::E* #t5 = this.{#lib::E::getE}() in let final dart.core::int* #t6 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t7 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:FunctionType(int* Function<T>(T*, T*)*)] #t5.{#lib::E::foo2}.call<dart.core::int*>(#t6, #t7);
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
static method simpleClosure() → dart.core::int* { static method simpleClosure() → dart.core::int* {
dart.core::int* x = 5; dart.core::int* x = 5;

View file

@ -159,6 +159,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'B', script = '#lib' Class 'B', script = '#lib'
extends #lib::A extends #lib::A
@ -246,6 +286,16 @@ ConstantPool {
constructor redirecting2(dart.core::int* a, dart.core::int* b, dart.core::int* c) → #lib::A* constructor redirecting2(dart.core::int* a, dart.core::int* b, dart.core::int* c) → #lib::A*
: this #lib::A::constr2(a, b.{dart.core::num::*}(c)) : this #lib::A::constr2(a, b.{dart.core::num::*}(c))
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class B extends #lib::A { class B extends #lib::A {
field dart.core::int* foo6 = 46; field dart.core::int* foo6 = 46;

View file

@ -280,6 +280,46 @@ ConstantPool {
[10] = Reserved [10] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'A', script = '#lib' Class 'A', script = '#lib'
extends #lib::Base < dart:core::int, dart:core::String > extends #lib::Base < dart:core::int, dart:core::String >
@ -392,6 +432,46 @@ ConstantPool {
[6] = Reserved [6] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'E', script = '#lib' Class 'E', script = '#lib'
type-params <dart:core::Object K, dart:core::Object V> (args: 2) type-params <dart:core::Object K, dart:core::Object V> (args: 2)
extends dart:core::Object extends dart:core::Object
@ -434,6 +514,46 @@ ConstantPool {
[2] = Reserved [2] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'F', script = '#lib' Class 'F', script = '#lib'
type-params <dart:core::Object K, dart:core::Object V> (args: 4) 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 > > extends #lib::E < dart:core::String, dart:core::List < #lib::F::TypeParam/1 > >
@ -526,6 +646,46 @@ ConstantPool {
[3] = Reserved [3] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'H', script = '#lib' Class 'H', script = '#lib'
type-params <dart:core::Object P1, dart:core::Object P2, dart:core::Object P3> (args: 5) 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 > extends #lib::G < #lib::H::TypeParam/1, #lib::H::TypeParam/2 >
@ -598,6 +758,46 @@ ConstantPool {
[4] = Reserved [4] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'J', script = '#lib' Class 'J', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -617,6 +817,46 @@ ConstantPool {
[0] = NativeEntry agent_J [0] = NativeEntry agent_J
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'K', script = '#lib', abstract Class 'K', script = '#lib', abstract
type-params <dart:core::Object A, dart:core::Object B> (args: 2) type-params <dart:core::Object A, dart:core::Object B> (args: 2)
extends dart:core::Object extends dart:core::Object
@ -645,6 +885,46 @@ ConstantPool {
[2] = Reserved [2] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'TestTypeArgReuse', script = '#lib' Class 'TestTypeArgReuse', script = '#lib'
type-params <dart:core::Object P, dart:core::Object Q> (args: 2) type-params <dart:core::Object P, dart:core::Object Q> (args: 2)
extends #lib::Base < #lib::TestTypeArgReuse::TypeParam/0, #lib::TestTypeArgReuse::TypeParam/1 > extends #lib::Base < #lib::TestTypeArgReuse::TypeParam/0, #lib::TestTypeArgReuse::TypeParam/1 >
@ -680,6 +960,16 @@ ConstantPool {
: super dart.core::Object::•() { : super dart.core::Object::•() {
dart.core::print("Base: ${#lib::Base::T1*}, ${#lib::Base::T2*}"); dart.core::print("Base: ${#lib::Base::T1*}, ${#lib::Base::T2*}");
} }
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class A extends #lib::Base<dart.core::int*, dart.core::String*> { class A extends #lib::Base<dart.core::int*, dart.core::String*> {
constructor •(dart.core::String* s) → #lib::A* constructor •(dart.core::String* s) → #lib::A*
@ -697,6 +987,16 @@ ConstantPool {
: super dart.core::Object::•() { : super dart.core::Object::•() {
dart.core::print("C: ${s}"); dart.core::print("C: ${s}");
} }
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class E<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic> extends dart.core::Object { class E<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() → #lib::E<#lib::E::K*, #lib::E::V*>* synthetic constructor •() → #lib::E<#lib::E::K*, #lib::E::V*>*
@ -704,6 +1004,16 @@ ConstantPool {
; ;
method test_reuse1() → dynamic method test_reuse1() → dynamic
return dart.core::Map::•<#lib::E::K*, #lib::E::V*>(); return dart.core::Map::•<#lib::E::K*, #lib::E::V*>();
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class F<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic> extends #lib::E<dart.core::String*, dart.core::List<#lib::F::V*>*> { class F<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic> extends #lib::E<dart.core::String*, dart.core::List<#lib::F::V*>*> {
synthetic constructor •() → #lib::F<#lib::F::K*, #lib::F::V*>* synthetic constructor •() → #lib::F<#lib::F::K*, #lib::F::V*>*
@ -718,6 +1028,16 @@ ConstantPool {
; ;
static factory test_factory<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic>() → #lib::G<#lib::G::test_factory::K*, #lib::G::test_factory::V*>* static factory test_factory<K extends dart.core::Object* = dynamic, V extends dart.core::Object* = dynamic>() → #lib::G<#lib::G::test_factory::K*, #lib::G::test_factory::V*>*
return new #lib::H::•<dart.core::String*, #lib::G::test_factory::K*, #lib::G::test_factory::V*>(); return new #lib::H::•<dart.core::String*, #lib::G::test_factory::K*, #lib::G::test_factory::V*>();
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class H<P1 extends dart.core::Object* = dynamic, P2 extends dart.core::Object* = dynamic, P3 extends dart.core::Object* = dynamic> extends #lib::G<#lib::H::P2*, #lib::H::P3*> { class H<P1 extends dart.core::Object* = dynamic, P2 extends dart.core::Object* = dynamic, P3 extends dart.core::Object* = dynamic> extends #lib::G<#lib::H::P2*, #lib::H::P3*> {
synthetic constructor •() → #lib::H<#lib::H::P1*, #lib::H::P2*, #lib::H::P3*>* synthetic constructor •() → #lib::H<#lib::H::P1*, #lib::H::P2*, #lib::H::P3*>*
@ -730,14 +1050,44 @@ ConstantPool {
; ;
static factory test_factory2({dynamic param = #C1}) → #lib::I* static factory test_factory2({dynamic param = #C1}) → #lib::I*
return new #lib::I::•(param); return new #lib::I::•(param);
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class J extends dart.core::Object { class J extends dart.core::Object {
@#C3 @#C3
external static factory •() → #lib::J*; external static factory •() → #lib::J*;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
abstract class K<A extends dart.core::Object* = dynamic, B extends dart.core::Object* = dynamic> extends dart.core::Object { abstract class K<A extends dart.core::Object* = dynamic, B extends dart.core::Object* = dynamic> extends dart.core::Object {
static factory •<A extends dart.core::Object* = dynamic, B extends dart.core::Object* = dynamic>() → #lib::K<#lib::K::•::A*, #lib::K::•::B*>* static factory •<A extends dart.core::Object* = dynamic, B extends dart.core::Object* = dynamic>() → #lib::K<#lib::K::•::A*, #lib::K::•::B*>*
return new #lib::TestTypeArgReuse::•<#lib::K::•::A*, #lib::K::•::B*>(); return new #lib::TestTypeArgReuse::•<#lib::K::•::A*, #lib::K::•::B*>();
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class TestTypeArgReuse<P extends dart.core::Object* = dynamic, Q extends dart.core::Object* = dynamic> extends #lib::Base<#lib::TestTypeArgReuse::P*, #lib::TestTypeArgReuse::Q*> implements #lib::K<#lib::TestTypeArgReuse::P*, #lib::TestTypeArgReuse::Q*> { class TestTypeArgReuse<P extends dart.core::Object* = dynamic, Q extends dart.core::Object* = dynamic> extends #lib::Base<#lib::TestTypeArgReuse::P*, #lib::TestTypeArgReuse::Q*> implements #lib::K<#lib::TestTypeArgReuse::P*, #lib::TestTypeArgReuse::Q*> {
synthetic constructor •() → #lib::TestTypeArgReuse<#lib::TestTypeArgReuse::P*, #lib::TestTypeArgReuse::Q*>* synthetic constructor •() → #lib::TestTypeArgReuse<#lib::TestTypeArgReuse::P*, #lib::TestTypeArgReuse::Q*>*

View file

@ -530,6 +530,42 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'B', script = '#lib' Class 'B', script = '#lib'
extends dart:core::Object extends dart:core::Object
@ -559,6 +595,46 @@ ConstantPool {
[3] = Reserved [3] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'C', script = '#lib' Class 'C', script = '#lib'
extends #lib::B extends #lib::B
@ -633,6 +709,46 @@ ConstantPool {
[6] = Reserved [6] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'E', script = '#lib' Class 'E', script = '#lib'
type-params <dart:core::Object T> (args: 1) type-params <dart:core::Object T> (args: 1)
extends dart:core::Object extends dart:core::Object
@ -656,6 +772,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'F', script = '#lib' Class 'F', script = '#lib'
type-params <dart:core::Object P, dart:core::Object Q> (args: 3) 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 > > extends #lib::E < dart:core::Map < #lib::F::TypeParam/0, #lib::F::TypeParam/1 > >
@ -697,12 +853,31 @@ ConstantPool {
; ;
method toString() → dart.core::String* method toString() → dart.core::String*
return this.{=#lib::A::_name}; return this.{=#lib::A::_name};
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class B extends dart.core::Object /*hasConstConstructor*/ { class B extends dart.core::Object /*hasConstConstructor*/ {
final field dart.core::int* i; final field dart.core::int* i;
const constructor •(dart.core::int* i) → #lib::B* const constructor •(dart.core::int* i) → #lib::B*
: #lib::B::i = i, super dart.core::Object::•() : #lib::B::i = i, super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class C extends #lib::B /*hasConstConstructor*/ { class C extends #lib::B /*hasConstConstructor*/ {
final field dart.core::int* j; final field dart.core::int* j;
@ -716,11 +891,31 @@ ConstantPool {
const constructor •(dynamic x, [dynamic y = #C14]) → #lib::D* const constructor •(dynamic x, [dynamic y = #C14]) → #lib::D*
: #lib::D::x = x, #lib::D::y = y, super dart.core::Object::•() : #lib::D::x = x, #lib::D::y = y, super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class E<T extends dart.core::Object* = dynamic> extends dart.core::Object /*hasConstConstructor*/ { class E<T extends dart.core::Object* = dynamic> extends dart.core::Object /*hasConstConstructor*/ {
const constructor •() → #lib::E<#lib::E::T*>* const constructor •() → #lib::E<#lib::E::T*>*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class F<P extends dart.core::Object* = dynamic, Q extends dart.core::Object* = dynamic> extends #lib::E<dart.core::Map<#lib::F::P*, #lib::F::Q*>*> /*hasConstConstructor*/ { class F<P extends dart.core::Object* = dynamic, Q extends dart.core::Object* = dynamic> extends #lib::E<dart.core::Map<#lib::F::P*, #lib::F::Q*>*> /*hasConstConstructor*/ {
const constructor •() → #lib::F<#lib::F::P*, #lib::F::Q*>* const constructor •() → #lib::F<#lib::F::P*, #lib::F::Q*>*

View file

@ -26,12 +26,13 @@ L2:
Push r1 Push r1
Push FP[-5] Push FP[-5]
InterfaceCall CP#0, 1 InterfaceCall CP#0, 1
CompareIntLt InterfaceCall CP#2, 2
AssertBoolean 0
JumpIfFalse L1 JumpIfFalse L1
Push r0 Push r0
Push FP[-5] Push FP[-5]
Push r1 Push r1
InterfaceCall CP#2, 2 InterfaceCall CP#4, 2
AddInt AddInt
PopLocal r0 PopLocal r0
Push r1 Push r1
@ -47,8 +48,10 @@ L1:
ConstantPool { ConstantPool {
[0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved [1] = Reserved
[2] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] [2] = InterfaceCall 'dart:core::num::<', ArgDesc num-args 2, num-type-args 0, names []
[3] = Reserved [3] = Reserved
[4] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names []
[5] = Reserved
} }
@ -72,14 +75,15 @@ L3:
Push r1 Push r1
Push FP[-5] Push FP[-5]
InterfaceCall CP#0, 1 InterfaceCall CP#0, 1
CompareIntGe InterfaceCall CP#2, 2
AssertBoolean 0
JumpIfFalse L2 JumpIfFalse L2
Jump L1 Jump L1
L2: L2:
Push r0 Push r0
Push FP[-5] Push FP[-5]
Push r1 Push r1
InterfaceCall CP#2, 2 InterfaceCall CP#4, 2
AddInt AddInt
PopLocal r0 PopLocal r0
Push r1 Push r1
@ -95,8 +99,10 @@ L1:
ConstantPool { ConstantPool {
[0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved [1] = Reserved
[2] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] [2] = InterfaceCall 'dart:core::num::>=', ArgDesc num-args 2, num-type-args 0, names []
[3] = Reserved [3] = Reserved
[4] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names []
[5] = Reserved
} }
@ -117,7 +123,8 @@ L4:
Push r1 Push r1
Push FP[-5] Push FP[-5]
InterfaceCall CP#0, 1 InterfaceCall CP#0, 1
CompareIntLt InterfaceCall CP#2, 2
AssertBoolean 0
JumpIfFalse L1 JumpIfFalse L1
Push r1 Push r1
PushInt 0 PushInt 0
@ -128,7 +135,7 @@ L2:
Push r0 Push r0
Push FP[-5] Push FP[-5]
Push r1 Push r1
InterfaceCall CP#2, 2 InterfaceCall CP#4, 2
AddInt AddInt
PopLocal r0 PopLocal r0
L3: L3:
@ -145,8 +152,10 @@ L1:
ConstantPool { ConstantPool {
[0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved [1] = Reserved
[2] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] [2] = InterfaceCall 'dart:core::num::<', ArgDesc num-args 2, num-type-args 0, names []
[3] = Reserved [3] = Reserved
[4] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names []
[5] = Reserved
} }
@ -166,7 +175,8 @@ L2:
Push r1 Push r1
Push FP[-5] Push FP[-5]
InterfaceCall CP#0, 1 InterfaceCall CP#0, 1
CompareIntLt InterfaceCall CP#2, 2
AssertBoolean 0
JumpIfFalse L1 JumpIfFalse L1
Push r0 Push r0
Push FP[-5] Push FP[-5]
@ -178,7 +188,7 @@ L2:
StoreLocal r1 StoreLocal r1
PopLocal r3 PopLocal r3
Push r2 Push r2
InterfaceCall CP#2, 2 InterfaceCall CP#4, 2
AddInt AddInt
PopLocal r0 PopLocal r0
Jump L2 Jump L2
@ -189,8 +199,10 @@ L1:
ConstantPool { ConstantPool {
[0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names []
[1] = Reserved [1] = Reserved
[2] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] [2] = InterfaceCall 'dart:core::num::<', ArgDesc num-args 2, num-type-args 0, names []
[3] = Reserved [3] = Reserved
[4] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names []
[5] = Reserved
} }
@ -220,7 +232,8 @@ L1:
Push r1 Push r1
Push FP[-5] Push FP[-5]
InterfaceCall CP#2, 1 InterfaceCall CP#2, 1
CompareIntLt InterfaceCall CP#4, 2
AssertBoolean 0
JumpIfTrue L1 JumpIfTrue L1
Push r0 Push r0
ReturnTOS ReturnTOS
@ -230,6 +243,8 @@ ConstantPool {
[1] = Reserved [1] = Reserved
[2] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [2] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names []
[3] = Reserved [3] = Reserved
[4] = InterfaceCall 'dart:core::num::<', ArgDesc num-args 2, num-type-args 0, names []
[5] = Reserved
} }

View file

@ -89,6 +89,46 @@ Bytecode {
ConstantPool { ConstantPool {
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'A', script = '#lib' Class 'A', script = '#lib'
extends #lib::Base1 extends #lib::Base1
@ -246,6 +286,46 @@ Function 'get:bar', getter, abstract, reflectable, debuggable
Function 'set:bazz', setter, abstract, reflectable, debuggable Function 'set:bazz', setter, abstract, reflectable, debuggable
parameters [dart:core::int 'x'] (required: 1) parameters [dart:core::int 'x'] (required: 1)
return-type void return-type void
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'B', script = '#lib', abstract Class 'B', script = '#lib', abstract
extends #lib::Base2 extends #lib::Base2
@ -482,6 +562,16 @@ ConstantPool {
get bar() → dynamic get bar() → dynamic
return 42; return 42;
set bazz(dart.core::int* x) → void {} set bazz(dart.core::int* x) → void {}
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class A extends #lib::Base1 { class A extends #lib::Base1 {
synthetic constructor •() → #lib::A* synthetic constructor •() → #lib::A*
@ -506,6 +596,16 @@ ConstantPool {
abstract method foo<T extends dart.core::Object* = dynamic>(dart.core::String* a1, #lib::Base2::foo::T* a2, dart.core::int* a3) → void; abstract method foo<T extends dart.core::Object* = dynamic>(dart.core::String* a1, #lib::Base2::foo::T* a2, dart.core::int* a3) → void;
abstract get bar() → dynamic; abstract get bar() → dynamic;
abstract set bazz(dart.core::int* x) → void; abstract set bazz(dart.core::int* x) → void;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
abstract class B extends #lib::Base2 { abstract class B extends #lib::Base2 {
synthetic constructor •() → #lib::B* synthetic constructor •() → #lib::B*

View file

@ -123,6 +123,46 @@ ConstantPool {
[1] = Reserved [1] = Reserved
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'B', script = '#lib' Class 'B', script = '#lib'
extends #lib::A < dart:core::String > extends #lib::A < dart:core::String >
@ -432,6 +472,46 @@ ConstantPool {
[4] = ObjectRef 'T' [4] = ObjectRef 'T'
} }
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'F', script = '#lib', abstract Class 'F', script = '#lib', abstract
type-params <dart:core::Object T> (args: 1) type-params <dart:core::Object T> (args: 1)
extends dart:core::Object extends dart:core::Object
@ -465,6 +545,46 @@ Function 'foo8', abstract, reflectable, debuggable
type-params <#lib::F::TypeParam/0 Q> 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) parameters [#lib::F::foo8::TypeParam/0 'a', dart:core::num 'b', #lib::F::TypeParam/0 'c'] (required: 3)
return-type void return-type void
Function 'get:_identityHashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'G', script = '#lib' Class 'G', script = '#lib'
type-params <dart:core::Object T> (args: 1) type-params <dart:core::Object T> (args: 1)
extends dart:core::Object extends dart:core::Object
@ -535,6 +655,46 @@ ConstantPool {
[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
Function '_instanceOf', abstract, debuggable
parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3)
return-type dart:core::bool
Function '_simpleInstanceOf', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfTrue', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '_simpleInstanceOfFalse', abstract, debuggable
parameters [dynamic 'type'] (required: 1)
return-type dart:core::bool
Function '==', abstract, debuggable
parameters [dynamic 'other'] (required: 1)
return-type dart:core::bool
Function 'get:hashCode', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::int
Function 'toString', abstract, debuggable
parameters [] (required: 0)
return-type dart:core::String
Function 'noSuchMethod', abstract, debuggable
parameters [dart:core::Invocation 'invocation'] (required: 1)
return-type dynamic
Function 'get:runtimeType', getter, abstract, debuggable
parameters [] (required: 0)
return-type dart:core::Type
Class 'H', script = '#lib' Class 'H', script = '#lib'
type-params <dart:core::Object T> (args: 1) type-params <dart:core::Object T> (args: 1)
extends #lib::G < #lib::H::TypeParam/0 > extends #lib::G < #lib::H::TypeParam/0 >
@ -683,6 +843,16 @@ ConstantPool {
synthetic constructor •() → #lib::A<#lib::A::T*>* synthetic constructor •() → #lib::A<#lib::A::T*>*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class B extends #lib::A<dart.core::String*> { class B extends #lib::A<dart.core::String*> {
synthetic constructor •() → #lib::B* synthetic constructor •() → #lib::B*
@ -726,6 +896,16 @@ ConstantPool {
static factory •<P extends dart.core::String* = dynamic>() → #lib::E<#lib::E::•::P*>* static factory •<P extends dart.core::String* = dynamic>() → #lib::E<#lib::E::•::P*>*
return null; return null;
method foo6<generic-covariant-impl T extends #lib::E::P* = #lib::E::P*, U extends dart.core::List<#lib::E::foo6::T*>* = dart.core::List<#lib::E::P*>*>(dart.core::Map<#lib::E::foo6::T*, #lib::E::foo6::U*>* map) → void {} method foo6<generic-covariant-impl T extends #lib::E::P* = #lib::E::P*, U extends dart.core::List<#lib::E::foo6::T*>* = dart.core::List<#lib::E::P*>*>(dart.core::Map<#lib::E::foo6::T*, #lib::E::foo6::U*>* map) → void {}
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
abstract class F<T extends dart.core::Object* = dynamic> extends dart.core::Object { abstract class F<T extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() → #lib::F<#lib::F::T*>* synthetic constructor •() → #lib::F<#lib::F::T*>*
@ -733,12 +913,32 @@ ConstantPool {
; ;
abstract method foo7<generic-covariant-impl Q extends #lib::F::T* = #lib::F::T*>(#lib::F::foo7::Q* a, covariant dart.core::num* b, generic-covariant-impl #lib::F::T* c) → void; abstract method foo7<generic-covariant-impl Q extends #lib::F::T* = #lib::F::T*>(#lib::F::foo7::Q* a, covariant dart.core::num* b, generic-covariant-impl #lib::F::T* c) → void;
abstract method foo8<generic-covariant-impl Q extends #lib::F::T* = #lib::F::T*>(#lib::F::foo8::Q* a, covariant dart.core::num* b, generic-covariant-impl #lib::F::T* c) → void; abstract method foo8<generic-covariant-impl Q extends #lib::F::T* = #lib::F::T*>(#lib::F::foo8::Q* a, covariant dart.core::num* b, generic-covariant-impl #lib::F::T* c) → void;
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class G<T extends dart.core::Object* = dynamic> extends dart.core::Object { class G<T extends dart.core::Object* = dynamic> extends dart.core::Object {
synthetic constructor •() → #lib::G<#lib::G::T*>* synthetic constructor •() → #lib::G<#lib::G::T*>*
: super dart.core::Object::•() : super dart.core::Object::•()
; ;
method foo7<generic-covariant-impl Q extends #lib::G::T* = #lib::G::T*>(#lib::G::foo7::Q* a, dart.core::int* b, generic-covariant-impl #lib::G::T* c) → void {} method foo7<generic-covariant-impl Q extends #lib::G::T* = #lib::G::T*>(#lib::G::foo7::Q* a, dart.core::int* b, generic-covariant-impl #lib::G::T* c) → void {}
abstract member-signature get _identityHashCode() → dart.core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*;
abstract member-signature operator ==(dynamic other) → dart.core::bool*;
abstract member-signature get hashCode() → dart.core::int*;
abstract member-signature method toString() → dart.core::String*;
abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → dart.core::Type*;
} }
class H<T extends dart.core::Object* = dynamic> extends #lib::G<#lib::H::T*> implements #lib::F<#lib::H::T*> { class H<T extends dart.core::Object* = dynamic> extends #lib::G<#lib::H::T*> implements #lib::F<#lib::H::T*> {
synthetic constructor •() → #lib::H<#lib::H::T*>* synthetic constructor •() → #lib::H<#lib::H::T*>*

View file

@ -129,7 +129,7 @@ t2 = _Call direct [foo] (t1)
RESULT: _T {}? RESULT: _T {}?
------------ if9 ------------ ------------ if9 ------------
%x = _Parameter #0 [_T (#lib::TestEnum)+?] %x = _Parameter #0 [_T (#lib::TestEnum)+?]
t1* = _Call [Object::==] (%x, _T (#lib::TestEnum, #lib::TestEnum {index: 0, #lib::_name: TestEnum.v1, })) t1* = _Call [TestEnum::==] (%x, _T (#lib::TestEnum, #lib::TestEnum {index: 0, #lib::_name: TestEnum.v1, }))
t2 = _Call direct [foo] (_T (#lib::TestEnum, #lib::TestEnum {index: 0, #lib::_name: TestEnum.v1, })) t2 = _Call direct [foo] (_T (#lib::TestEnum, #lib::TestEnum {index: 0, #lib::_name: TestEnum.v1, }))
RESULT: _T {}? RESULT: _T {}?
------------ conditional1 ------------ ------------ conditional1 ------------

View file

@ -6,7 +6,7 @@ import "dart:_internal" as _in;
[@vm.unboxing-info.metadata=(i)->b]static method isPrime([@vm.inferred-type.metadata=int] dynamic n) → core::bool* { [@vm.unboxing-info.metadata=(i)->b]static method isPrime([@vm.inferred-type.metadata=int] dynamic n) → core::bool* {
if(_in::unsafeCast<core::bool*>([@vm.direct-call.metadata=_IntegerImplementation::<] [@vm.inferred-type.metadata=dart.core::bool] n.<(2))) if(_in::unsafeCast<core::bool*>([@vm.direct-call.metadata=_IntegerImplementation::<] [@vm.inferred-type.metadata=dart.core::bool] n.<(2)))
return false; return false;
for (core::int* i = 2; [@vm.direct-call.metadata=_IntegerImplementation::<=] [@vm.inferred-type.metadata=dart.core::bool (skip check)] [@vm.direct-call.metadata=_IntegerImplementation::*] [@vm.inferred-type.metadata=int (skip check)] i.{core::num::*}(i).{core::num::<=}(_in::unsafeCast<core::num*>(n)); i = [@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] i.{core::num::+}(1)) { for (core::int* i = 2; [@vm.direct-call.metadata=_IntegerImplementation::<=] [@vm.inferred-type.metadata=dart.core::bool (skip check)] [@vm.direct-call.metadata=_IntegerImplementation::*] [@vm.inferred-type.metadata=int (skip check)] i.{core::num::*}(i).{core::num::<=}(_in::unsafeCast<core::num>(n)); i = [@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] i.{core::num::+}(1)) {
if([@vm.direct-call.metadata=_IntegerImplementation::==] [@vm.inferred-type.metadata=dart.core::bool (skip check)] [@vm.direct-call.metadata=_IntegerImplementation::%] [@vm.inferred-type.metadata=int] n.%(i).{core::Object::==}(0)) if([@vm.direct-call.metadata=_IntegerImplementation::==] [@vm.inferred-type.metadata=dart.core::bool (skip check)] [@vm.direct-call.metadata=_IntegerImplementation::%] [@vm.inferred-type.metadata=int] n.%(i).{core::Object::==}(0))
return false; return false;
} }
@ -30,7 +30,7 @@ static method run() → void {
} }
} }
static method main(core::List<core::String*>* args) → dynamic { static method main(core::List<core::String*>* args) → dynamic {
core::Stopwatch* timer = let final core::Stopwatch* #t1 = new core::Stopwatch::•() in let final void #t2 = [@vm.direct-call.metadata=Stopwatch::start] [@vm.inferred-type.metadata=!? (skip check)] #t1.{core::Stopwatch::start}() in #t1; core::Stopwatch* timer = let final core::Stopwatch #t1 = new core::Stopwatch::•() in let final void #t2 = [@vm.direct-call.metadata=Stopwatch::start] [@vm.inferred-type.metadata=!? (skip check)] #t1.{core::Stopwatch::start}() in #t1;
for (core::int* i = 0; [@vm.direct-call.metadata=_IntegerImplementation::<] [@vm.inferred-type.metadata=dart.core::bool (skip check)] i.{core::num::<}(100); i = [@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] i.{core::num::+}(1)) { for (core::int* i = 0; [@vm.direct-call.metadata=_IntegerImplementation::<] [@vm.inferred-type.metadata=dart.core::bool (skip check)] i.{core::num::<}(100); i = [@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] i.{core::num::+}(1)) {
self::run(); self::run();
} }

View file

@ -22,6 +22,7 @@ abstract class Stream extends core::Object {
: super core::Object::•() : super core::Object::•()
; ;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] abstract method foobar((dynamic) →* void onData, {core::Function* onError = #C1}) → self::StreamSubscription*; [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] abstract method foobar((dynamic) →* void onData, {core::Function* onError = #C1}) → self::StreamSubscription*;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3] abstract member-signature operator ==(dynamic other) → core::bool*;
} }
abstract class _StreamImpl extends self::Stream { abstract class _StreamImpl extends self::Stream {
synthetic constructor •() → self::_StreamImpl* synthetic constructor •() → self::_StreamImpl*
@ -30,7 +31,7 @@ abstract class _StreamImpl extends self::Stream {
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foobar([@vm.inferred-type.metadata=dart.core::Null? (value: null)] (dynamic) →* void onData, {[@vm.inferred-type.metadata=dart.core::Null? (value: null)] core::Function* onError = #C1}) → self::StreamSubscription* { [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foobar([@vm.inferred-type.metadata=dart.core::Null? (value: null)] (dynamic) →* void onData, {[@vm.inferred-type.metadata=dart.core::Null? (value: null)] core::Function* onError = #C1}) → self::StreamSubscription* {
return [@vm.inferred-type.metadata=! (skip check)] this.{self::_StreamImpl::_createSubscription}(); return [@vm.inferred-type.metadata=! (skip check)] this.{self::_StreamImpl::_createSubscription}();
} }
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method _createSubscription() → self::StreamSubscription* { [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:4,getterSelectorId:5] method _createSubscription() → self::StreamSubscription* {
return new self::_BufferingStreamSubscription::•(); return new self::_BufferingStreamSubscription::•();
} }
} }
@ -38,7 +39,7 @@ class _ControllerStream extends self::_StreamImpl {
synthetic constructor •() → self::_ControllerStream* synthetic constructor •() → self::_ControllerStream*
: super self::_StreamImpl::•() : super self::_StreamImpl::•()
; ;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method _createSubscription() → self::StreamSubscription* { [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:4,getterSelectorId:5] method _createSubscription() → self::StreamSubscription* {
return new self::_BroadcastSubscription::•(); return new self::_BroadcastSubscription::•();
} }
} }
@ -48,7 +49,7 @@ class _GeneratedStreamImpl extends self::_StreamImpl {
; ;
} }
abstract class StreamView extends self::Stream { abstract class StreamView extends self::Stream {
[@vm.inferred-type.metadata=!] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:5,getterSelectorId:6] final field self::Stream* _stream; [@vm.inferred-type.metadata=!] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:6,getterSelectorId:7] final field self::Stream* _stream;
constructor •([@vm.inferred-type.metadata=!] self::Stream* stream) → self::StreamView* constructor •([@vm.inferred-type.metadata=!] self::Stream* stream) → self::StreamView*
: self::StreamView::_stream = stream, super self::Stream::•() : self::StreamView::_stream = stream, super self::Stream::•()
; ;
@ -60,16 +61,16 @@ class ByteStream extends self::StreamView {
constructor •([@vm.inferred-type.metadata=!] self::Stream* stream) → self::ByteStream* constructor •([@vm.inferred-type.metadata=!] self::Stream* stream) → self::ByteStream*
: super self::StreamView::•(stream) : super self::StreamView::•(stream)
; ;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:7,getterSelectorId:8] method super_foobar1([@vm.inferred-type.metadata=dart.core::Null? (value: null)] (dynamic) →* void onData) → dynamic { [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:8,getterSelectorId:9] method super_foobar1([@vm.inferred-type.metadata=dart.core::Null? (value: null)] (dynamic) →* void onData) → dynamic {
super.{self::StreamView::foobar}(onData); super.{self::StreamView::foobar}(onData);
} }
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:9,getterSelectorId:10] method super_foobar2([@vm.inferred-type.metadata=dart.core::Null? (value: null)] (dynamic) →* void onData) → dynamic { [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:10,getterSelectorId:11] method super_foobar2([@vm.inferred-type.metadata=dart.core::Null? (value: null)] (dynamic) →* void onData) → dynamic {
super.{self::StreamView::foobar}(onData); super.{self::StreamView::foobar}(onData);
} }
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:11,getterSelectorId:12] method super_foobar3({[@vm.inferred-type.metadata=dart.core::Null? (value: null)] (dynamic) →* void onData = #C1, [@vm.inferred-type.metadata=dart.core::Null? (value: null)] core::Function* onError = #C1}) → dynamic { [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:12,getterSelectorId:13] method super_foobar3({[@vm.inferred-type.metadata=dart.core::Null? (value: null)] (dynamic) →* void onData = #C1, [@vm.inferred-type.metadata=dart.core::Null? (value: null)] core::Function* onError = #C1}) → dynamic {
super.{self::StreamView::foobar}(onData, onError: onError); super.{self::StreamView::foobar}(onData, onError: onError);
} }
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:13] get super_stream() → self::Stream* [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:14] get super_stream() → self::Stream*
return [@vm.inferred-type.metadata=!] super.{self::StreamView::_stream}; return [@vm.inferred-type.metadata=!] super.{self::StreamView::_stream};
} }
class _HandleErrorStream extends self::Stream { class _HandleErrorStream extends self::Stream {
@ -100,7 +101,7 @@ static method round4({[@vm.inferred-type.metadata=dart.core::Null? (value: null)
self::ByteStream* x = new self::ByteStream::•(new self::_ControllerStream::•()); self::ByteStream* x = new self::ByteStream::•(new self::_ControllerStream::•());
self::Stream* y = [@vm.direct-call.metadata=ByteStream::super_stream] [@vm.inferred-type.metadata=!] x.{self::ByteStream::super_stream}; self::Stream* y = [@vm.direct-call.metadata=ByteStream::super_stream] [@vm.inferred-type.metadata=!] x.{self::ByteStream::super_stream};
self::Stream* z = [@vm.direct-call.metadata=StreamView::_stream] [@vm.inferred-type.metadata=!] x.{self::StreamView::_stream}; self::Stream* z = [@vm.direct-call.metadata=StreamView::_stream] [@vm.inferred-type.metadata=!] x.{self::StreamView::_stream};
if([@vm.direct-call.metadata=Object::==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] y.{core::Object::==}(z)) { if([@vm.direct-call.metadata=Object::==] [@vm.inferred-type.metadata=dart.core::bool (skip check)] y.{self::Stream::==}(z)) {
[@vm.direct-call.metadata=ByteStream::super_foobar2] [@vm.inferred-type.metadata=!? (skip check)] x.{self::ByteStream::super_foobar2}(onData); [@vm.direct-call.metadata=ByteStream::super_foobar2] [@vm.inferred-type.metadata=!? (skip check)] x.{self::ByteStream::super_foobar2}(onData);
} }
} }

View file

@ -19,7 +19,7 @@ class A1 extends core::Object {
synthetic constructor •() → self::A1* synthetic constructor •() → self::A1*
: super core::Object::•() : super core::Object::•()
; ;
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method call([dynamic a1 = #C1, dynamic a2 = #C1, [@vm.inferred-type.metadata=int?] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=#lib::T1?] dynamic a5 = #C1]) → void { [@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method call([dynamic a1 = #C1, dynamic a2 = #C1, dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=#lib::T1?] dynamic a5 = #C1]) → void {
[@vm.direct-call.metadata=A1::foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A1::foo} = _in::unsafeCast<self::T1*>(a5); [@vm.direct-call.metadata=A1::foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A1::foo} = _in::unsafeCast<self::T1*>(a5);
} }
} }
@ -42,7 +42,7 @@ class A2 extends core::Object {
synthetic constructor •() → self::A2* synthetic constructor •() → self::A2*
: super core::Object::•() : super core::Object::•()
; ;
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method call([dynamic a1 = #C1, dynamic a2 = #C1, [@vm.inferred-type.metadata=int?] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a5 = #C1, [@vm.inferred-type.metadata=#lib::T2?] dynamic a6 = #C1]) → void { [@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method call([dynamic a1 = #C1, dynamic a2 = #C1, dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a5 = #C1, [@vm.inferred-type.metadata=#lib::T2?] dynamic a6 = #C1]) → void {
[@vm.direct-call.metadata=A2::foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A2::foo} = a6; [@vm.direct-call.metadata=A2::foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A2::foo} = a6;
} }
} }
@ -75,7 +75,7 @@ class A3 extends core::Object {
synthetic constructor •() → self::A3* synthetic constructor •() → self::A3*
: super core::Object::•() : super core::Object::•()
; ;
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method call([dynamic a1 = #C1, dynamic a2 = #C1, [@vm.inferred-type.metadata=int?] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a5 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a6 = #C1, [@vm.inferred-type.metadata=#lib::T3?] dynamic a7 = #C1]) → void { [@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method call([dynamic a1 = #C1, dynamic a2 = #C1, dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a5 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a6 = #C1, [@vm.inferred-type.metadata=#lib::T3?] dynamic a7 = #C1]) → void {
[@vm.direct-call.metadata=A3::foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A3::foo} = a7; [@vm.direct-call.metadata=A3::foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A3::foo} = a7;
} }
} }
@ -98,7 +98,7 @@ class A4 extends core::Object {
synthetic constructor •() → self::A4* synthetic constructor •() → self::A4*
: super core::Object::•() : super core::Object::•()
; ;
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method call([dynamic a1 = #C1, dynamic a2 = #C1, [@vm.inferred-type.metadata=int?] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a5 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a6 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a7 = #C1, [@vm.inferred-type.metadata=#lib::T4?] dynamic a8 = #C1]) → void { [@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method call([dynamic a1 = #C1, dynamic a2 = #C1, dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a5 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a6 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a7 = #C1, [@vm.inferred-type.metadata=#lib::T4?] dynamic a8 = #C1]) → void {
[@vm.direct-call.metadata=A4::foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A4::foo} = a8; [@vm.direct-call.metadata=A4::foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A4::foo} = a8;
} }
} }

View file

@ -12,7 +12,7 @@ class B extends self::A {
: super self::A::•() : super self::A::•()
; ;
[@vm.procedure-attributes.metadata=hasThisUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int* [@vm.procedure-attributes.metadata=hasThisUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int*
return [@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=! (skip check)] 1.{core::num::+}([@vm.direct-call.metadata=B::foo] [@vm.inferred-type.metadata=!? (receiver not int)] [@vm.inferred-type.metadata=#lib::B] self::knownResult().foo() as{TypeError,ForDynamic} core::num*) as{TypeError} core::int*; return [@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=! (skip check)] 1.{core::num::+}([@vm.direct-call.metadata=B::foo] [@vm.inferred-type.metadata=!? (receiver not int)] [@vm.inferred-type.metadata=#lib::B] self::knownResult().foo() as{TypeError,ForDynamic} core::num) as{TypeError} core::int*;
} }
class TearOffDynamicMethod extends core::Object { class TearOffDynamicMethod extends core::Object {
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] field dynamic bazz; [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] field dynamic bazz;

View file

@ -14,7 +14,7 @@ class B extends self::A {
: super self::A::•() : super self::A::•()
; ;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int* [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int*
return _in::unsafeCast<core::int*>([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 1.{core::num::+}(_in::unsafeCast<core::num*>([@vm.direct-call.metadata=B::bar] [@vm.inferred-type.metadata=dart.core::_Smi (value: 3) (receiver not int)] [@vm.inferred-type.metadata=#lib::B] self::knownResult().bar()))); return _in::unsafeCast<core::int*>([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 1.{core::num::+}(_in::unsafeCast<core::num>([@vm.direct-call.metadata=B::bar] [@vm.inferred-type.metadata=dart.core::_Smi (value: 3) (receiver not int)] [@vm.inferred-type.metadata=#lib::B] self::knownResult().bar())));
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method bar() → core::int* [@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method bar() → core::int*
return 3; return 3;
} }

View file

@ -14,14 +14,14 @@ class B extends self::A {
: super self::A::•() : super self::A::•()
; ;
[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int* [@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int*
return _in::unsafeCast<core::int*>([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 1.{core::num::+}(_in::unsafeCast<core::num*>([@vm.direct-call.metadata=B::foo] [@vm.inferred-type.metadata=int? (receiver not int)] [@vm.inferred-type.metadata=#lib::B] self::knownResult().foo()))); return _in::unsafeCast<core::int*>([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 1.{core::num::+}(_in::unsafeCast<core::num>([@vm.direct-call.metadata=B::foo] [@vm.inferred-type.metadata=int? (receiver not int)] [@vm.inferred-type.metadata=#lib::B] self::knownResult().foo())));
} }
abstract class Base extends core::Object { abstract class Base extends core::Object {
synthetic constructor •() → self::Base* synthetic constructor •() → self::Base*
: super core::Object::•() : super core::Object::•()
; ;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int* [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int*
return _in::unsafeCast<core::int*>([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 3.{core::num::+}(_in::unsafeCast<core::num*>([@vm.direct-call.metadata=B::foo] [@vm.inferred-type.metadata=int? (receiver not int)] [@vm.inferred-type.metadata=#lib::B] self::knownResult().foo()))); return _in::unsafeCast<core::int*>([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 3.{core::num::+}(_in::unsafeCast<core::num>([@vm.direct-call.metadata=B::foo] [@vm.inferred-type.metadata=int? (receiver not int)] [@vm.inferred-type.metadata=#lib::B] self::knownResult().foo())));
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method doCall(dynamic x) → core::int* [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] method doCall(dynamic x) → core::int*
return [@vm.call-site-attributes.metadata=receiverType:DynamicType(dynamic)] x.call() as{TypeError,ForDynamic} core::int*; return [@vm.call-site-attributes.metadata=receiverType:DynamicType(dynamic)] x.call() as{TypeError,ForDynamic} core::int*;
} }

View file

@ -5,6 +5,16 @@ import "dart:core" as core;
class TestAssertInitializer extends core::Object { class TestAssertInitializer extends core::Object {
constructor •() → self::TestAssertInitializer* constructor •() → self::TestAssertInitializer*
: super core::Object::•() {} : super core::Object::•() {}
abstract member-signature get _identityHashCode() → core::int*;
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*;
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*;
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*;
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*;
abstract member-signature operator ==(dynamic other) → core::bool*;
abstract member-signature get hashCode() → core::int*;
abstract member-signature method toString() → core::String*;
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic;
abstract member-signature get runtimeType() → core::Type*;
} }
static const field core::bool* constTrue = #C1; static const field core::bool* constTrue = #C1;
static const field core::bool* constFalse = #C2; static const field core::bool* constFalse = #C2;

View file

@ -140,10 +140,6 @@ config("dart_config") {
} }
} }
if (use_nnbd) {
defines += [ "DART_BUILT_WITH_NNBD_FLAG" ]
}
if (!is_win) { if (!is_win) {
cflags = [ cflags = [
"-Werror", "-Werror",

View file

@ -529,7 +529,7 @@ gen_snapshot_action("generate_snapshot_bin") {
isolate_snapshot_instructions, isolate_snapshot_instructions,
] ]
args = [] args = []
if (use_nnbd) { if (!dont_use_nnbd) {
args += [ args += [
"--enable-experiment=non-nullable", "--enable-experiment=non-nullable",
"--null-safety", "--null-safety",

View file

@ -154,7 +154,7 @@ template("gen_vm_platform") {
} }
single_root_scheme = "org-dartlang-sdk" single_root_scheme = "org-dartlang-sdk"
single_root_base = rebase_path("../../") single_root_base = rebase_path("../../")
if (use_nnbd) { if (!dont_use_nnbd) {
libraries_specification_uri = libraries_specification_uri =
"org-dartlang-sdk:///sdk_nnbd/lib/libraries.json" "org-dartlang-sdk:///sdk_nnbd/lib/libraries.json"
} else { } else {
@ -172,7 +172,7 @@ template("gen_vm_platform") {
"-Ddart.developer.causal_async_stacks=$allow_causal_async_stacks", "-Ddart.developer.causal_async_stacks=$allow_causal_async_stacks",
"-Ddart.isVM=true", "-Ddart.isVM=true",
] ]
if (use_nnbd) { if (!dont_use_nnbd) {
args += [ "--enable-experiment=non-nullable" ] args += [ "--enable-experiment=non-nullable" ]
args += [ "--nnbd-agnostic" ] args += [ "--nnbd-agnostic" ]
} }
@ -216,9 +216,7 @@ executable("offsets_extractor") {
"..:dart_maybe_product_config", "..:dart_maybe_product_config",
":libdart_vm_config", ":libdart_vm_config",
] ]
sources = [ sources = [ "compiler/offsets_extractor.cc" ]
"compiler/offsets_extractor.cc",
]
include_dirs = [ ".." ] include_dirs = [ ".." ]
} }
@ -230,8 +228,6 @@ executable("offsets_extractor_precompiled_runtime") {
"..:dart_maybe_product_config", "..:dart_maybe_product_config",
":libdart_vm_config", ":libdart_vm_config",
] ]
sources = [ sources = [ "compiler/offsets_extractor.cc" ]
"compiler/offsets_extractor.cc",
]
include_dirs = [ ".." ] include_dirs = [ ".." ]
} }

View file

@ -5,9 +5,11 @@
_dart_root = get_path_info(".", "abspath") _dart_root = get_path_info(".", "abspath")
declare_args() { declare_args() {
# Whether to use the NNBD fork of the SDK core libraries. # Whether to build a Legacy SDK using Legacy core libraries.
# TODO(#38701): Remove this when the fork has been merged back in. # TODO(38701): Remove dont_use_nnbd once the NNBD SDK is stable/performant
use_nnbd = false # and there is no need to build a legacy version of the SDK for comparison
# purposes.
dont_use_nnbd = false
# Absolute path to the .git folder. # Absolute path to the .git folder.
# #

View file

@ -17,9 +17,9 @@
"third_party/pkg_tested/", "third_party/pkg_tested/",
"tools/", "tools/",
"out/ReleaseX64/dart-sdk/", "out/ReleaseX64/dart-sdk/",
"out/ReleaseX64NNBD/dart-sdk/", "out/ReleaseX64/dart-sdk/",
"xcodebuild/ReleaseX64/dart-sdk/", "xcodebuild/ReleaseX64/dart-sdk/",
"xcodebuild/ReleaseX64NNBD/dart-sdk/" "xcodebuild/ReleaseX64/dart-sdk/"
], ],
"dart2js": [ "dart2js": [
".packages", ".packages",
@ -31,7 +31,7 @@
"runtime/tests/", "runtime/tests/",
"samples-dev/", "samples-dev/",
"samples/", "samples/",
"sdk/", "sdk_nnbd/",
"tests/.dart_tool/package_config.json", "tests/.dart_tool/package_config.json",
"tests/angular/", "tests/angular/",
"tests/co19_2/co19_2-analyzer.status", "tests/co19_2/co19_2-analyzer.status",
@ -64,9 +64,9 @@
"dart2js_nnbd": [ "dart2js_nnbd": [
".packages", ".packages",
".dart_tool/package_config.json", ".dart_tool/package_config.json",
"out/ReleaseIA32NNBD/dart-sdk/", "out/ReleaseIA32/dart-sdk/",
"out/ReleaseX64NNBD/dart-sdk/", "out/ReleaseX64/dart-sdk/",
"out/ReleaseX64NNBD/gen/utils/dartdevc/", "out/ReleaseX64/gen/utils/dartdevc/",
"pkg/", "pkg/",
"runtime/tests/", "runtime/tests/",
"samples-dev/", "samples-dev/",
@ -74,35 +74,24 @@
"sdk_nnbd/", "sdk_nnbd/",
"tests/.dart_tool/package_config.json", "tests/.dart_tool/package_config.json",
"tests/angular/", "tests/angular/",
"tests/co19_2/co19_2-analyzer.status",
"tests/co19_2/co19_2-co19.status",
"tests/co19_2/co19_2-dart2js.status",
"tests/co19_2/co19_2-dartdevc.status",
"tests/co19_2/co19_2-kernel.status",
"tests/co19_2/co19_2-runtime.status",
"tests/compiler/", "tests/compiler/",
"tests/corelib_2/",
"tests/corelib/", "tests/corelib/",
"tests/dart/", "tests/dart/",
"tests/kernel/", "tests/kernel/",
"tests/language_2/",
"tests/language/", "tests/language/",
"tests/lib_2/",
"tests/lib/", "tests/lib/",
"tests/light_unittest.dart", "tests/light_unittest.dart",
"tests/search/", "tests/search/",
"tests/standalone_2/",
"tests/ffi/", "tests/ffi/",
"tests/ffi_2/",
"third_party/babel/babel.min.js", "third_party/babel/babel.min.js",
"third_party/d8/", "third_party/d8/",
"third_party/pkg/", "third_party/pkg/",
"third_party/pkg_tested/", "third_party/pkg_tested/",
"third_party/requirejs/", "third_party/requirejs/",
"tools/", "tools/",
"xcodebuild/ReleaseIA32NNBD/dart-sdk/", "xcodebuild/ReleaseIA32/dart-sdk/",
"xcodebuild/ReleaseX64NNBD/dart-sdk/", "xcodebuild/ReleaseX64/dart-sdk/",
"xcodebuild/ReleaseX64NNBD/gen/utils/dartdevc/" "xcodebuild/ReleaseX64/gen/utils/dartdevc/"
], ],
"dart2js_hostasserts": [ "dart2js_hostasserts": [
".packages", ".packages",
@ -152,9 +141,9 @@
"dart2js_hostasserts_nnbd": [ "dart2js_hostasserts_nnbd": [
".packages", ".packages",
".dart_tool/package_config.json", ".dart_tool/package_config.json",
"out/ReleaseX64NNBD/dart", "out/ReleaseX64/dart",
"out/ReleaseX64NNBD/dart2js_platform.dill", "out/ReleaseX64/dart2js_platform.dill",
"out/ReleaseX64NNBD/dart2js_platform_strong.dill", "out/ReleaseX64/dart2js_platform_strong.dill",
"pkg/", "pkg/",
"runtime/tests/", "runtime/tests/",
"samples-dev/", "samples-dev/",
@ -163,37 +152,27 @@
"sdk_nnbd/", "sdk_nnbd/",
"tests/.dart_tool/package_config.json", "tests/.dart_tool/package_config.json",
"tests/angular/", "tests/angular/",
"tests/co19_2/co19_2-analyzer.status",
"tests/co19_2/co19_2-co19.status",
"tests/co19_2/co19_2-dart2js.status",
"tests/co19_2/co19_2-dartdevc.status",
"tests/co19_2/co19_2-kernel.status",
"tests/co19_2/co19_2-runtime.status",
"tests/compiler/", "tests/compiler/",
"tests/corelib_2/",
"tests/dart/", "tests/dart/",
"tests/kernel/", "tests/kernel/",
"tests/language_2/",
"tests/lib_2/",
"tests/light_unittest.dart", "tests/light_unittest.dart",
"tests/search/", "tests/search/",
"tests/standalone_2/",
"tests/ffi/", "tests/ffi/",
"third_party/d8/", "third_party/d8/",
"third_party/pkg/", "third_party/pkg/",
"third_party/pkg_tested/", "third_party/pkg_tested/",
"third_party/requirejs/", "third_party/requirejs/",
"tools/", "tools/",
"xcodebuild/ReleaseX64NNBD/dart", "xcodebuild/ReleaseX64/dart",
"xcodebuild/ReleaseX64NNBD/dart2js_platform.dill", "xcodebuild/ReleaseX64/dart2js_platform.dill",
"xcodebuild/ReleaseX64NNBD/dart2js_platform_strong.dill" "xcodebuild/ReleaseX64/dart2js_platform_strong.dill"
], ],
"front-end": [ "front-end": [
".packages", ".packages",
".dart_tool/package_config.json", ".dart_tool/package_config.json",
"out/ReleaseIA32/", "out/ReleaseIA32/",
"out/ReleaseX64/", "out/ReleaseX64/",
"out/ReleaseX64NNBD/", "out/ReleaseX64/",
"pkg/", "pkg/",
"runtime/tests/", "runtime/tests/",
"samples-dev/", "samples-dev/",
@ -341,45 +320,46 @@
"pkg/vm/", "pkg/vm/",
"runtime/", "runtime/",
"sdk/", "sdk/",
"sdk_nnbd/",
".dart_tool/package_config.json", ".dart_tool/package_config.json",
".packages", ".packages",
".vpython" ".vpython"
], ],
"vm-kernel-nnbd": [ "vm-kernel-nnbd": [
"benchmarks/", "benchmarks/",
"out/DebugIA32NNBD/", "out/DebugIA32/",
"out/DebugX64NNBD/", "out/DebugX64/",
"out/DebugSIMARMNNBD/", "out/DebugSIMARM/",
"out/DebugSIMARM64NNBD/", "out/DebugSIMARM64/",
"out/DebugSIMARM_X64NNBD/", "out/DebugSIMARM_X64/",
"out/DebugAndroidARMNNBD/", "out/DebugAndroidARM/",
"out/DebugAndroidARM_X64NNBD/", "out/DebugAndroidARM_X64/",
"out/DebugAndroidARM64NNBD/", "out/DebugAndroidARM64/",
"out/ReleaseIA32NNBD/", "out/ReleaseIA32/",
"out/ReleaseX64NNBD/", "out/ReleaseX64/",
"out/ReleaseSIMARMNNBD/", "out/ReleaseSIMARM/",
"out/ReleaseSIMARM64NNBD/", "out/ReleaseSIMARM64/",
"out/ReleaseSIMARM_X64NNBD/", "out/ReleaseSIMARM_X64/",
"out/ReleaseAndroidARMNNBD/", "out/ReleaseAndroidARM/",
"out/ReleaseAndroidARM_X64NNBD/", "out/ReleaseAndroidARM_X64/",
"out/ReleaseAndroidARM64NNBD/", "out/ReleaseAndroidARM64/",
"out/ReleaseXARM64NNBD/", "out/ReleaseXARM64/",
"out/ProductIA32NNBD/", "out/ProductIA32/",
"out/ProductX64NNBD/", "out/ProductX64/",
"out/ProductSIMARMNNBD/", "out/ProductSIMARM/",
"out/ProductSIMARM64NNBD/", "out/ProductSIMARM64/",
"out/ProductSIMARM_X64NNBD/", "out/ProductSIMARM_X64/",
"out/ProductAndroidARMNNBD/", "out/ProductAndroidARM/",
"out/ProductAndroidARM64NNBD/", "out/ProductAndroidARM64/",
"xcodebuild/DebugIA32NNBD/", "xcodebuild/DebugIA32/",
"xcodebuild/DebugSIMARMNNBD/", "xcodebuild/DebugSIMARM/",
"xcodebuild/DebugSIMARM64NNBD/", "xcodebuild/DebugSIMARM64/",
"xcodebuild/DebugX64NNBD/", "xcodebuild/DebugX64/",
"xcodebuild/ProductX64NNBD/", "xcodebuild/ProductX64/",
"xcodebuild/ReleaseIA32NNBD/", "xcodebuild/ReleaseIA32/",
"xcodebuild/ReleaseSIMARMNNBD/", "xcodebuild/ReleaseSIMARM/",
"xcodebuild/ReleaseSIMARM64NNBD/", "xcodebuild/ReleaseSIMARM64/",
"xcodebuild/ReleaseX64NNBD/", "xcodebuild/ReleaseX64/",
"samples/", "samples/",
"samples-dev/", "samples-dev/",
"tools/", "tools/",
@ -390,23 +370,12 @@
"third_party/pkg_tested/", "third_party/pkg_tested/",
"tests/.dart_tool/package_config.json", "tests/.dart_tool/package_config.json",
"tests/angular/", "tests/angular/",
"tests/co19_2/co19_2-analyzer.status",
"tests/co19_2/co19_2-co19.status",
"tests/co19_2/co19_2-dart2js.status",
"tests/co19_2/co19_2-dartdevc.status",
"tests/co19_2/co19_2-kernel.status",
"tests/co19_2/co19_2-runtime.status",
"tests/compiler/", "tests/compiler/",
"tests/corelib_2/",
"tests/dart/", "tests/dart/",
"tests/kernel/", "tests/kernel/",
"tests/language_2/",
"tests/lib_2/",
"tests/light_unittest.dart", "tests/light_unittest.dart",
"tests/search/", "tests/search/",
"tests/standalone_2/",
"tests/ffi/", "tests/ffi/",
"tests/ffi_2/",
"pkg/_fe_analyzer_shared/", "pkg/_fe_analyzer_shared/",
"pkg/async_helper/", "pkg/async_helper/",
"pkg/build_integration/", "pkg/build_integration/",
@ -630,7 +599,7 @@
"dart2js-options": [ "dart2js-options": [
"--no-null-safety", "--no-null-safety",
"--libraries-spec=sdk_nnbd/lib/libraries.json", "--libraries-spec=sdk_nnbd/lib/libraries.json",
"--platform-binaries=out/ReleaseX64NNBD/" "--platform-binaries=out/ReleaseX64/"
], ],
"timeout": 240, "timeout": 240,
"host-checked": true "host-checked": true
@ -645,7 +614,7 @@
"dart2js-options": [ "dart2js-options": [
"--no-null-safety", "--no-null-safety",
"--libraries-spec=sdk_nnbd/lib/libraries.json", "--libraries-spec=sdk_nnbd/lib/libraries.json",
"--platform-binaries=xcodebuild/ReleaseX64NNBD/" "--platform-binaries=xcodebuild/ReleaseX64/"
], ],
"timeout": 240, "timeout": 240,
"host-checked": true "host-checked": true
@ -1111,30 +1080,12 @@
"name": "build dart", "name": "build dart",
"script": "tools/build.py", "script": "tools/build.py",
"arguments": [ "arguments": [
"--nnbd",
"create_sdk", "create_sdk",
"dartdevc_test", "dartdevc_test",
"kernel_platform_files", "kernel_platform_files",
"runtime_kernel" "runtime_kernel"
] ]
}, },
{
"name": "legacy sdk tests",
"arguments": [
"-ncfe-weak-${system}"
],
"fileset": "front-end",
"shards": 5
},
{
"name": "legacy co19_2 tests",
"arguments": [
"-ncfe-weak-${system}",
"co19_2"
],
"fileset": "front-end",
"shards": 6
},
{ {
"name": "weak sdk tests", "name": "weak sdk tests",
"arguments": [ "arguments": [
@ -1378,28 +1329,10 @@
"name": "build dart", "name": "build dart",
"script": "tools/build.py", "script": "tools/build.py",
"arguments": [ "arguments": [
"--nnbd",
"runtime_kernel", "runtime_kernel",
"dart_precompiled_runtime" "dart_precompiled_runtime"
] ]
}, },
{
"name": "vm legacy tests in weak mode with asserts",
"arguments": [
"-ndartkp-weak-asserts-${system}-${mode}-${arch}"
],
"fileset": "vm-kernel-nnbd",
"shards": 6
},
{
"name": "vm legacy tests(co19_2) in weak mode with asserts",
"arguments": [
"-ndartkp-weak-asserts-${system}-${mode}-${arch}",
"co19_2"
],
"fileset": "vm-kernel-nnbd",
"shards": 10
},
{ {
"name": "vm nnbd tests in weak mode with asserts", "name": "vm nnbd tests in weak mode with asserts",
"arguments": [ "arguments": [
@ -1741,28 +1674,10 @@
"name": "build dart", "name": "build dart",
"script": "tools/build.py", "script": "tools/build.py",
"arguments": [ "arguments": [
"--nnbd",
"create_sdk", "create_sdk",
"runtime_kernel" "runtime_kernel"
] ]
}, },
{
"name": "vm legacy tests in weak mode with asserts",
"arguments": [
"-ndartk-weak-asserts-${system}-${mode}-${arch}"
],
"fileset": "vm-kernel-nnbd",
"shards": 6
},
{
"name": "vm legacy tests(co19_2) in weak mode with asserts",
"arguments": [
"-ndartk-weak-asserts-${system}-${mode}-${arch}",
"co19_2"
],
"fileset": "vm-kernel-nnbd",
"shards": 6
},
{ {
"name": "vm nnbd test in weak mode with asserts", "name": "vm nnbd test in weak mode with asserts",
"arguments": [ "arguments": [
@ -2038,13 +1953,12 @@
"name": "build dart", "name": "build dart",
"script": "tools/build.py", "script": "tools/build.py",
"arguments": [ "arguments": [
"--nnbd",
"dartdevc_test" "dartdevc_test"
] ]
}, },
{ {
"name": "check dart nnbd sdk for static errors", "name": "check dart nnbd sdk for static errors",
"script": "out/ReleaseX64NNBD/dart-sdk/bin/dart", "script": "out/ReleaseX64/dart-sdk/bin/dart",
"arguments": [ "arguments": [
"--enable-experiment=non-nullable", "--enable-experiment=non-nullable",
"pkg/dev_compiler/tool/check_nnbd_sdk.dart" "pkg/dev_compiler/tool/check_nnbd_sdk.dart"
@ -2052,7 +1966,7 @@
}, },
{ {
"name": "ddc weak modular tests", "name": "ddc weak modular tests",
"script": "out/ReleaseX64NNBD/dart-sdk/bin/dart", "script": "out/ReleaseX64/dart-sdk/bin/dart",
"testRunner": true, "testRunner": true,
"arguments": [ "arguments": [
"pkg/dev_compiler/test/modular_suite_nnbd.dart", "pkg/dev_compiler/test/modular_suite_nnbd.dart",
@ -2073,26 +1987,6 @@
"shards": 6, "shards": 6,
"fileset": "dart2js_nnbd" "fileset": "dart2js_nnbd"
}, },
{
"name": "ddc legacy weak tests",
"arguments": [
"-ndartdevk-weak-linux-release-chrome",
"language_2",
"corelib_2",
"lib_2"
],
"shards": 6,
"fileset": "dart2js_nnbd"
},
{
"name": "ddc legacy weak co19 tests",
"arguments": [
"-ndartdevk-weak-linux-release-chrome",
"co19_2"
],
"shards": 6,
"fileset": "dart2js_nnbd"
},
{ {
"name": "ddc nnbd strong tests", "name": "ddc nnbd strong tests",
"arguments": [ "arguments": [
@ -2618,14 +2512,13 @@
"name": "build dart", "name": "build dart",
"script": "tools/build.py", "script": "tools/build.py",
"arguments": [ "arguments": [
"--nnbd",
"create_sdk", "create_sdk",
"dart2js_bot" "dart2js_bot"
] ]
}, },
{ {
"name": "check dart nnbd sdk for static errors", "name": "check dart nnbd sdk for static errors",
"script": "out/ReleaseX64NNBD/dart-sdk/bin/dart", "script": "out/ReleaseX64/dart-sdk/bin/dart",
"arguments": [ "arguments": [
"--enable-experiment=non-nullable", "--enable-experiment=non-nullable",
"pkg/dev_compiler/tool/check_nnbd_sdk.dart", "pkg/dev_compiler/tool/check_nnbd_sdk.dart",
@ -2638,8 +2531,6 @@
"arguments": [ "arguments": [
"-ndart2js-hostasserts-weak-linux-x64-d8", "-ndart2js-hostasserts-weak-linux-x64-d8",
"--dart2js-batch", "--dart2js-batch",
"language_2",
"corelib_2",
"dart2js_extra", "dart2js_extra",
"dart2js_native", "dart2js_native",
"kernel" "kernel"
@ -3006,7 +2897,6 @@
"name": "build dart", "name": "build dart",
"script": "tools/build.py", "script": "tools/build.py",
"arguments": [ "arguments": [
"--nnbd",
"create_sdk" "create_sdk"
] ]
}, },
@ -3032,19 +2922,6 @@
"standalone" "standalone"
] ]
}, },
{
"name": "analyze nnbd legacy weak tests enable-asserts",
"arguments": [
"-nanalyzer-asserts-weak-${system}"
]
},
{
"name": "analyze nnbd legacy weak tests enable-asserts co19_2",
"arguments": [
"-nanalyzer-asserts-weak-${system}",
"co19_2"
]
},
{ {
"name": "analyze nnbd strong co19 tests", "name": "analyze nnbd strong co19 tests",
"arguments": [ "arguments": [

View file

@ -67,11 +67,12 @@ def BuildOptions():
help='Build variants (comma-separated).', help='Build variants (comma-separated).',
metavar='[all,none,asan,lsan,msan,tsan,ubsan]', metavar='[all,none,asan,lsan,msan,tsan,ubsan]',
default='none') default='none')
# TODO(38701): Remove this and everything that references it once the # TODO(38701): Remove this option once the NNBD SDK is stable/performant
# forked NNBD SDK is merged back in. # and there is no need to build a legacy version of the SDK for comparison
# purposes.
result.add_option( result.add_option(
"--nnbd", "--no-nnbd",
help='Use the NNBD fork of the SDK.', help='Build the Legacy (pre NNBD) version of the SDK.',
default=False, default=False,
action='store_true') action='store_true')
result.add_option( result.add_option(
@ -218,7 +219,7 @@ def GenerateBuildfilesIfNeeded():
return True return True
def RunGNIfNeeded(out_dir, target_os, mode, arch, use_nnbd, sanitizer): def RunGNIfNeeded(out_dir, target_os, mode, arch, dont_use_nnbd, sanitizer):
if os.path.isfile(os.path.join(out_dir, 'args.gn')): if os.path.isfile(os.path.join(out_dir, 'args.gn')):
return return
gn_os = 'host' if target_os == HOST_OS else target_os gn_os = 'host' if target_os == HOST_OS else target_os
@ -235,8 +236,8 @@ def RunGNIfNeeded(out_dir, target_os, mode, arch, use_nnbd, sanitizer):
gn_os, gn_os,
'-v', '-v',
] ]
if use_nnbd: if dont_use_nnbd:
gn_command.append('--nnbd') gn_command.append('--no-nnbd')
process = subprocess.Popen(gn_command) process = subprocess.Popen(gn_command)
process.wait() process.wait()
@ -291,13 +292,13 @@ def EnsureGomaStarted(out_dir):
# Returns a tuple (build_config, command to run, whether goma is used) # Returns a tuple (build_config, command to run, whether goma is used)
def BuildOneConfig(options, targets, target_os, mode, arch, sanitizer): def BuildOneConfig(options, targets, target_os, mode, arch, sanitizer):
build_config = utils.GetBuildConf(mode, arch, target_os, sanitizer, build_config = utils.GetBuildConf(mode, arch, target_os, sanitizer,
options.nnbd) options.no_nnbd)
out_dir = utils.GetBuildRoot(HOST_OS, mode, arch, target_os, sanitizer, out_dir = utils.GetBuildRoot(HOST_OS, mode, arch, target_os, sanitizer,
options.nnbd) options.no_nnbd)
using_goma = False using_goma = False
# TODO(zra): Remove auto-run of gn, replace with prompt for user to run # TODO(zra): Remove auto-run of gn, replace with prompt for user to run
# gn.py manually. # gn.py manually.
RunGNIfNeeded(out_dir, target_os, mode, arch, options.nnbd, sanitizer) RunGNIfNeeded(out_dir, target_os, mode, arch, options.no_nnbd, sanitizer)
command = ['ninja', '-C', out_dir] command = ['ninja', '-C', out_dir]
if options.verbose: if options.verbose:
command += ['-v'] command += ['-v']

View file

@ -51,10 +51,11 @@ def GetGNArgs(args):
return args.split() return args.split()
# TODO(38701): Remove use_nnbd once the forked NNBD SDK is merged back in. # TODO(38701): Remove dont_use_nnbd once the NNBD SDK is stable/performant and
def GetOutDir(mode, arch, target_os, sanitizer, use_nnbd): # there is no need to build a legacy version of the SDK for comparison purposes.
def GetOutDir(mode, arch, target_os, sanitizer, dont_use_nnbd):
return utils.GetBuildRoot(HOST_OS, mode, arch, target_os, sanitizer, return utils.GetBuildRoot(HOST_OS, mode, arch, target_os, sanitizer,
use_nnbd) dont_use_nnbd)
def ToCommandLine(gn_args): def ToCommandLine(gn_args):
@ -138,8 +139,9 @@ def UseSysroot(args, gn_args):
return True return True
# TODO(38701): Remove use_nnbd once the forked NNBD SDK is merged back in. # TODO(38701): Remove dont_use_nnbd once the NNBD SDK is stable/performant and
def ToGnArgs(args, mode, arch, target_os, sanitizer, use_nnbd): # there is no need to build a legacy version of the SDK for comparison purposes.
def ToGnArgs(args, mode, arch, target_os, sanitizer, dont_use_nnbd):
gn_args = {} gn_args = {}
host_os = HostOsForGn(HOST_OS) host_os = HostOsForGn(HOST_OS)
@ -260,7 +262,7 @@ def ToGnArgs(args, mode, arch, target_os, sanitizer, use_nnbd):
gn_args['dart_debug_optimization_level'] = args.debug_opt_level gn_args['dart_debug_optimization_level'] = args.debug_opt_level
gn_args['debug_optimization_level'] = args.debug_opt_level gn_args['debug_optimization_level'] = args.debug_opt_level
gn_args['use_nnbd'] = use_nnbd gn_args['dont_use_nnbd'] = dont_use_nnbd
return gn_args return gn_args
@ -370,9 +372,11 @@ def parse_args(args):
help='Build variants (comma-separated).', help='Build variants (comma-separated).',
metavar='[all,none,asan,lsan,msan,tsan,ubsan]', metavar='[all,none,asan,lsan,msan,tsan,ubsan]',
default='none') default='none')
# TODO(38701): Remove this once the forked NNBD SDK is merged back in. # TODO(38701): Remove dont_use_nnbd once the NNBD SDK is stable/performant
# and there is no need to build a legacy version of the SDK for
# comparison purposes.
common_group.add_argument( common_group.add_argument(
"--nnbd", "--no-nnbd",
help='Use the NNBD fork of the SDK.', help='Use the NNBD fork of the SDK.',
default=False, default=False,
action='store_true') action='store_true')
@ -509,14 +513,14 @@ def Main(argv):
for arch in args.arch: for arch in args.arch:
for sanitizer in args.sanitizer: for sanitizer in args.sanitizer:
out_dir = GetOutDir(mode, arch, target_os, sanitizer, out_dir = GetOutDir(mode, arch, target_os, sanitizer,
args.nnbd) args.no_nnbd)
# TODO(infra): Re-enable --check. Many targets fail to use # TODO(infra): Re-enable --check. Many targets fail to use
# public_deps to re-expose header files to their dependents. # public_deps to re-expose header files to their dependents.
# See dartbug.com/32364 # See dartbug.com/32364
command = [gn, 'gen', out_dir] command = [gn, 'gen', out_dir]
gn_args = ToCommandLine( gn_args = ToCommandLine(
ToGnArgs(args, mode, arch, target_os, sanitizer, ToGnArgs(args, mode, arch, target_os, sanitizer,
args.nnbd)) args.no_nnbd))
gn_args += GetGNArgs(args) gn_args += GetGNArgs(args)
if args.verbose: if args.verbose:
print("gn gen --check in %s" % out_dir) print("gn gen --check in %s" % out_dir)

View file

@ -316,9 +316,11 @@ def IsCrossBuild(target_os, arch):
return ((GetArchFamily(host_arch) != GetArchFamily(arch)) or return ((GetArchFamily(host_arch) != GetArchFamily(arch)) or
(target_os != GuessOS())) (target_os != GuessOS()))
# TODO(38701): Remove use_nnbd once the forked NNBD SDK is merged back in.
def GetBuildConf(mode, arch, conf_os=None, sanitizer=None, use_nnbd=False): # TODO(38701): Remove dont_use_nnbd once the NNBD SDK is stable/performant and
nnbd = "NNBD" if use_nnbd else "" # there is no need to build a legacy version of the SDK for comparison purposes.
def GetBuildConf(mode, arch, conf_os=None, sanitizer=None, dont_use_nnbd=False):
nnbd = "Legacy" if dont_use_nnbd else ""
if conf_os == 'android': if conf_os == 'android':
return '%s%s%s%s' % (GetBuildMode(mode), conf_os.title(), arch.upper(), return '%s%s%s%s' % (GetBuildMode(mode), conf_os.title(), arch.upper(),
nnbd) nnbd)
@ -336,28 +338,30 @@ def GetBuildDir(host_os):
return BUILD_ROOT[host_os] return BUILD_ROOT[host_os]
# TODO(38701): Remove use_nnbd once the forked NNBD SDK is merged back in. # TODO(38701): Remove dont_use_nnbd once the NNBD SDK is stable/performant and
# there is no need to build a legacy version of the SDK for comparison purposes.
def GetBuildRoot(host_os, def GetBuildRoot(host_os,
mode=None, mode=None,
arch=None, arch=None,
target_os=None, target_os=None,
sanitizer=None, sanitizer=None,
use_nnbd=False): dont_use_nnbd=False):
build_root = GetBuildDir(host_os) build_root = GetBuildDir(host_os)
if mode: if mode:
build_root = os.path.join( build_root = os.path.join(
build_root, GetBuildConf(mode, arch, target_os, sanitizer, build_root,
use_nnbd)) GetBuildConf(mode, arch, target_os, sanitizer, dont_use_nnbd))
return build_root return build_root
# TODO(38701): Remove use_nnbd once the forked NNBD SDK is merged back in. # TODO(38701): Remove dont_use_nnbd once the NNBD SDK is stable/performant and
# there is no need to build a legacy version of the SDK for comparison purposes.
def GetBuildSdkBin(host_os, def GetBuildSdkBin(host_os,
mode=None, mode=None,
arch=None, arch=None,
target_os=None, target_os=None,
use_nnbd=False): dont_use_nnbd=False):
build_root = GetBuildRoot(host_os, mode, arch, target_os, use_nnbd) build_root = GetBuildRoot(host_os, mode, arch, target_os, dont_use_nnbd)
return os.path.join(build_root, 'dart-sdk', 'bin') return os.path.join(build_root, 'dart-sdk', 'bin')

View file

@ -46,10 +46,10 @@ prebuilt_dart_action("dart2js_create_snapshot_entry") {
args = [ "--output_dir=$output_dir" ] args = [ "--output_dir=$output_dir" ]
} }
if (use_nnbd) { if (dont_use_nnbd) {
libraries_specification_path = "sdk_nnbd/lib/libraries.json"
} else {
libraries_specification_path = "sdk/lib/libraries.json" libraries_specification_path = "sdk/lib/libraries.json"
} else {
libraries_specification_path = "sdk_nnbd/lib/libraries.json"
} }
application_snapshot("dart2js") { application_snapshot("dart2js") {
@ -91,7 +91,7 @@ compile_platform("compile_dart2js_platform") {
"dart:core", "dart:core",
] ]
if (use_nnbd) { if (!dont_use_nnbd) {
args += [ "--enable-experiment=non-nullable" ] args += [ "--enable-experiment=non-nullable" ]
} }
} }
@ -112,7 +112,7 @@ compile_platform("compile_dart2js_server_platform") {
"dart:core", "dart:core",
] ]
if (use_nnbd) { if (!dont_use_nnbd) {
args += [ "--enable-experiment=non-nullable" ] args += [ "--enable-experiment=non-nullable" ]
} }
} }

View file

@ -44,7 +44,7 @@ prebuilt_dart_action("generate_summary_strong") {
inputs = sdk_lib_files + analyzer_files inputs = sdk_lib_files + analyzer_files
output = "$root_gen_dir/strong.sum" output = "$root_gen_dir/strong.sum"
outputs = [ output ] outputs = [ output ]
if (use_nnbd) { if (!dont_use_nnbd) {
args = [ args = [
"build-non-nullable", "build-non-nullable",
rebase_path(output), rebase_path(output),

View file

@ -16,10 +16,10 @@ sdk_summary = "$target_gen_dir/ddc_sdk.sum"
sdk_outline_dill = "$root_out_dir/ddc_sdk.dill" sdk_outline_dill = "$root_out_dir/ddc_sdk.dill"
sdk_full_dill = "$root_out_dir/ddc_platform.dill" sdk_full_dill = "$root_out_dir/ddc_platform.dill"
if (use_nnbd) { if (dont_use_nnbd) {
libraries_specification_path = "sdk_nnbd/lib/libraries.json"
} else {
libraries_specification_path = "sdk/lib/libraries.json" libraries_specification_path = "sdk/lib/libraries.json"
} else {
libraries_specification_path = "sdk_nnbd/lib/libraries.json"
} }
application_snapshot("dartdevc") { application_snapshot("dartdevc") {
@ -35,7 +35,9 @@ application_snapshot("dartdevc") {
"dartdevc.js", "dartdevc.js",
] ]
if (use_nnbd) { if (dont_use_nnbd) {
training_args += [ rebase_path("../../pkg/dev_compiler/bin/dartdevc.dart") ]
} else {
training_args += [ training_args += [
"--enable-experiment=non-nullable", "--enable-experiment=non-nullable",
@ -45,8 +47,6 @@ application_snapshot("dartdevc") {
# should be easier to compile while we bootstrap NNBD. # should be easier to compile while we bootstrap NNBD.
rebase_path("../../tests/language_2/abstract/equal_test.dart"), rebase_path("../../tests/language_2/abstract/equal_test.dart"),
] ]
} else {
training_args += [ rebase_path("../../pkg/dev_compiler/bin/dartdevc.dart") ]
} }
deps = [ deps = [
@ -58,12 +58,12 @@ application_snapshot("dartdevc") {
} }
# TODO(#38701) Cleanup after merging the forked SDK into mainline. # TODO(#38701) Cleanup after merging the forked SDK into mainline.
if (use_nnbd) { if (dont_use_nnbd) {
sdk_root = "../../sdk_nnbd"
libraries_specification_path = "sdk_nnbd/lib/libraries.json"
} else {
sdk_root = "../../sdk" sdk_root = "../../sdk"
libraries_specification_path = "sdk/lib/libraries.json" libraries_specification_path = "sdk/lib/libraries.json"
} else {
sdk_root = "../../sdk_nnbd"
libraries_specification_path = "sdk_nnbd/lib/libraries.json"
} }
sdk_lib_files = exec_script("../../tools/list_dart_files.py", sdk_lib_files = exec_script("../../tools/list_dart_files.py",
@ -154,8 +154,8 @@ prebuilt_dart_action("dartdevc_patch_sdk") {
] ]
# TODO(#38701) Cleanup after merging the forked SDK into mainline. # TODO(#38701) Cleanup after merging the forked SDK into mainline.
if (use_nnbd) { if (dont_use_nnbd) {
args += [ "--nnbd" ] args += [ "--no-nnbd" ]
} }
} }
@ -276,7 +276,7 @@ template("dartdevc_kernel_compile") {
} }
# TODO(38701): Cleanup after merging the forked SDK into mainline. # TODO(38701): Cleanup after merging the forked SDK into mainline.
if (use_nnbd) { if (!dont_use_nnbd) {
args += [ "--enable-experiment=non-nullable" ] args += [ "--enable-experiment=non-nullable" ]
} }
} }
@ -335,7 +335,7 @@ compile_platform("dartdevc_platform") {
] ]
# TODO(38701): Cleanup after merging the forked SDK into mainline. # TODO(38701): Cleanup after merging the forked SDK into mainline.
if (use_nnbd) { if (!dont_use_nnbd) {
args += [ "--enable-experiment=non-nullable" ] args += [ "--enable-experiment=non-nullable" ]
} }
} }
@ -392,7 +392,7 @@ prebuilt_dart_action("dartdevc_kernel_sdk") {
] ]
# TODO(38701): Cleanup after merging the forked SDK into mainline. # TODO(38701): Cleanup after merging the forked SDK into mainline.
if (use_nnbd) { if (!dont_use_nnbd) {
args += [ "--enable-experiment=non-nullable" ] args += [ "--enable-experiment=non-nullable" ]
} }
} }