From 393468dc8920820a326f70d7cc387f5b4aae7a13 Mon Sep 17 00:00:00 2001 From: asiva Date: Mon, 20 Apr 2020 03:46:06 +0000 Subject: [PATCH] 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 --- BUILD.gn | 6 +- pkg/dartdev/test/commands/migrate_test.dart | 4 +- pkg/dev_compiler/test/modular_suite.dart | 17 +- pkg/test_runner/lib/src/configuration.dart | 9 - .../bytecode/bootstrapping.dart.expect | 304 +++++++- .../testcases/bytecode/closures.dart.expect | 650 ++++++++++++++++++ .../bytecode/field_initializers.dart.expect | 50 ++ .../bytecode/instance_creation.dart.expect | 350 ++++++++++ .../testcases/bytecode/literals.dart.expect | 195 ++++++ pkg/vm/testcases/bytecode/loops.dart.expect | 41 +- .../bytecode/super_calls.dart.expect | 100 +++ .../testcases/bytecode/type_ops.dart.expect | 200 ++++++ .../control_flow.dart.expect | 2 +- .../transformer/bench_is_prime.dart.expect | 4 +- .../invalidation_cycle.dart.expect | 17 +- .../regress_flutter16182.dart.expect | 8 +- .../tear_off_dynamic_method.dart.expect | 2 +- .../tear_off_interface_method.dart.expect | 2 +- .../tear_off_super_method.dart.expect | 4 +- .../uce_testcases.dart.expect | 10 + runtime/BUILD.gn | 4 - runtime/bin/BUILD.gn | 2 +- runtime/vm/BUILD.gn | 12 +- sdk_args.gni | 8 +- tools/bots/test_matrix.json | 233 ++----- tools/build.py | 21 +- tools/gn.py | 24 +- tools/utils.py | 24 +- utils/compiler/BUILD.gn | 10 +- utils/dartanalyzer/BUILD.gn | 2 +- utils/dartdevc/BUILD.gn | 30 +- 31 files changed, 2049 insertions(+), 296 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index dc28b546923..b7f3457fa7f 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -74,13 +74,13 @@ group("runtime_precompiled") { ] } -if (use_nnbd) { +if (dont_use_nnbd) { group("create_sdk") { - public_deps = [ "sdk_nnbd:create_sdk" ] + public_deps = [ "sdk:create_sdk" ] } } else { group("create_sdk") { - public_deps = [ "sdk:create_sdk" ] + public_deps = [ "sdk_nnbd:create_sdk" ] } } diff --git a/pkg/dartdev/test/commands/migrate_test.dart b/pkg/dartdev/test/commands/migrate_test.dart index c3d2c979816..c5f8882e5ca 100644 --- a/pkg/dartdev/test/commands/migrate_test.dart +++ b/pkg/dartdev/test/commands/migrate_test.dart @@ -11,9 +11,7 @@ void main() { group('migrate', defineMigrateTests, timeout: longTimeout); } -// TODO(jcollins-g): Set to true and/or remove when when NNBD is enabled in the -// SDK running this test. -bool _nnbdIsEnabled = false; +bool _nnbdIsEnabled = true; void defineMigrateTests() { final didYouForgetToRunPubGet = contains('Did you forget to run "pub get"?'); diff --git a/pkg/dev_compiler/test/modular_suite.dart b/pkg/dev_compiler/test/modular_suite.dart index 573238d4616..2452fa1c813 100644 --- a/pkg/dev_compiler/test/modular_suite.dart +++ b/pkg/dev_compiler/test/modular_suite.dart @@ -75,7 +75,12 @@ class SourceToSummaryDillStep implements IOModularStep { List extraArgs; if (module.isSdk) { 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); } else { sources = module.sources.map(sourceToImportUri).toList(); @@ -149,7 +154,13 @@ class DDCStep implements IOModularStep { List extraArgs; if (module.isSdk) { sources = ['dart:core']; - extraArgs = ['--compile-sdk']; + extraArgs = [ + '--compile-sdk', + '--libraries-file', + '$rootScheme:///sdk_nnbd/lib/libraries.json', + '--enable-experiment', + 'non-nullable', + ]; assert(transitiveDependencies.isEmpty); } else { var sdkModule = module.dependencies.firstWhere((m) => m.isSdk); @@ -229,6 +240,8 @@ class RunD8 implements IOModularStep { var runjs = ''' import { dart, _isolate_helper } from 'dart_sdk.js'; import { main } from 'main.js'; + // Run with weak null safety. + dart.strictSubtypeChecks(false); _isolate_helper.startRootIsolate(() => {}, []); main.main(); '''; diff --git a/pkg/test_runner/lib/src/configuration.dart b/pkg/test_runner/lib/src/configuration.dart index 239ffcdea42..dfc966ec824 100644 --- a/pkg/test_runner/lib/src/configuration.dart +++ b/pkg/test_runner/lib/src/configuration.dart @@ -468,15 +468,6 @@ class TestConfiguration { var normal = '$result$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 `/sdk_nnbd` has been merged back with - // `/sdk`. - if (experiments.contains("non-nullable")) { - normal += "NNBD"; - cross += "NNBD"; - } - var outDir = system.outputDirectory; var normalDir = Directory(Path('$outDir$normal').toNativePath()); var crossDir = Directory(Path('$outDir$cross').toNativePath()); diff --git a/pkg/vm/testcases/bytecode/bootstrapping.dart.expect b/pkg/vm/testcases/bytecode/bootstrapping.dart.expect index 6f5d2adeb9b..8fbd06a19bb 100644 --- a/pkg/vm/testcases/bytecode/bootstrapping.dart.expect +++ b/pkg/vm/testcases/bytecode/bootstrapping.dart.expect @@ -259,6 +259,46 @@ ConstantPool { [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' extends dart:core::Object implements [#lib::_Namespace] @@ -412,6 +452,46 @@ ConstantPool { [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' extends dart:core::Object @@ -485,6 +565,46 @@ ConstantPool { [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' extends dart:core::Object @@ -585,6 +705,46 @@ ConstantPool { [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' extends dart:core::Object @@ -607,6 +767,46 @@ ConstantPool { [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' 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 { @@ -653,6 +893,16 @@ ConstantPool { synthetic constructor •() → #lib::_ScheduleImmediate* : 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 { static field #lib::_NamespaceImpl* _cachedNamespace = null; @@ -669,13 +919,23 @@ ConstantPool { #lib::_NamespaceImpl::_cachedNamespace = #lib::_NamespaceImpl::_create(new #lib::_NamespaceImpl::_(), namespace); } 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()); } return #lib::_NamespaceImpl::_cachedNamespace; } static get _namespacePointer() → dart.core::int* 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 { synthetic constructor •() → #lib::_Namespace* @@ -688,6 +948,16 @@ ConstantPool { return #lib::_NamespaceImpl::_namespace; static get _namespacePointer() → dart.core::int* 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 { static field dynamic timerFactory = null; @@ -714,11 +984,31 @@ ConstantPool { } 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 { synthetic constructor •() → #lib::Stdin* : 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 { synthetic constructor •() → #lib::_StdIOUtils* @@ -726,6 +1016,16 @@ ConstantPool { ; static method _getStdioInputStream(dart.core::int* fd) → #lib::Stdin* 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* _stdoutFD = 1; @@ -759,7 +1059,7 @@ ConstantPool { #lib::VMLibraryHooks::platformScript = #C10; } 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; } static method main() → dynamic {} diff --git a/pkg/vm/testcases/bytecode/closures.dart.expect b/pkg/vm/testcases/bytecode/closures.dart.expect index 675d337d7e5..2b004efe718 100644 --- a/pkg/vm/testcases/bytecode/closures.dart.expect +++ b/pkg/vm/testcases/bytecode/closures.dart.expect @@ -383,6 +383,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'C2', script = '#lib' extends dart:core::Object @@ -405,6 +445,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'C3', script = '#lib' extends dart:core::Object @@ -427,6 +507,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'C4', script = '#lib' extends dart:core::Object @@ -449,6 +569,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'C5', script = '#lib' extends dart:core::Object @@ -471,6 +631,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'C6', script = '#lib' extends dart:core::Object @@ -493,6 +693,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'C7', script = '#lib' extends dart:core::Object @@ -515,6 +755,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'C8', script = '#lib' extends dart:core::Object @@ -537,6 +817,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'A', script = '#lib' type-params (args: 2) extends dart:core::Object @@ -846,6 +1166,46 @@ ClosureCode { ReturnTOS } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'B', script = '#lib' extends dart:core::Object @@ -1101,6 +1461,46 @@ ClosureCode { ReturnTOS } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'C', script = '#lib' extends dart:core::Object @@ -1380,6 +1780,46 @@ ClosureCode { ReturnTOS } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'D', script = '#lib' type-params (args: 1) extends dart:core::Object @@ -1565,6 +2005,46 @@ ClosureCode { ReturnTOS } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'E', script = '#lib', abstract extends dart:core::Object @@ -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 { @@ -1723,41 +2243,121 @@ ConstantPool { synthetic constructor •() → #lib::C1* : super dart.core::Object::•() ; + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } class C2 extends dart.core::Object { synthetic constructor •() → #lib::C2* : super dart.core::Object::•() ; + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } class C3 extends dart.core::Object { synthetic constructor •() → #lib::C3* : super dart.core::Object::•() ; + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } class C4 extends dart.core::Object { synthetic constructor •() → #lib::C4* : super dart.core::Object::•() ; + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } class C5 extends dart.core::Object { synthetic constructor •() → #lib::C5* : super dart.core::Object::•() ; + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } class C6 extends dart.core::Object { synthetic constructor •() → #lib::C6* : super dart.core::Object::•() ; + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } class C7 extends dart.core::Object { synthetic constructor •() → #lib::C7* : super dart.core::Object::•() ; + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } class C8 extends dart.core::Object { synthetic constructor •() → #lib::C8* : super dart.core::Object::•() ; + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } class A extends dart.core::Object { synthetic constructor •() → #lib::A<#lib::A::T1*, #lib::A::T2*>* @@ -1778,6 +2378,16 @@ ConstantPool { [@vm.call-site-attributes.metadata=receiverType:FunctionType(void Function()*)] nested1.call<#lib::C5*, #lib::C6*>(); [@vm.call-site-attributes.metadata=receiverType:FunctionType(void Function()*)] nested1.call*, dart.core::List<#lib::C6*>*>(); } + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } class B extends dart.core::Object { field dart.core::int* foo = null; @@ -1817,6 +2427,16 @@ ConstantPool { [@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 { 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 extends dart.core::Object { synthetic constructor •() → #lib::D<#lib::D::T*>* @@ -1862,6 +2492,16 @@ ConstantPool { [@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 { 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*)*)] this.{#lib::E::foo2}.call(#t3, #t4); method testCallThroughGetter3() → dart.core::int* return let final #lib::E* #t5 = this.{#lib::E::getE}() in let final dart.core::int* #t6 = this.{#lib::E::evalArg1}() in let final dart.core::int* #t7 = this.{#lib::E::evalArg2}() in [@vm.call-site-attributes.metadata=receiverType:FunctionType(int* Function(T*, T*)*)] #t5.{#lib::E::foo2}.call(#t6, #t7); + abstract member-signature get _identityHashCode() → dart.core::int*; + abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; + abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; + abstract member-signature operator ==(dynamic other) → dart.core::bool*; + abstract member-signature get hashCode() → dart.core::int*; + abstract member-signature method toString() → dart.core::String*; + abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; + abstract member-signature get runtimeType() → dart.core::Type*; } static method simpleClosure() → dart.core::int* { dart.core::int* x = 5; diff --git a/pkg/vm/testcases/bytecode/field_initializers.dart.expect b/pkg/vm/testcases/bytecode/field_initializers.dart.expect index ce083dae3c7..7e0795c8e37 100644 --- a/pkg/vm/testcases/bytecode/field_initializers.dart.expect +++ b/pkg/vm/testcases/bytecode/field_initializers.dart.expect @@ -159,6 +159,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'B', script = '#lib' extends #lib::A @@ -246,6 +286,16 @@ ConstantPool { 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)) ; + 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 { field dart.core::int* foo6 = 46; diff --git a/pkg/vm/testcases/bytecode/instance_creation.dart.expect b/pkg/vm/testcases/bytecode/instance_creation.dart.expect index b3d07d01420..26b018c36f8 100644 --- a/pkg/vm/testcases/bytecode/instance_creation.dart.expect +++ b/pkg/vm/testcases/bytecode/instance_creation.dart.expect @@ -280,6 +280,46 @@ ConstantPool { [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' extends #lib::Base < dart:core::int, dart:core::String > @@ -392,6 +432,46 @@ ConstantPool { [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' type-params (args: 2) extends dart:core::Object @@ -434,6 +514,46 @@ ConstantPool { [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' type-params (args: 4) extends #lib::E < dart:core::String, dart:core::List < #lib::F::TypeParam/1 > > @@ -526,6 +646,46 @@ ConstantPool { [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' type-params (args: 5) extends #lib::G < #lib::H::TypeParam/1, #lib::H::TypeParam/2 > @@ -598,6 +758,46 @@ ConstantPool { [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' extends dart:core::Object @@ -617,6 +817,46 @@ ConstantPool { [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 type-params (args: 2) extends dart:core::Object @@ -645,6 +885,46 @@ ConstantPool { [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' type-params (args: 2) extends #lib::Base < #lib::TestTypeArgReuse::TypeParam/0, #lib::TestTypeArgReuse::TypeParam/1 > @@ -680,6 +960,16 @@ ConstantPool { : super dart.core::Object::•() { 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 { constructor •(dart.core::String* s) → #lib::A* @@ -697,6 +987,16 @@ ConstantPool { : super dart.core::Object::•() { 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 extends dart.core::Object { synthetic constructor •() → #lib::E<#lib::E::K*, #lib::E::V*>* @@ -704,6 +1004,16 @@ ConstantPool { ; method test_reuse1() → dynamic 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 extends #lib::E*> { synthetic constructor •() → #lib::F<#lib::F::K*, #lib::F::V*>* @@ -718,6 +1028,16 @@ ConstantPool { ; static factory test_factory() → #lib::G<#lib::G::test_factory::K*, #lib::G::test_factory::V*>* return new #lib::H::•(); + 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 extends #lib::G<#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* 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 { @#C3 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 extends dart.core::Object { static factory •() → #lib::K<#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

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*>* diff --git a/pkg/vm/testcases/bytecode/literals.dart.expect b/pkg/vm/testcases/bytecode/literals.dart.expect index 316e2e46399..be92e6d1642 100644 --- a/pkg/vm/testcases/bytecode/literals.dart.expect +++ b/pkg/vm/testcases/bytecode/literals.dart.expect @@ -530,6 +530,42 @@ ConstantPool { [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' extends dart:core::Object @@ -559,6 +595,46 @@ ConstantPool { [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' extends #lib::B @@ -633,6 +709,46 @@ ConstantPool { [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' type-params (args: 1) extends dart:core::Object @@ -656,6 +772,46 @@ ConstantPool { [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' type-params (args: 3) extends #lib::E < dart:core::Map < #lib::F::TypeParam/0, #lib::F::TypeParam/1 > > @@ -697,12 +853,31 @@ ConstantPool { ; method toString() → dart.core::String* 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*/ { final field dart.core::int* i; const constructor •(dart.core::int* i) → #lib::B* : #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*/ { final field dart.core::int* j; @@ -716,11 +891,31 @@ ConstantPool { const constructor •(dynamic x, [dynamic y = #C14]) → #lib::D* : #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 extends dart.core::Object /*hasConstConstructor*/ { const constructor •() → #lib::E<#lib::E::T*>* : 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

extends #lib::E*> /*hasConstConstructor*/ { const constructor •() → #lib::F<#lib::F::P*, #lib::F::Q*>* diff --git a/pkg/vm/testcases/bytecode/loops.dart.expect b/pkg/vm/testcases/bytecode/loops.dart.expect index 524ae14cdcb..4b4932f79a9 100644 --- a/pkg/vm/testcases/bytecode/loops.dart.expect +++ b/pkg/vm/testcases/bytecode/loops.dart.expect @@ -26,12 +26,13 @@ L2: Push r1 Push FP[-5] InterfaceCall CP#0, 1 - CompareIntLt + InterfaceCall CP#2, 2 + AssertBoolean 0 JumpIfFalse L1 Push r0 Push FP[-5] Push r1 - InterfaceCall CP#2, 2 + InterfaceCall CP#4, 2 AddInt PopLocal r0 Push r1 @@ -47,8 +48,10 @@ L1: ConstantPool { [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [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 + [4] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] + [5] = Reserved } @@ -72,14 +75,15 @@ L3: Push r1 Push FP[-5] InterfaceCall CP#0, 1 - CompareIntGe + InterfaceCall CP#2, 2 + AssertBoolean 0 JumpIfFalse L2 Jump L1 L2: Push r0 Push FP[-5] Push r1 - InterfaceCall CP#2, 2 + InterfaceCall CP#4, 2 AddInt PopLocal r0 Push r1 @@ -95,8 +99,10 @@ L1: ConstantPool { [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [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 + [4] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] + [5] = Reserved } @@ -117,7 +123,8 @@ L4: Push r1 Push FP[-5] InterfaceCall CP#0, 1 - CompareIntLt + InterfaceCall CP#2, 2 + AssertBoolean 0 JumpIfFalse L1 Push r1 PushInt 0 @@ -128,7 +135,7 @@ L2: Push r0 Push FP[-5] Push r1 - InterfaceCall CP#2, 2 + InterfaceCall CP#4, 2 AddInt PopLocal r0 L3: @@ -145,8 +152,10 @@ L1: ConstantPool { [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [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 + [4] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] + [5] = Reserved } @@ -166,7 +175,8 @@ L2: Push r1 Push FP[-5] InterfaceCall CP#0, 1 - CompareIntLt + InterfaceCall CP#2, 2 + AssertBoolean 0 JumpIfFalse L1 Push r0 Push FP[-5] @@ -178,7 +188,7 @@ L2: StoreLocal r1 PopLocal r3 Push r2 - InterfaceCall CP#2, 2 + InterfaceCall CP#4, 2 AddInt PopLocal r0 Jump L2 @@ -189,8 +199,10 @@ L1: ConstantPool { [0] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [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 + [4] = InterfaceCall 'dart:core::List::[]', ArgDesc num-args 2, num-type-args 0, names [] + [5] = Reserved } @@ -220,7 +232,8 @@ L1: Push r1 Push FP[-5] InterfaceCall CP#2, 1 - CompareIntLt + InterfaceCall CP#4, 2 + AssertBoolean 0 JumpIfTrue L1 Push r0 ReturnTOS @@ -230,6 +243,8 @@ ConstantPool { [1] = Reserved [2] = InterfaceCall 'dart:core::List::get:length', ArgDesc num-args 1, num-type-args 0, names [] [3] = Reserved + [4] = InterfaceCall 'dart:core::num::<', ArgDesc num-args 2, num-type-args 0, names [] + [5] = Reserved } diff --git a/pkg/vm/testcases/bytecode/super_calls.dart.expect b/pkg/vm/testcases/bytecode/super_calls.dart.expect index d8724232204..181a7cb0fe2 100644 --- a/pkg/vm/testcases/bytecode/super_calls.dart.expect +++ b/pkg/vm/testcases/bytecode/super_calls.dart.expect @@ -89,6 +89,46 @@ Bytecode { 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' extends #lib::Base1 @@ -246,6 +286,46 @@ Function 'get:bar', getter, abstract, reflectable, debuggable Function 'set:bazz', setter, abstract, reflectable, debuggable parameters [dart:core::int 'x'] (required: 1) 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 extends #lib::Base2 @@ -482,6 +562,16 @@ ConstantPool { get bar() → dynamic return 42; 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 { synthetic constructor •() → #lib::A* @@ -506,6 +596,16 @@ ConstantPool { abstract method foo(dart.core::String* a1, #lib::Base2::foo::T* a2, dart.core::int* a3) → void; abstract get bar() → dynamic; 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 { synthetic constructor •() → #lib::B* diff --git a/pkg/vm/testcases/bytecode/type_ops.dart.expect b/pkg/vm/testcases/bytecode/type_ops.dart.expect index 8c81f4d2a95..0e65d25b5fd 100644 --- a/pkg/vm/testcases/bytecode/type_ops.dart.expect +++ b/pkg/vm/testcases/bytecode/type_ops.dart.expect @@ -123,6 +123,46 @@ ConstantPool { [1] = Reserved } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'B', script = '#lib' extends #lib::A < dart:core::String > @@ -432,6 +472,46 @@ ConstantPool { [4] = ObjectRef 'T' } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'F', script = '#lib', abstract type-params (args: 1) extends dart:core::Object @@ -465,6 +545,46 @@ Function 'foo8', abstract, reflectable, debuggable type-params <#lib::F::TypeParam/0 Q> parameters [#lib::F::foo8::TypeParam/0 'a', dart:core::num 'b', #lib::F::TypeParam/0 'c'] (required: 3) return-type void + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'G', script = '#lib' type-params (args: 1) extends dart:core::Object @@ -535,6 +655,46 @@ ConstantPool { [6] = ObjectRef < #lib::G::TypeParam/0 > } + +Function 'get:_identityHashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function '_instanceOf', abstract, debuggable + parameters [dynamic 'instantiatorTypeArguments', dynamic 'functionTypeArguments', dynamic 'type'] (required: 3) + return-type dart:core::bool + +Function '_simpleInstanceOf', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfTrue', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '_simpleInstanceOfFalse', abstract, debuggable + parameters [dynamic 'type'] (required: 1) + return-type dart:core::bool + +Function '==', abstract, debuggable + parameters [dynamic 'other'] (required: 1) + return-type dart:core::bool + +Function 'get:hashCode', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::int + +Function 'toString', abstract, debuggable + parameters [] (required: 0) + return-type dart:core::String + +Function 'noSuchMethod', abstract, debuggable + parameters [dart:core::Invocation 'invocation'] (required: 1) + return-type dynamic + +Function 'get:runtimeType', getter, abstract, debuggable + parameters [] (required: 0) + return-type dart:core::Type Class 'H', script = '#lib' type-params (args: 1) extends #lib::G < #lib::H::TypeParam/0 > @@ -683,6 +843,16 @@ ConstantPool { synthetic constructor •() → #lib::A<#lib::A::T*>* : 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 { synthetic constructor •() → #lib::B* @@ -726,6 +896,16 @@ ConstantPool { static factory •

() → #lib::E<#lib::E::•::P*>* return null; method foo6* = 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 extends dart.core::Object { synthetic constructor •() → #lib::F<#lib::F::T*>* @@ -733,12 +913,32 @@ ConstantPool { ; abstract method foo7(#lib::F::foo7::Q* a, covariant dart.core::num* b, generic-covariant-impl #lib::F::T* c) → void; abstract method foo8(#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 extends dart.core::Object { synthetic constructor •() → #lib::G<#lib::G::T*>* : super dart.core::Object::•() ; method foo7(#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 extends #lib::G<#lib::H::T*> implements #lib::F<#lib::H::T*> { synthetic constructor •() → #lib::H<#lib::H::T*>* diff --git a/pkg/vm/testcases/transformations/type_flow/summary_collector/control_flow.dart.expect b/pkg/vm/testcases/transformations/type_flow/summary_collector/control_flow.dart.expect index b840c08f631..0e80af65d27 100644 --- a/pkg/vm/testcases/transformations/type_flow/summary_collector/control_flow.dart.expect +++ b/pkg/vm/testcases/transformations/type_flow/summary_collector/control_flow.dart.expect @@ -129,7 +129,7 @@ t2 = _Call direct [foo] (t1) RESULT: _T {}? ------------ if9 ------------ %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, })) RESULT: _T {}? ------------ conditional1 ------------ diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/bench_is_prime.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/bench_is_prime.dart.expect index 2dcdcb8b82b..839a730056b 100644 --- a/pkg/vm/testcases/transformations/type_flow/transformer/bench_is_prime.dart.expect +++ b/pkg/vm/testcases/transformations/type_flow/transformer/bench_is_prime.dart.expect @@ -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* { if(_in::unsafeCast([@vm.direct-call.metadata=_IntegerImplementation::<] [@vm.inferred-type.metadata=dart.core::bool] n.<(2))) 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(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(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)) return false; } @@ -30,7 +30,7 @@ static method run() → void { } } static method main(core::List* 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)) { self::run(); } diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_cycle.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_cycle.dart.expect index 31fb99c85fe..4b9e7041343 100644 --- a/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_cycle.dart.expect +++ b/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_cycle.dart.expect @@ -22,6 +22,7 @@ abstract class Stream extends 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:3] abstract member-signature operator ==(dynamic other) → core::bool*; } abstract class _StreamImpl extends self::Stream { 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* { 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::•(); } } @@ -38,7 +39,7 @@ class _ControllerStream extends self::_StreamImpl { synthetic constructor •() → self::_ControllerStream* : 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::•(); } } @@ -48,7 +49,7 @@ class _GeneratedStreamImpl extends self::_StreamImpl { ; } 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* : 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* : 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); } -[@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); } -[@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); } -[@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}; } 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::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}; - 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); } } diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/regress_flutter16182.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/regress_flutter16182.dart.expect index 00c3bcf3358..b39b2491d33 100644 --- a/pkg/vm/testcases/transformations/type_flow/transformer/regress_flutter16182.dart.expect +++ b/pkg/vm/testcases/transformations/type_flow/transformer/regress_flutter16182.dart.expect @@ -19,7 +19,7 @@ class A1 extends core::Object { synthetic constructor •() → self::A1* : 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(a5); } } @@ -42,7 +42,7 @@ class A2 extends core::Object { synthetic constructor •() → self::A2* : 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; } } @@ -75,7 +75,7 @@ class A3 extends core::Object { synthetic constructor •() → self::A3* : 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; } } @@ -98,7 +98,7 @@ class A4 extends core::Object { synthetic constructor •() → self::A4* : 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; } } diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_dynamic_method.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_dynamic_method.dart.expect index e232d6bfaf4..1eaa0f92b6d 100644 --- a/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_dynamic_method.dart.expect +++ b/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_dynamic_method.dart.expect @@ -12,7 +12,7 @@ class B extends self::A { : super self::A::•() ; [@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 { [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3,getterSelectorId:4] field dynamic bazz; diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_interface_method.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_interface_method.dart.expect index 868f6f8fbca..66ded4cc53e 100644 --- a/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_interface_method.dart.expect +++ b/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_interface_method.dart.expect @@ -14,7 +14,7 @@ class B extends 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* - return _in::unsafeCast([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 1.{core::num::+}(_in::unsafeCast([@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([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 1.{core::num::+}(_in::unsafeCast([@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* return 3; } diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_super_method.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_super_method.dart.expect index 894ccaa23e2..475df5a5ef8 100644 --- a/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_super_method.dart.expect +++ b/pkg/vm/testcases/transformations/type_flow/transformer/tear_off_super_method.dart.expect @@ -14,14 +14,14 @@ class B extends self::A { : super self::A::•() ; [@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int* - return _in::unsafeCast([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 1.{core::num::+}(_in::unsafeCast([@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([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 1.{core::num::+}(_in::unsafeCast([@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 { synthetic constructor •() → self::Base* : super core::Object::•() ; [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,methodOrSetterSelectorId:1,getterSelectorId:2] method foo() → core::int* - return _in::unsafeCast([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 3.{core::num::+}(_in::unsafeCast([@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([@vm.direct-call.metadata=_IntegerImplementation::+] [@vm.inferred-type.metadata=int (skip check)] 3.{core::num::+}(_in::unsafeCast([@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* return [@vm.call-site-attributes.metadata=receiverType:DynamicType(dynamic)] x.call() as{TypeError,ForDynamic} core::int*; } diff --git a/pkg/vm/testcases/transformations/unreachable_code_elimination/uce_testcases.dart.expect b/pkg/vm/testcases/transformations/unreachable_code_elimination/uce_testcases.dart.expect index 04ae51ae19f..d839d623ecc 100644 --- a/pkg/vm/testcases/transformations/unreachable_code_elimination/uce_testcases.dart.expect +++ b/pkg/vm/testcases/transformations/unreachable_code_elimination/uce_testcases.dart.expect @@ -5,6 +5,16 @@ import "dart:core" as core; class TestAssertInitializer extends core::Object { constructor •() → self::TestAssertInitializer* : 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* constFalse = #C2; diff --git a/runtime/BUILD.gn b/runtime/BUILD.gn index c7d66dc5de0..b47b604da24 100644 --- a/runtime/BUILD.gn +++ b/runtime/BUILD.gn @@ -140,10 +140,6 @@ config("dart_config") { } } - if (use_nnbd) { - defines += [ "DART_BUILT_WITH_NNBD_FLAG" ] - } - if (!is_win) { cflags = [ "-Werror", diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn index abf3f5350be..55668adebfc 100644 --- a/runtime/bin/BUILD.gn +++ b/runtime/bin/BUILD.gn @@ -529,7 +529,7 @@ gen_snapshot_action("generate_snapshot_bin") { isolate_snapshot_instructions, ] args = [] - if (use_nnbd) { + if (!dont_use_nnbd) { args += [ "--enable-experiment=non-nullable", "--null-safety", diff --git a/runtime/vm/BUILD.gn b/runtime/vm/BUILD.gn index d7fe4a20b80..3ff028c5acd 100644 --- a/runtime/vm/BUILD.gn +++ b/runtime/vm/BUILD.gn @@ -154,7 +154,7 @@ template("gen_vm_platform") { } single_root_scheme = "org-dartlang-sdk" single_root_base = rebase_path("../../") - if (use_nnbd) { + if (!dont_use_nnbd) { libraries_specification_uri = "org-dartlang-sdk:///sdk_nnbd/lib/libraries.json" } else { @@ -172,7 +172,7 @@ template("gen_vm_platform") { "-Ddart.developer.causal_async_stacks=$allow_causal_async_stacks", "-Ddart.isVM=true", ] - if (use_nnbd) { + if (!dont_use_nnbd) { args += [ "--enable-experiment=non-nullable" ] args += [ "--nnbd-agnostic" ] } @@ -216,9 +216,7 @@ executable("offsets_extractor") { "..:dart_maybe_product_config", ":libdart_vm_config", ] - sources = [ - "compiler/offsets_extractor.cc", - ] + sources = [ "compiler/offsets_extractor.cc" ] include_dirs = [ ".." ] } @@ -230,8 +228,6 @@ executable("offsets_extractor_precompiled_runtime") { "..:dart_maybe_product_config", ":libdart_vm_config", ] - sources = [ - "compiler/offsets_extractor.cc", - ] + sources = [ "compiler/offsets_extractor.cc" ] include_dirs = [ ".." ] } diff --git a/sdk_args.gni b/sdk_args.gni index 7ebca48dc38..eb4017ed098 100644 --- a/sdk_args.gni +++ b/sdk_args.gni @@ -5,9 +5,11 @@ _dart_root = get_path_info(".", "abspath") declare_args() { - # Whether to use the NNBD fork of the SDK core libraries. - # TODO(#38701): Remove this when the fork has been merged back in. - use_nnbd = false + # Whether to build a Legacy SDK using Legacy core libraries. + # 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. + dont_use_nnbd = false # Absolute path to the .git folder. # diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json index c549bb672c8..fe531d58dbb 100644 --- a/tools/bots/test_matrix.json +++ b/tools/bots/test_matrix.json @@ -17,9 +17,9 @@ "third_party/pkg_tested/", "tools/", "out/ReleaseX64/dart-sdk/", - "out/ReleaseX64NNBD/dart-sdk/", + "out/ReleaseX64/dart-sdk/", "xcodebuild/ReleaseX64/dart-sdk/", - "xcodebuild/ReleaseX64NNBD/dart-sdk/" + "xcodebuild/ReleaseX64/dart-sdk/" ], "dart2js": [ ".packages", @@ -31,7 +31,7 @@ "runtime/tests/", "samples-dev/", "samples/", - "sdk/", + "sdk_nnbd/", "tests/.dart_tool/package_config.json", "tests/angular/", "tests/co19_2/co19_2-analyzer.status", @@ -64,9 +64,9 @@ "dart2js_nnbd": [ ".packages", ".dart_tool/package_config.json", - "out/ReleaseIA32NNBD/dart-sdk/", - "out/ReleaseX64NNBD/dart-sdk/", - "out/ReleaseX64NNBD/gen/utils/dartdevc/", + "out/ReleaseIA32/dart-sdk/", + "out/ReleaseX64/dart-sdk/", + "out/ReleaseX64/gen/utils/dartdevc/", "pkg/", "runtime/tests/", "samples-dev/", @@ -74,35 +74,24 @@ "sdk_nnbd/", "tests/.dart_tool/package_config.json", "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/corelib_2/", "tests/corelib/", "tests/dart/", "tests/kernel/", - "tests/language_2/", "tests/language/", - "tests/lib_2/", "tests/lib/", "tests/light_unittest.dart", "tests/search/", - "tests/standalone_2/", "tests/ffi/", - "tests/ffi_2/", "third_party/babel/babel.min.js", "third_party/d8/", "third_party/pkg/", "third_party/pkg_tested/", "third_party/requirejs/", "tools/", - "xcodebuild/ReleaseIA32NNBD/dart-sdk/", - "xcodebuild/ReleaseX64NNBD/dart-sdk/", - "xcodebuild/ReleaseX64NNBD/gen/utils/dartdevc/" + "xcodebuild/ReleaseIA32/dart-sdk/", + "xcodebuild/ReleaseX64/dart-sdk/", + "xcodebuild/ReleaseX64/gen/utils/dartdevc/" ], "dart2js_hostasserts": [ ".packages", @@ -152,9 +141,9 @@ "dart2js_hostasserts_nnbd": [ ".packages", ".dart_tool/package_config.json", - "out/ReleaseX64NNBD/dart", - "out/ReleaseX64NNBD/dart2js_platform.dill", - "out/ReleaseX64NNBD/dart2js_platform_strong.dill", + "out/ReleaseX64/dart", + "out/ReleaseX64/dart2js_platform.dill", + "out/ReleaseX64/dart2js_platform_strong.dill", "pkg/", "runtime/tests/", "samples-dev/", @@ -163,37 +152,27 @@ "sdk_nnbd/", "tests/.dart_tool/package_config.json", "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/corelib_2/", "tests/dart/", "tests/kernel/", - "tests/language_2/", - "tests/lib_2/", "tests/light_unittest.dart", "tests/search/", - "tests/standalone_2/", "tests/ffi/", "third_party/d8/", "third_party/pkg/", "third_party/pkg_tested/", "third_party/requirejs/", "tools/", - "xcodebuild/ReleaseX64NNBD/dart", - "xcodebuild/ReleaseX64NNBD/dart2js_platform.dill", - "xcodebuild/ReleaseX64NNBD/dart2js_platform_strong.dill" + "xcodebuild/ReleaseX64/dart", + "xcodebuild/ReleaseX64/dart2js_platform.dill", + "xcodebuild/ReleaseX64/dart2js_platform_strong.dill" ], "front-end": [ ".packages", ".dart_tool/package_config.json", "out/ReleaseIA32/", "out/ReleaseX64/", - "out/ReleaseX64NNBD/", + "out/ReleaseX64/", "pkg/", "runtime/tests/", "samples-dev/", @@ -341,45 +320,46 @@ "pkg/vm/", "runtime/", "sdk/", + "sdk_nnbd/", ".dart_tool/package_config.json", ".packages", ".vpython" ], "vm-kernel-nnbd": [ "benchmarks/", - "out/DebugIA32NNBD/", - "out/DebugX64NNBD/", - "out/DebugSIMARMNNBD/", - "out/DebugSIMARM64NNBD/", - "out/DebugSIMARM_X64NNBD/", - "out/DebugAndroidARMNNBD/", - "out/DebugAndroidARM_X64NNBD/", - "out/DebugAndroidARM64NNBD/", - "out/ReleaseIA32NNBD/", - "out/ReleaseX64NNBD/", - "out/ReleaseSIMARMNNBD/", - "out/ReleaseSIMARM64NNBD/", - "out/ReleaseSIMARM_X64NNBD/", - "out/ReleaseAndroidARMNNBD/", - "out/ReleaseAndroidARM_X64NNBD/", - "out/ReleaseAndroidARM64NNBD/", - "out/ReleaseXARM64NNBD/", - "out/ProductIA32NNBD/", - "out/ProductX64NNBD/", - "out/ProductSIMARMNNBD/", - "out/ProductSIMARM64NNBD/", - "out/ProductSIMARM_X64NNBD/", - "out/ProductAndroidARMNNBD/", - "out/ProductAndroidARM64NNBD/", - "xcodebuild/DebugIA32NNBD/", - "xcodebuild/DebugSIMARMNNBD/", - "xcodebuild/DebugSIMARM64NNBD/", - "xcodebuild/DebugX64NNBD/", - "xcodebuild/ProductX64NNBD/", - "xcodebuild/ReleaseIA32NNBD/", - "xcodebuild/ReleaseSIMARMNNBD/", - "xcodebuild/ReleaseSIMARM64NNBD/", - "xcodebuild/ReleaseX64NNBD/", + "out/DebugIA32/", + "out/DebugX64/", + "out/DebugSIMARM/", + "out/DebugSIMARM64/", + "out/DebugSIMARM_X64/", + "out/DebugAndroidARM/", + "out/DebugAndroidARM_X64/", + "out/DebugAndroidARM64/", + "out/ReleaseIA32/", + "out/ReleaseX64/", + "out/ReleaseSIMARM/", + "out/ReleaseSIMARM64/", + "out/ReleaseSIMARM_X64/", + "out/ReleaseAndroidARM/", + "out/ReleaseAndroidARM_X64/", + "out/ReleaseAndroidARM64/", + "out/ReleaseXARM64/", + "out/ProductIA32/", + "out/ProductX64/", + "out/ProductSIMARM/", + "out/ProductSIMARM64/", + "out/ProductSIMARM_X64/", + "out/ProductAndroidARM/", + "out/ProductAndroidARM64/", + "xcodebuild/DebugIA32/", + "xcodebuild/DebugSIMARM/", + "xcodebuild/DebugSIMARM64/", + "xcodebuild/DebugX64/", + "xcodebuild/ProductX64/", + "xcodebuild/ReleaseIA32/", + "xcodebuild/ReleaseSIMARM/", + "xcodebuild/ReleaseSIMARM64/", + "xcodebuild/ReleaseX64/", "samples/", "samples-dev/", "tools/", @@ -390,23 +370,12 @@ "third_party/pkg_tested/", "tests/.dart_tool/package_config.json", "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/corelib_2/", "tests/dart/", "tests/kernel/", - "tests/language_2/", - "tests/lib_2/", "tests/light_unittest.dart", "tests/search/", - "tests/standalone_2/", "tests/ffi/", - "tests/ffi_2/", "pkg/_fe_analyzer_shared/", "pkg/async_helper/", "pkg/build_integration/", @@ -630,7 +599,7 @@ "dart2js-options": [ "--no-null-safety", "--libraries-spec=sdk_nnbd/lib/libraries.json", - "--platform-binaries=out/ReleaseX64NNBD/" + "--platform-binaries=out/ReleaseX64/" ], "timeout": 240, "host-checked": true @@ -645,7 +614,7 @@ "dart2js-options": [ "--no-null-safety", "--libraries-spec=sdk_nnbd/lib/libraries.json", - "--platform-binaries=xcodebuild/ReleaseX64NNBD/" + "--platform-binaries=xcodebuild/ReleaseX64/" ], "timeout": 240, "host-checked": true @@ -1111,30 +1080,12 @@ "name": "build dart", "script": "tools/build.py", "arguments": [ - "--nnbd", "create_sdk", "dartdevc_test", "kernel_platform_files", "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", "arguments": [ @@ -1378,28 +1329,10 @@ "name": "build dart", "script": "tools/build.py", "arguments": [ - "--nnbd", "runtime_kernel", "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", "arguments": [ @@ -1741,28 +1674,10 @@ "name": "build dart", "script": "tools/build.py", "arguments": [ - "--nnbd", "create_sdk", "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", "arguments": [ @@ -2038,13 +1953,12 @@ "name": "build dart", "script": "tools/build.py", "arguments": [ - "--nnbd", "dartdevc_test" ] }, { "name": "check dart nnbd sdk for static errors", - "script": "out/ReleaseX64NNBD/dart-sdk/bin/dart", + "script": "out/ReleaseX64/dart-sdk/bin/dart", "arguments": [ "--enable-experiment=non-nullable", "pkg/dev_compiler/tool/check_nnbd_sdk.dart" @@ -2052,7 +1966,7 @@ }, { "name": "ddc weak modular tests", - "script": "out/ReleaseX64NNBD/dart-sdk/bin/dart", + "script": "out/ReleaseX64/dart-sdk/bin/dart", "testRunner": true, "arguments": [ "pkg/dev_compiler/test/modular_suite_nnbd.dart", @@ -2073,26 +1987,6 @@ "shards": 6, "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", "arguments": [ @@ -2618,14 +2512,13 @@ "name": "build dart", "script": "tools/build.py", "arguments": [ - "--nnbd", "create_sdk", "dart2js_bot" ] }, { "name": "check dart nnbd sdk for static errors", - "script": "out/ReleaseX64NNBD/dart-sdk/bin/dart", + "script": "out/ReleaseX64/dart-sdk/bin/dart", "arguments": [ "--enable-experiment=non-nullable", "pkg/dev_compiler/tool/check_nnbd_sdk.dart", @@ -2638,8 +2531,6 @@ "arguments": [ "-ndart2js-hostasserts-weak-linux-x64-d8", "--dart2js-batch", - "language_2", - "corelib_2", "dart2js_extra", "dart2js_native", "kernel" @@ -3006,7 +2897,6 @@ "name": "build dart", "script": "tools/build.py", "arguments": [ - "--nnbd", "create_sdk" ] }, @@ -3032,19 +2922,6 @@ "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", "arguments": [ diff --git a/tools/build.py b/tools/build.py index 20ac683988b..0d05cd98ea0 100755 --- a/tools/build.py +++ b/tools/build.py @@ -67,11 +67,12 @@ def BuildOptions(): help='Build variants (comma-separated).', metavar='[all,none,asan,lsan,msan,tsan,ubsan]', default='none') - # TODO(38701): Remove this and everything that references it once the - # forked NNBD SDK is merged back in. + # TODO(38701): Remove this option once the NNBD SDK is stable/performant + # and there is no need to build a legacy version of the SDK for comparison + # purposes. result.add_option( - "--nnbd", - help='Use the NNBD fork of the SDK.', + "--no-nnbd", + help='Build the Legacy (pre NNBD) version of the SDK.', default=False, action='store_true') result.add_option( @@ -218,7 +219,7 @@ def GenerateBuildfilesIfNeeded(): 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')): return 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, '-v', ] - if use_nnbd: - gn_command.append('--nnbd') + if dont_use_nnbd: + gn_command.append('--no-nnbd') process = subprocess.Popen(gn_command) process.wait() @@ -291,13 +292,13 @@ def EnsureGomaStarted(out_dir): # Returns a tuple (build_config, command to run, whether goma is used) def BuildOneConfig(options, targets, target_os, mode, arch, 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, - options.nnbd) + options.no_nnbd) using_goma = False # TODO(zra): Remove auto-run of gn, replace with prompt for user to run # 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] if options.verbose: command += ['-v'] diff --git a/tools/gn.py b/tools/gn.py index 99a59cbd1e3..06f26152fc9 100755 --- a/tools/gn.py +++ b/tools/gn.py @@ -51,10 +51,11 @@ def GetGNArgs(args): return args.split() -# TODO(38701): Remove use_nnbd once the forked NNBD SDK is merged back in. -def GetOutDir(mode, arch, target_os, sanitizer, use_nnbd): +# 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 GetOutDir(mode, arch, target_os, sanitizer, dont_use_nnbd): return utils.GetBuildRoot(HOST_OS, mode, arch, target_os, sanitizer, - use_nnbd) + dont_use_nnbd) def ToCommandLine(gn_args): @@ -138,8 +139,9 @@ def UseSysroot(args, gn_args): return True -# TODO(38701): Remove use_nnbd once the forked NNBD SDK is merged back in. -def ToGnArgs(args, mode, arch, target_os, sanitizer, use_nnbd): +# 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 ToGnArgs(args, mode, arch, target_os, sanitizer, dont_use_nnbd): gn_args = {} 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['debug_optimization_level'] = args.debug_opt_level - gn_args['use_nnbd'] = use_nnbd + gn_args['dont_use_nnbd'] = dont_use_nnbd return gn_args @@ -370,9 +372,11 @@ def parse_args(args): help='Build variants (comma-separated).', metavar='[all,none,asan,lsan,msan,tsan,ubsan]', 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( - "--nnbd", + "--no-nnbd", help='Use the NNBD fork of the SDK.', default=False, action='store_true') @@ -509,14 +513,14 @@ def Main(argv): for arch in args.arch: for sanitizer in args.sanitizer: out_dir = GetOutDir(mode, arch, target_os, sanitizer, - args.nnbd) + args.no_nnbd) # TODO(infra): Re-enable --check. Many targets fail to use # public_deps to re-expose header files to their dependents. # See dartbug.com/32364 command = [gn, 'gen', out_dir] gn_args = ToCommandLine( ToGnArgs(args, mode, arch, target_os, sanitizer, - args.nnbd)) + args.no_nnbd)) gn_args += GetGNArgs(args) if args.verbose: print("gn gen --check in %s" % out_dir) diff --git a/tools/utils.py b/tools/utils.py index b1084cce437..5bb768fda27 100644 --- a/tools/utils.py +++ b/tools/utils.py @@ -316,9 +316,11 @@ def IsCrossBuild(target_os, arch): return ((GetArchFamily(host_arch) != GetArchFamily(arch)) or (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): - nnbd = "NNBD" if use_nnbd else "" + +# 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 GetBuildConf(mode, arch, conf_os=None, sanitizer=None, dont_use_nnbd=False): + nnbd = "Legacy" if dont_use_nnbd else "" if conf_os == 'android': return '%s%s%s%s' % (GetBuildMode(mode), conf_os.title(), arch.upper(), nnbd) @@ -336,28 +338,30 @@ def GetBuildDir(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, mode=None, arch=None, target_os=None, sanitizer=None, - use_nnbd=False): + dont_use_nnbd=False): build_root = GetBuildDir(host_os) if mode: build_root = os.path.join( - build_root, GetBuildConf(mode, arch, target_os, sanitizer, - use_nnbd)) + build_root, + GetBuildConf(mode, arch, target_os, sanitizer, dont_use_nnbd)) 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, mode=None, arch=None, target_os=None, - use_nnbd=False): - build_root = GetBuildRoot(host_os, mode, arch, target_os, use_nnbd) + dont_use_nnbd=False): + build_root = GetBuildRoot(host_os, mode, arch, target_os, dont_use_nnbd) return os.path.join(build_root, 'dart-sdk', 'bin') diff --git a/utils/compiler/BUILD.gn b/utils/compiler/BUILD.gn index dda6c4ea627..0ccee9d062e 100644 --- a/utils/compiler/BUILD.gn +++ b/utils/compiler/BUILD.gn @@ -46,10 +46,10 @@ prebuilt_dart_action("dart2js_create_snapshot_entry") { args = [ "--output_dir=$output_dir" ] } -if (use_nnbd) { - libraries_specification_path = "sdk_nnbd/lib/libraries.json" -} else { +if (dont_use_nnbd) { libraries_specification_path = "sdk/lib/libraries.json" +} else { + libraries_specification_path = "sdk_nnbd/lib/libraries.json" } application_snapshot("dart2js") { @@ -91,7 +91,7 @@ compile_platform("compile_dart2js_platform") { "dart:core", ] - if (use_nnbd) { + if (!dont_use_nnbd) { args += [ "--enable-experiment=non-nullable" ] } } @@ -112,7 +112,7 @@ compile_platform("compile_dart2js_server_platform") { "dart:core", ] - if (use_nnbd) { + if (!dont_use_nnbd) { args += [ "--enable-experiment=non-nullable" ] } } diff --git a/utils/dartanalyzer/BUILD.gn b/utils/dartanalyzer/BUILD.gn index 6065802b873..ad342365697 100644 --- a/utils/dartanalyzer/BUILD.gn +++ b/utils/dartanalyzer/BUILD.gn @@ -44,7 +44,7 @@ prebuilt_dart_action("generate_summary_strong") { inputs = sdk_lib_files + analyzer_files output = "$root_gen_dir/strong.sum" outputs = [ output ] - if (use_nnbd) { + if (!dont_use_nnbd) { args = [ "build-non-nullable", rebase_path(output), diff --git a/utils/dartdevc/BUILD.gn b/utils/dartdevc/BUILD.gn index a0fa6b0f6c0..3f4f974c665 100644 --- a/utils/dartdevc/BUILD.gn +++ b/utils/dartdevc/BUILD.gn @@ -16,10 +16,10 @@ sdk_summary = "$target_gen_dir/ddc_sdk.sum" sdk_outline_dill = "$root_out_dir/ddc_sdk.dill" sdk_full_dill = "$root_out_dir/ddc_platform.dill" -if (use_nnbd) { - libraries_specification_path = "sdk_nnbd/lib/libraries.json" -} else { +if (dont_use_nnbd) { libraries_specification_path = "sdk/lib/libraries.json" +} else { + libraries_specification_path = "sdk_nnbd/lib/libraries.json" } application_snapshot("dartdevc") { @@ -35,7 +35,9 @@ application_snapshot("dartdevc") { "dartdevc.js", ] - if (use_nnbd) { + if (dont_use_nnbd) { + training_args += [ rebase_path("../../pkg/dev_compiler/bin/dartdevc.dart") ] + } else { training_args += [ "--enable-experiment=non-nullable", @@ -45,8 +47,6 @@ application_snapshot("dartdevc") { # should be easier to compile while we bootstrap NNBD. rebase_path("../../tests/language_2/abstract/equal_test.dart"), ] - } else { - training_args += [ rebase_path("../../pkg/dev_compiler/bin/dartdevc.dart") ] } deps = [ @@ -58,12 +58,12 @@ application_snapshot("dartdevc") { } # TODO(#38701) Cleanup after merging the forked SDK into mainline. -if (use_nnbd) { - sdk_root = "../../sdk_nnbd" - libraries_specification_path = "sdk_nnbd/lib/libraries.json" -} else { +if (dont_use_nnbd) { sdk_root = "../../sdk" 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", @@ -154,8 +154,8 @@ prebuilt_dart_action("dartdevc_patch_sdk") { ] # TODO(#38701) Cleanup after merging the forked SDK into mainline. - if (use_nnbd) { - args += [ "--nnbd" ] + if (dont_use_nnbd) { + args += [ "--no-nnbd" ] } } @@ -276,7 +276,7 @@ template("dartdevc_kernel_compile") { } # TODO(38701): Cleanup after merging the forked SDK into mainline. - if (use_nnbd) { + if (!dont_use_nnbd) { args += [ "--enable-experiment=non-nullable" ] } } @@ -335,7 +335,7 @@ compile_platform("dartdevc_platform") { ] # TODO(38701): Cleanup after merging the forked SDK into mainline. - if (use_nnbd) { + if (!dont_use_nnbd) { 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. - if (use_nnbd) { + if (!dont_use_nnbd) { args += [ "--enable-experiment=non-nullable" ] } }