Version 2.14.0-278.0.dev
Merge commit 'ba5611a00b86014466a3ecbf3f07035794139ca0' into 'dev'
diff --git a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
index fa2b398..d1d15bb 100644
--- a/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/constant_evaluator.dart
@@ -1874,8 +1874,8 @@
assert(_gotError == null);
// ignore: unnecessary_null_comparison
assert(namedArguments != null);
- error = handleConstructorInvocation(init.target, types,
- positionalArguments, namedArguments, constructor);
+ error = handleConstructorInvocation(
+ init.target, types, positionalArguments, namedArguments, caller);
if (error != null) return error;
} else if (init is RedirectingInitializer) {
// Since a redirecting constructor targets a constructor of the same
@@ -1905,7 +1905,7 @@
assert(namedArguments != null);
error = handleConstructorInvocation(init.target, typeArguments,
- positionalArguments, namedArguments, constructor);
+ positionalArguments, namedArguments, caller);
if (error != null) return error;
} else if (init is AssertInitializer) {
AbortConstant? error = checkAssert(init.statement);
diff --git a/pkg/front_end/test/incremental_suite.dart b/pkg/front_end/test/incremental_suite.dart
index 6efa1ec..a562b6b9 100644
--- a/pkg/front_end/test/incremental_suite.dart
+++ b/pkg/front_end/test/incremental_suite.dart
@@ -1000,7 +1000,9 @@
}
}
- if (!noFullComponent && incrementalSerialization == true) {
+ if (!noFullComponent &&
+ (incrementalSerialization == true ||
+ world["compareWithFromScratch"] == true)) {
// Do compile from scratch and compare.
clearPrevErrorsEtc();
TestIncrementalCompiler compilerFromScratch;
@@ -1036,9 +1038,12 @@
await util.throwOnInsufficientUriToSource(component3);
print("Compile took ${stopwatch.elapsedMilliseconds} ms");
- util.postProcess(component3);
+ List<int> thisWholeComponent = util.postProcess(component3);
print("*****\n\ncomponent3:\n"
"${componentToStringSdkFiltered(component3)}\n\n\n");
+ if (world["compareWithFromScratch"] == true) {
+ checkIsEqual(newestWholeComponentData, thisWholeComponent);
+ }
checkErrorsAndWarnings(prevFormattedErrors, formattedErrors,
prevFormattedWarnings, formattedWarnings);
diff --git a/pkg/front_end/testcases/extensions/annotations.dart.weak.expect b/pkg/front_end/testcases/extensions/annotations.dart.weak.expect
index ac0bdc2..61a26a4 100644
--- a/pkg/front_end/testcases/extensions/annotations.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/annotations.dart.weak.expect
@@ -46,3 +46,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///annotations.dart:
- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart:188:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/extensions/annotations.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/annotations.dart.weak.transformed.expect
index ac0bdc2..61a26a4 100644
--- a/pkg/front_end/testcases/extensions/annotations.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/annotations.dart.weak.transformed.expect
@@ -46,3 +46,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///annotations.dart:
- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart:188:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.weak.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.weak.expect
index 12996fd..13b1fa7 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.weak.expect
@@ -515,6 +515,7 @@
org-dartlang-testcase:///const_collections.dart:
- CustomIterable. (from org-dartlang-testcase:///const_collections.dart:79:9)
- IterableBase. (from org-dartlang-sdk:///sdk/lib/collection/iterable.dart:219:9)
-- WithEquals. (from org-dartlang-testcase:///const_collections.dart:72:9)
+- Iterable. (from org-dartlang-sdk:///sdk/lib/core/iterable.dart:87:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- WithEquals. (from org-dartlang-testcase:///const_collections.dart:72:9)
- CustomMap. (from org-dartlang-testcase:///const_collections.dart:84:9)
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.weak.transformed.expect
index dd0ac62..f8c5584 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.weak.transformed.expect
@@ -515,6 +515,7 @@
org-dartlang-testcase:///const_collections.dart:
- CustomIterable. (from org-dartlang-testcase:///const_collections.dart:79:9)
- IterableBase. (from org-dartlang-sdk:///sdk/lib/collection/iterable.dart:219:9)
-- WithEquals. (from org-dartlang-testcase:///const_collections.dart:72:9)
+- Iterable. (from org-dartlang-sdk:///sdk/lib/core/iterable.dart:87:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- WithEquals. (from org-dartlang-testcase:///const_collections.dart:72:9)
- CustomMap. (from org-dartlang-testcase:///const_collections.dart:84:9)
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.weak.expect b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.weak.expect
index be60587..75eedd4 100644
--- a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.weak.expect
@@ -132,6 +132,7 @@
Constructor coverage from constants:
org-dartlang-testcase:///const_constructor_coverage.dart:
- Foo. (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:9:15)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Foo.named1 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:10:15)
- Foo.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:11:15)
- Foo.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:12:15)
@@ -147,8 +148,8 @@
- Foo.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:12:15)
org-dartlang-testcase:///const_constructor_coverage_lib2.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Bar.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:20:15)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Baz.named4 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:13:15)
- Foo.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:11:15)
- Bar.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:19:15)
diff --git a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.weak.transformed.expect
index be60587..75eedd4 100644
--- a/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/const_constructor_coverage.dart.weak.transformed.expect
@@ -132,6 +132,7 @@
Constructor coverage from constants:
org-dartlang-testcase:///const_constructor_coverage.dart:
- Foo. (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:9:15)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Foo.named1 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:10:15)
- Foo.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:11:15)
- Foo.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:12:15)
@@ -147,8 +148,8 @@
- Foo.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:12:15)
org-dartlang-testcase:///const_constructor_coverage_lib2.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Bar.named3 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:20:15)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Baz.named4 (from org-dartlang-testcase:///const_constructor_coverage_lib2.dart:13:15)
- Foo.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:11:15)
- Bar.named2 (from org-dartlang-testcase:///const_constructor_coverage_lib1.dart:19:15)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.weak.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.weak.expect
index 8a9abbe..65655e9 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.weak.expect
@@ -131,7 +131,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///various_2.dart:
- Class. (from org-dartlang-testcase:///various_2_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///various_2_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class. (from org-dartlang-testcase:///various_2_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.weak.transformed.expect
index 2830193..8f668a2 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various_2.dart.weak.transformed.expect
@@ -140,7 +140,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///various_2.dart:
- Class. (from org-dartlang-testcase:///various_2_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///various_2_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class. (from org-dartlang-testcase:///various_2_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/external_import.dart.weak.expect b/pkg/front_end/testcases/general/external_import.dart.weak.expect
index 36d348d1..b4adba8 100644
--- a/pkg/front_end/testcases/general/external_import.dart.weak.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.weak.expect
@@ -38,3 +38,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///external_import.dart:
- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/external_import.dart.weak.transformed.expect b/pkg/front_end/testcases/general/external_import.dart.weak.transformed.expect
index 36d348d1..b4adba8 100644
--- a/pkg/front_end/testcases/general/external_import.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/external_import.dart.weak.transformed.expect
@@ -38,3 +38,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///external_import.dart:
- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/ffi_sample.dart.weak.expect b/pkg/front_end/testcases/general/ffi_sample.dart.weak.expect
index 1ab807f..6895041 100644
--- a/pkg/front_end/testcases/general/ffi_sample.dart.weak.expect
+++ b/pkg/front_end/testcases/general/ffi_sample.dart.weak.expect
@@ -41,3 +41,6 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_sample.dart:
- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:122:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:34:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/ffi_sample.dart.weak.transformed.expect b/pkg/front_end/testcases/general/ffi_sample.dart.weak.transformed.expect
index 043e13c..87aad44 100644
--- a/pkg/front_end/testcases/general/ffi_sample.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/ffi_sample.dart.weak.transformed.expect
@@ -75,3 +75,6 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_sample.dart:
- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:122:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:34:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/issue31767.dart.weak.expect b/pkg/front_end/testcases/general/issue31767.dart.weak.expect
index 02fa3bd..af92d7d 100644
--- a/pkg/front_end/testcases/general/issue31767.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue31767.dart.weak.expect
@@ -128,7 +128,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///issue31767.dart:
- _A. (from org-dartlang-testcase:///issue31767_lib.dart:20:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///issue31767_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- _A. (from org-dartlang-testcase:///issue31767_lib.dart:20:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/issue31767.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue31767.dart.weak.transformed.expect
index e2ec61f..18bee70 100644
--- a/pkg/front_end/testcases/general/issue31767.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue31767.dart.weak.transformed.expect
@@ -128,7 +128,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///issue31767.dart:
- _A. (from org-dartlang-testcase:///issue31767_lib.dart:20:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///issue31767_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- _A. (from org-dartlang-testcase:///issue31767_lib.dart:20:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/issue45003/main.dart.weak.expect b/pkg/front_end/testcases/general/issue45003/main.dart.weak.expect
index ba331a8..ed97aea 100644
--- a/pkg/front_end/testcases/general/issue45003/main.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue45003/main.dart.weak.expect
@@ -51,9 +51,5 @@
Constructor coverage from constants:
org-dartlang-testcase:///main.dart:
- Bar. (from org-dartlang-testcase:///bar_lib.dart:8:9)
-
-org-dartlang-testcase:///foo_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
-
-org-dartlang-testcase:///bar_lib.dart:
- Foo. (from org-dartlang-testcase:///foo_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/issue45003/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue45003/main.dart.weak.transformed.expect
index 4769a26..f7ed607 100644
--- a/pkg/front_end/testcases/general/issue45003/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue45003/main.dart.weak.transformed.expect
@@ -51,9 +51,5 @@
Constructor coverage from constants:
org-dartlang-testcase:///main.dart:
- Bar. (from org-dartlang-testcase:///bar_lib.dart:8:9)
-
-org-dartlang-testcase:///foo_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
-
-org-dartlang-testcase:///bar_lib.dart:
- Foo. (from org-dartlang-testcase:///foo_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect b/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect
index 8c7b289..16d5138 100644
--- a/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect
@@ -58,3 +58,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///origin_lib.dart:
- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart:188:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect
index 8c7b289..16d5138 100644
--- a/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect
@@ -58,3 +58,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///origin_lib.dart:
- pragma._ (from org-dartlang-sdk:///sdk/lib/core/annotations.dart:188:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.weak.expect b/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.weak.expect
index 9c0b260..2acc3f1 100644
--- a/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.weak.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.weak.expect
@@ -60,10 +60,8 @@
Constructor coverage from constants:
-org-dartlang-testcase:///const_lib.dart:
+org-dartlang-testcase:///main.dart:
+- B. (from org-dartlang-testcase:///const_lib.dart:16:9)
- _B&A&M. (from org-dartlang-testcase:///const_lib.dart:15:7)
- A. (from org-dartlang-testcase:///const_lib.dart:6:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
-
-org-dartlang-testcase:///main.dart:
-- B. (from org-dartlang-testcase:///const_lib.dart:16:9)
diff --git a/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.weak.transformed.expect
index 9c0b260..2acc3f1 100644
--- a/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/with_dependencies/issue43538/main.dart.weak.transformed.expect
@@ -60,10 +60,8 @@
Constructor coverage from constants:
-org-dartlang-testcase:///const_lib.dart:
+org-dartlang-testcase:///main.dart:
+- B. (from org-dartlang-testcase:///const_lib.dart:16:9)
- _B&A&M. (from org-dartlang-testcase:///const_lib.dart:15:7)
- A. (from org-dartlang-testcase:///const_lib.dart:6:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
-
-org-dartlang-testcase:///main.dart:
-- B. (from org-dartlang-testcase:///const_lib.dart:16:9)
diff --git a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml
new file mode 100644
index 0000000..4141487
--- /dev/null
+++ b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml
@@ -0,0 +1,43 @@
+# Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE.md file.
+
+# This previously caused different serialized bytes because of a bug in
+# "constantCoverageConstructors" on sources (where C would be marked in lib
+# both before and after the reload).
+
+type: newworld
+worlds:
+ - entry: main.dart
+ sources:
+ main.dart: |
+ import "lib.dart";
+
+ main() {
+ const c = const C();
+ print(c);
+ }
+ lib.dart: |
+ class A {
+ const A();
+ }
+
+ class B implements A {
+ const B();
+ }
+
+ class C extends B {
+ const C([A a = const A()]) : super();
+ }
+
+ expectedLibraryCount: 2
+ - entry: main.dart
+ compareWithFromScratch: true
+ worldType: updated
+ expectInitializeFromDill: false
+ invalidate:
+ - main.dart
+ sources:
+ main.dart: |
+ import 'lib.dart';
+ expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect
new file mode 100644
index 0000000..8014659
--- /dev/null
+++ b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect
@@ -0,0 +1,51 @@
+main = main::main;
+library from "org-dartlang-test:///lib.dart" as lib {
+
+ class A extends dart.core::Object /*hasConstConstructor*/ {
+ const constructor •() → lib::A*
+ : super dart.core::Object::•()
+ ;
+ abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
+ abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
+ abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
+ abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
+ abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
+ abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
+ abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
+ abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
+ abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ }
+ class B extends dart.core::Object implements lib::A /*hasConstConstructor*/ {
+ const constructor •() → lib::B*
+ : super dart.core::Object::•()
+ ;
+ abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
+ abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
+ abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
+ abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
+ abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
+ abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
+ abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
+ abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
+ abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ }
+ class C extends lib::B /*hasConstConstructor*/ {
+ const constructor •([lib::A* a = #C1]) → lib::C*
+ : super lib::B::•()
+ ;
+ }
+}
+library from "org-dartlang-test:///main.dart" as main {
+
+ import "org-dartlang-test:///lib.dart";
+
+ static method main() → dynamic {
+ dart.core::print(#C2);
+ }
+}
+constants {
+ #C1 = lib::A {}
+ #C2 = lib::C {}
+}
diff --git a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect
new file mode 100644
index 0000000..36461a4
--- /dev/null
+++ b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect
@@ -0,0 +1,47 @@
+main = <No Member>;
+library from "org-dartlang-test:///lib.dart" as lib {
+
+ class A extends dart.core::Object /*hasConstConstructor*/ {
+ const constructor •() → lib::A*
+ : super dart.core::Object::•()
+ ;
+ abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
+ abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
+ abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
+ abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
+ abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
+ abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
+ abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
+ abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
+ abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ }
+ class B extends dart.core::Object implements lib::A /*hasConstConstructor*/ {
+ const constructor •() → lib::B*
+ : super dart.core::Object::•()
+ ;
+ abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
+ abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
+ abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
+ abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
+ abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
+ abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
+ abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
+ abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
+ abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ }
+ class C extends lib::B /*hasConstConstructor*/ {
+ const constructor •([lib::A* a = #C1]) → lib::C*
+ : super lib::B::•()
+ ;
+ }
+}
+library from "org-dartlang-test:///main.dart" as main {
+
+ import "org-dartlang-test:///lib.dart";
+
+}
+constants {
+ #C1 = lib::A {}
+}
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.strong.expect b/pkg/front_end/testcases/nnbd/constants.dart.strong.expect
index 0e0cfb3..d1fd5fe 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.strong.expect
@@ -111,7 +111,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///constants.dart:
- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///constants_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect
index 0e0cfb3..d1fd5fe 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.strong.transformed.expect
@@ -111,7 +111,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///constants.dart:
- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///constants_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.weak.expect b/pkg/front_end/testcases/nnbd/constants.dart.weak.expect
index 759f798..3adb498 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.weak.expect
@@ -111,7 +111,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///constants.dart:
- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///constants_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect
index 759f798..3adb498 100644
--- a/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/constants.dart.weak.transformed.expect
@@ -111,7 +111,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///constants.dart:
- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///constants_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class. (from org-dartlang-testcase:///constants_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.expect b/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.expect
index ff96753..8fae114 100644
--- a/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.expect
@@ -35,3 +35,6 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_sample.dart:
- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:122:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:34:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.transformed.expect
index c313fec..218baf4 100644
--- a/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_sample.dart.strong.transformed.expect
@@ -66,3 +66,6 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_sample.dart:
- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:122:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:34:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.expect b/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.expect
index ff96753..8fae114 100644
--- a/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.expect
@@ -35,3 +35,6 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_sample.dart:
- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:122:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:34:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.transformed.expect
index c313fec..218baf4 100644
--- a/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_sample.dart.weak.transformed.expect
@@ -66,3 +66,6 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_sample.dart:
- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:122:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:34:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.expect
index 385e300..0a88f78 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.expect
@@ -26,3 +26,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_struct_inline_array.dart:
- _ArraySize. (from org-dartlang-sdk:///sdk/lib/ffi/ffi.dart:136:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.transformed.expect
index 157a41b..434c3ba 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.strong.transformed.expect
@@ -53,3 +53,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_struct_inline_array.dart:
- _ArraySize. (from org-dartlang-sdk:///sdk/lib/ffi/ffi.dart:136:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.expect
index 8e37bb2..c47d067 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.expect
@@ -26,3 +26,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_struct_inline_array.dart:
- _ArraySize. (from org-dartlang-sdk:///sdk/lib/ffi/ffi.dart:136:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.transformed.expect
index dedc171..e69f765 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array.dart.weak.transformed.expect
@@ -53,3 +53,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_struct_inline_array.dart:
- _ArraySize. (from org-dartlang-sdk:///sdk/lib/ffi/ffi.dart:136:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.expect
index 0275472..a4505cf3 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.expect
@@ -34,3 +34,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_struct_inline_array_multi_dimensional.dart:
- _ArraySize. (from org-dartlang-sdk:///sdk/lib/ffi/ffi.dart:136:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.transformed.expect
index bb7ab61a..ca13a1b 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.strong.transformed.expect
@@ -85,3 +85,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_struct_inline_array_multi_dimensional.dart:
- _ArraySize. (from org-dartlang-sdk:///sdk/lib/ffi/ffi.dart:136:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.expect
index 8045c2f..3139773 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.expect
@@ -34,3 +34,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_struct_inline_array_multi_dimensional.dart:
- _ArraySize. (from org-dartlang-sdk:///sdk/lib/ffi/ffi.dart:136:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.transformed.expect
index 1ba5718..9adff37 100644
--- a/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/ffi_struct_inline_array_multi_dimensional.dart.weak.transformed.expect
@@ -85,3 +85,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///ffi_struct_inline_array_multi_dimensional.dart:
- _ArraySize. (from org-dartlang-sdk:///sdk/lib/ffi/ffi.dart:136:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/const_canonical_type.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/const_canonical_type.dart.weak.expect
index 92077f0..50d1579 100644
--- a/pkg/front_end/testcases/nnbd_mixed/const_canonical_type.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/const_canonical_type.dart.weak.expect
@@ -111,9 +111,9 @@
Constructor coverage from constants:
org-dartlang-testcase:///const_canonical_type.dart:
- A. (from org-dartlang-testcase:///const_canonical_type_lib.dart:10:9)
-- Check. (from org-dartlang-testcase:///const_canonical_type.dart:11:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- Check. (from org-dartlang-testcase:///const_canonical_type.dart:11:9)
org-dartlang-testcase:///const_canonical_type_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- A. (from org-dartlang-testcase:///const_canonical_type_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/const_canonical_type.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/const_canonical_type.dart.weak.transformed.expect
index 92077f0..50d1579 100644
--- a/pkg/front_end/testcases/nnbd_mixed/const_canonical_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/const_canonical_type.dart.weak.transformed.expect
@@ -111,9 +111,9 @@
Constructor coverage from constants:
org-dartlang-testcase:///const_canonical_type.dart:
- A. (from org-dartlang-testcase:///const_canonical_type_lib.dart:10:9)
-- Check. (from org-dartlang-testcase:///const_canonical_type.dart:11:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- Check. (from org-dartlang-testcase:///const_canonical_type.dart:11:9)
org-dartlang-testcase:///const_canonical_type_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- A. (from org-dartlang-testcase:///const_canonical_type_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect
index f32fd42..991d33b 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.expect
@@ -138,6 +138,7 @@
org-dartlang-testcase:///constant_null_is_lib.dart:
- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:42:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect
index cb3fea5..10a3c61 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constant_null_is.dart.weak.transformed.expect
@@ -157,6 +157,7 @@
org-dartlang-testcase:///constant_null_is_lib.dart:
- Class.constructor1 (from org-dartlang-testcase:///constant_null_is.dart:39:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class.constructor2 (from org-dartlang-testcase:///constant_null_is.dart:40:9)
- Class.constructor3 (from org-dartlang-testcase:///constant_null_is.dart:41:9)
- Class.constructor4 (from org-dartlang-testcase:///constant_null_is.dart:42:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect
index 584622a..22db152 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.expect
@@ -101,7 +101,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///constants.dart:
- Class. (from org-dartlang-testcase:///constants_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///constants_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class. (from org-dartlang-testcase:///constants_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect
index 584622a..22db152 100644
--- a/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/constants.dart.weak.transformed.expect
@@ -101,7 +101,8 @@
Constructor coverage from constants:
org-dartlang-testcase:///constants.dart:
- Class. (from org-dartlang-testcase:///constants_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-testcase:///constants_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class. (from org-dartlang-testcase:///constants_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect
index c8d8780..e1d738d 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect
@@ -129,14 +129,15 @@
Constructor coverage from constants:
org-dartlang-testcase:///main.dart:
- Class1._ (from org-dartlang-testcase:///opt_in_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class2._ (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
- Class3._ (from org-dartlang-testcase:///opt_in_lib.dart:26:9)
- Class4._ (from org-dartlang-testcase:///opt_in_lib.dart:34:9)
- Class5._ (from org-dartlang-testcase:///opt_in_lib.dart:42:9)
org-dartlang-testcase:///opt_in_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class1._ (from org-dartlang-testcase:///opt_in_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class2._ (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
- Class3._ (from org-dartlang-testcase:///opt_in_lib.dart:26:9)
- Class4._ (from org-dartlang-testcase:///opt_in_lib.dart:34:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect
index 93eb282..e67696e 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect
@@ -129,14 +129,15 @@
Constructor coverage from constants:
org-dartlang-testcase:///main.dart:
- Class1._ (from org-dartlang-testcase:///opt_in_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class2._ (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
- Class3._ (from org-dartlang-testcase:///opt_in_lib.dart:26:9)
- Class4._ (from org-dartlang-testcase:///opt_in_lib.dart:34:9)
- Class5._ (from org-dartlang-testcase:///opt_in_lib.dart:42:9)
org-dartlang-testcase:///opt_in_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class1._ (from org-dartlang-testcase:///opt_in_lib.dart:10:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- Class2._ (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
- Class3._ (from org-dartlang-testcase:///opt_in_lib.dart:26:9)
- Class4._ (from org-dartlang-testcase:///opt_in_lib.dart:34:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect
index 7ffad38..0c9e63d 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect
@@ -91,11 +91,9 @@
Constructor coverage from constants:
org-dartlang-testcase:///main.dart:
- CP._ (from org-dartlang-testcase:///opt_in_lib.dart:14:9)
+- P._ (from org-dartlang-testcase:///opt_in_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- XToken. (from org-dartlang-testcase:///main.dart:12:9)
- Token. (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
- VP._ (from org-dartlang-testcase:///opt_in_lib.dart:27:9)
- M. (from org-dartlang-testcase:///opt_in_lib.dart:36:9)
-
-org-dartlang-testcase:///opt_in_lib.dart:
-- P._ (from org-dartlang-testcase:///opt_in_lib.dart:8:9)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect
index f4c2c29..7b1f0d6 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect
@@ -91,11 +91,9 @@
Constructor coverage from constants:
org-dartlang-testcase:///main.dart:
- CP._ (from org-dartlang-testcase:///opt_in_lib.dart:14:9)
+- P._ (from org-dartlang-testcase:///opt_in_lib.dart:8:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- XToken. (from org-dartlang-testcase:///main.dart:12:9)
- Token. (from org-dartlang-testcase:///opt_in_lib.dart:18:9)
- VP._ (from org-dartlang-testcase:///opt_in_lib.dart:27:9)
- M. (from org-dartlang-testcase:///opt_in_lib.dart:36:9)
-
-org-dartlang-testcase:///opt_in_lib.dart:
-- P._ (from org-dartlang-testcase:///opt_in_lib.dart:8:9)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.expect
index 92274e4..7670aed 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.expect
@@ -43,3 +43,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///native_is_illegal.dart:
- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.transformed.expect
index 92274e4..7670aed 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.weak.transformed.expect
@@ -43,3 +43,4 @@
Constructor coverage from constants:
org-dartlang-testcase:///native_is_illegal.dart:
- ExternalName. (from org-dartlang-sdk:///sdk/lib/internal/internal.dart:92:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.weak.expect b/pkg/front_end/testcases/regress/issue_34403.dart.weak.expect
index 5391261..25ed5db 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.weak.expect
@@ -214,6 +214,3 @@
- D.foo (from org-dartlang-testcase:///issue_34403.dart:12:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:10:9)
-
-org-dartlang-testcase:///issue_34403_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/regress/issue_34403.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_34403.dart.weak.transformed.expect
index 5391261..25ed5db 100644
--- a/pkg/front_end/testcases/regress/issue_34403.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34403.dart.weak.transformed.expect
@@ -214,6 +214,3 @@
- D.foo (from org-dartlang-testcase:///issue_34403.dart:12:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
- F.foo (from org-dartlang-testcase:///issue_34403_lib.dart:10:9)
-
-org-dartlang-testcase:///issue_34403_lib.dart:
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/runtime/vm/bitmap.cc b/runtime/vm/bitmap.cc
index 1799816..06119e3 100644
--- a/runtime/vm/bitmap.cc
+++ b/runtime/vm/bitmap.cc
@@ -20,11 +20,12 @@
// First bit index (in the byte) to be cleared.
intptr_t bit_index = new_length & (kBitsPerByte - 1);
intptr_t mask = (1 << bit_index) - 1;
- data_[byte_offset] &= mask;
+ BackingStore()[byte_offset] &= mask;
// Clear the rest.
++byte_offset;
if (byte_offset < data_size_in_bytes_) {
- memset(&data_[byte_offset], 0, data_size_in_bytes_ - byte_offset);
+ memset(&BackingStore()[byte_offset], 0,
+ data_size_in_bytes_ - byte_offset);
}
}
}
@@ -50,15 +51,17 @@
if (value) {
if (!InBackingStore(bit_offset)) {
intptr_t byte_offset = bit_offset >> kBitsPerByteLog2;
- uint8_t* old_data = data_;
+ uint8_t* old_data = BackingStore();
intptr_t old_size = data_size_in_bytes_;
data_size_in_bytes_ =
Utils::RoundUp(byte_offset + 1, kIncrementSizeInBytes);
ASSERT(data_size_in_bytes_ > 0);
- data_ = Thread::Current()->zone()->Alloc<uint8_t>(data_size_in_bytes_);
- ASSERT(data_ != NULL);
- memmove(data_, old_data, old_size);
- memset(&data_[old_size], 0, (data_size_in_bytes_ - old_size));
+ // Note: do not update data_ yet because it might overwrite old_data
+ // contents.
+ uint8_t* new_data = AllocBackingStore(data_size_in_bytes_);
+ memmove(new_data, old_data, old_size);
+ memset(&new_data[old_size], 0, (data_size_in_bytes_ - old_size));
+ data_.ptr_ = new_data;
}
ASSERT(InBackingStore(bit_offset));
}
@@ -107,12 +110,11 @@
// appending trailing zeroes are cleared to ensure deterministic snapshots.
if (extra_size == 0 && Length() % kBitsPerByte != 0) {
const int8_t mask = (1 << (Length() % kBitsPerByte)) - 1;
- ASSERT_EQUAL(data_[payload_size - 1], (data_[payload_size - 1] & mask));
+ ASSERT_EQUAL(BackingStore()[payload_size - 1],
+ (BackingStore()[payload_size - 1] & mask));
}
#endif
- for (intptr_t i = 0; i < payload_size; i++) {
- stream->WriteByte(data_[i]);
- }
+ stream->WriteBytes(BackingStore(), payload_size);
for (intptr_t i = 0; i < extra_size; i++) {
stream->WriteByte(0U);
}
@@ -126,8 +128,7 @@
ASSERT(byte_offset < data_size_in_bytes_);
intptr_t bit_remainder = bit_offset & (kBitsPerByte - 1);
uint8_t mask = 1U << bit_remainder;
- ASSERT(data_ != NULL);
- return ((data_[byte_offset] & mask) != 0);
+ return ((BackingStore()[byte_offset] & mask) != 0);
}
void BitmapBuilder::SetBit(intptr_t bit_offset, bool value) {
@@ -141,11 +142,10 @@
ASSERT(byte_offset < data_size_in_bytes_);
intptr_t bit_remainder = bit_offset & (kBitsPerByte - 1);
uint8_t mask = 1U << bit_remainder;
- ASSERT(data_ != NULL);
if (value) {
- data_[byte_offset] |= mask;
+ BackingStore()[byte_offset] |= mask;
} else {
- data_[byte_offset] &= ~mask;
+ BackingStore()[byte_offset] &= ~mask;
}
}
diff --git a/runtime/vm/bitmap.h b/runtime/vm/bitmap.h
index 1fce760..186f1e6 100644
--- a/runtime/vm/bitmap.h
+++ b/runtime/vm/bitmap.h
@@ -17,12 +17,18 @@
// pointer map description of a stack).
class BitmapBuilder : public ZoneAllocated {
public:
- BitmapBuilder()
- : length_(0),
- data_size_in_bytes_(kInitialSizeInBytes),
- data_(ThreadState::Current()->zone()->Alloc<uint8_t>(
- kInitialSizeInBytes)) {
- memset(data_, 0, kInitialSizeInBytes);
+ BitmapBuilder() : length_(0), data_size_in_bytes_(kInlineCapacityInBytes) {
+ memset(data_.inline_, 0, data_size_in_bytes_);
+ }
+
+ BitmapBuilder(const BitmapBuilder& other)
+ : length_(other.length_), data_size_in_bytes_(other.data_size_in_bytes_) {
+ if (data_size_in_bytes_ == kInlineCapacityInBytes) {
+ memmove(data_.inline_, other.data_.inline_, kInlineCapacityInBytes);
+ } else {
+ data_.ptr_ = AllocBackingStore(data_size_in_bytes_);
+ memmove(data_.ptr_, other.data_.ptr_, data_size_in_bytes_);
+ }
}
intptr_t Length() const { return length_; }
@@ -47,8 +53,8 @@
void AppendAsBytesTo(BaseWriteStream* stream) const;
private:
- static const intptr_t kInitialSizeInBytes = 16;
- static const intptr_t kIncrementSizeInBytes = 16;
+ static constexpr intptr_t kIncrementSizeInBytes = 16;
+ static constexpr intptr_t kInlineCapacityInBytes = 16;
bool InRange(intptr_t offset) const {
if (offset < 0) {
@@ -65,6 +71,20 @@
return byte_offset < data_size_in_bytes_;
}
+ uint8_t* BackingStore() {
+ return data_size_in_bytes_ == kInlineCapacityInBytes ? &data_.inline_[0]
+ : data_.ptr_;
+ }
+
+ const uint8_t* BackingStore() const {
+ return data_size_in_bytes_ == kInlineCapacityInBytes ? &data_.inline_[0]
+ : data_.ptr_;
+ }
+
+ static uint8_t* AllocBackingStore(intptr_t size_in_bytes) {
+ return ThreadState::Current()->zone()->Alloc<uint8_t>(size_in_bytes);
+ }
+
// Get/Set a bit that is known to be covered by the backing store.
bool GetBit(intptr_t bit_offset) const;
void SetBit(intptr_t bit_offset, bool value);
@@ -74,9 +94,10 @@
// Backing store for the bitmap. Reading bits beyond the backing store
// (up to length_) is allowed and they are assumed to be false.
intptr_t data_size_in_bytes_;
- uint8_t* data_;
-
- DISALLOW_COPY_AND_ASSIGN(BitmapBuilder);
+ union {
+ uint8_t* ptr_;
+ uint8_t inline_[kInlineCapacityInBytes];
+ } data_;
};
} // namespace dart
diff --git a/runtime/vm/compiler/backend/flow_graph_compiler.cc b/runtime/vm/compiler/backend/flow_graph_compiler.cc
index 6b2d7d8..5ecdd9e 100644
--- a/runtime/vm/compiler/backend/flow_graph_compiler.cc
+++ b/runtime/vm/compiler/backend/flow_graph_compiler.cc
@@ -949,36 +949,16 @@
ASSERT(registers != NULL);
const intptr_t kFpuRegisterSpillFactor =
kFpuRegisterSize / compiler::target::kWordSize;
- intptr_t saved_registers_size = 0;
const bool using_shared_stub = locs->call_on_shared_slow_path();
- if (using_shared_stub) {
- saved_registers_size =
- Utils::CountOneBitsWord(kDartAvailableCpuRegs) +
- (registers->FpuRegisterCount() > 0
- ? kFpuRegisterSpillFactor * kNumberOfFpuRegisters
- : 0) +
- 1 /*saved PC*/;
- } else {
- saved_registers_size =
- registers->CpuRegisterCount() +
- (registers->FpuRegisterCount() * kFpuRegisterSpillFactor);
- }
- BitmapBuilder* bitmap = locs->stack_bitmap();
+ BitmapBuilder bitmap(locs->stack_bitmap());
- // An instruction may have two safepoints in deferred code. The
- // call to RecordSafepoint has the side-effect of appending the live
- // registers to the bitmap. This is why the second call to RecordSafepoint
- // with the same instruction (and same location summary) sees a bitmap that
- // is larger that StackSize(). It will never be larger than StackSize() +
- // unboxed_arg_bits_count + live_registers_size.
- // The first safepoint will grow the bitmap to be the size of
- // spill_area_size but the second safepoint will truncate the bitmap and
- // append the bits for arguments and live registers to it again.
- const intptr_t bitmap_previous_length = bitmap->Length();
- bitmap->SetLength(spill_area_size);
-
- intptr_t unboxed_arg_bits_count = 0;
+ // Expand the bitmap to cover the whole area reserved for spill slots.
+ // (register allocator takes care of marking slots containing live tagged
+ // values but it does not do the same for other slots so length might be
+ // below spill_area_size at this point).
+ RELEASE_ASSERT(bitmap.Length() <= spill_area_size);
+ bitmap.SetLength(spill_area_size);
auto instr = current_instruction();
const intptr_t args_count = instr->ArgumentCount();
@@ -989,18 +969,16 @@
instr->ArgumentValueAt(i)->instruction()->AsPushArgument();
switch (push_arg->representation()) {
case kUnboxedInt64:
- bitmap->SetRange(
- bitmap->Length(),
- bitmap->Length() + compiler::target::kIntSpillFactor - 1, false);
- unboxed_arg_bits_count += compiler::target::kIntSpillFactor;
+ bitmap.SetRange(
+ bitmap.Length(),
+ bitmap.Length() + compiler::target::kIntSpillFactor - 1, false);
pushed_unboxed = true;
break;
case kUnboxedDouble:
- bitmap->SetRange(
- bitmap->Length(),
- bitmap->Length() + compiler::target::kDoubleSpillFactor - 1,
+ bitmap.SetRange(
+ bitmap.Length(),
+ bitmap.Length() + compiler::target::kDoubleSpillFactor - 1,
false);
- unboxed_arg_bits_count += compiler::target::kDoubleSpillFactor;
pushed_unboxed = true;
break;
case kTagged:
@@ -1012,17 +990,13 @@
// postfix.
continue;
}
- bitmap->Set(bitmap->Length(), true);
- unboxed_arg_bits_count++;
+ bitmap.Set(bitmap.Length(), true);
break;
default:
UNREACHABLE();
break;
}
}
- ASSERT(bitmap_previous_length <=
- (spill_area_size + unboxed_arg_bits_count + saved_registers_size));
-
ASSERT(slow_path_argument_count == 0 || !using_shared_stub);
// Mark the bits in the stack map in the same order we push registers in
@@ -1043,7 +1017,7 @@
FpuRegister reg = static_cast<FpuRegister>(i);
if (regs->ContainsFpuRegister(reg)) {
for (intptr_t j = 0; j < kFpuRegisterSpillFactor; ++j) {
- bitmap->Set(bitmap->Length(), false);
+ bitmap.Set(bitmap.Length(), false);
}
}
}
@@ -1054,7 +1028,7 @@
for (intptr_t i = kNumberOfCpuRegisters - 1; i >= 0; --i) {
Register reg = static_cast<Register>(i);
if (locs->live_registers()->ContainsRegister(reg)) {
- bitmap->Set(bitmap->Length(), locs->live_registers()->IsTagged(reg));
+ bitmap.Set(bitmap.Length(), locs->live_registers()->IsTagged(reg));
}
}
}
@@ -1063,29 +1037,28 @@
// To simplify the code in the shared stub, we create an untagged hole
// in the stack frame where the shared stub can leave the return address
// before saving registers.
- bitmap->Set(bitmap->Length(), false);
+ bitmap.Set(bitmap.Length(), false);
if (registers->FpuRegisterCount() > 0) {
- bitmap->SetRange(bitmap->Length(),
- bitmap->Length() +
- kNumberOfFpuRegisters * kFpuRegisterSpillFactor -
- 1,
- false);
+ bitmap.SetRange(bitmap.Length(),
+ bitmap.Length() +
+ kNumberOfFpuRegisters * kFpuRegisterSpillFactor - 1,
+ false);
}
for (intptr_t i = kNumberOfCpuRegisters - 1; i >= 0; --i) {
if ((kReservedCpuRegisters & (1 << i)) != 0) continue;
const Register reg = static_cast<Register>(i);
- bitmap->Set(bitmap->Length(),
- locs->live_registers()->ContainsRegister(reg) &&
- locs->live_registers()->IsTagged(reg));
+ bitmap.Set(bitmap.Length(),
+ locs->live_registers()->ContainsRegister(reg) &&
+ locs->live_registers()->IsTagged(reg));
}
}
// Arguments pushed after live registers in the slow path are tagged.
for (intptr_t i = 0; i < slow_path_argument_count; ++i) {
- bitmap->Set(bitmap->Length(), true);
+ bitmap.Set(bitmap.Length(), true);
}
- compressed_stackmaps_builder_->AddEntry(assembler()->CodeSize(), bitmap,
+ compressed_stackmaps_builder_->AddEntry(assembler()->CodeSize(), &bitmap,
spill_area_size);
}
}
diff --git a/runtime/vm/compiler/backend/linearscan.cc b/runtime/vm/compiler/backend/linearscan.cc
index d337219..d923216 100644
--- a/runtime/vm/compiler/backend/linearscan.cc
+++ b/runtime/vm/compiler/backend/linearscan.cc
@@ -471,7 +471,7 @@
SafepointPosition* safepoint = first_safepoint();
while (safepoint != NULL) {
THR_Print(" Safepoint [%" Pd "]: ", safepoint->pos());
- safepoint->locs()->stack_bitmap()->Print();
+ safepoint->locs()->stack_bitmap().Print();
THR_Print("\n");
safepoint = safepoint->next();
}
diff --git a/runtime/vm/compiler/backend/locations.h b/runtime/vm/compiler/backend/locations.h
index 22b858f..11ffcdb 100644
--- a/runtime/vm/compiler/backend/locations.h
+++ b/runtime/vm/compiler/backend/locations.h
@@ -781,13 +781,8 @@
void set_out(intptr_t index, Location loc);
- BitmapBuilder* stack_bitmap() {
- if (stack_bitmap_ == NULL) {
- stack_bitmap_ = new BitmapBuilder();
- }
- return stack_bitmap_;
- }
- void SetStackBit(intptr_t index) { stack_bitmap()->Set(index, true); }
+ const BitmapBuilder& stack_bitmap() { return EnsureStackBitmap(); }
+ void SetStackBit(intptr_t index) { EnsureStackBitmap().Set(index, true); }
bool always_calls() const {
return contains_call_ == kCall || contains_call_ == kCallCalleeSafe;
@@ -820,6 +815,13 @@
#endif
private:
+ BitmapBuilder& EnsureStackBitmap() {
+ if (stack_bitmap_ == NULL) {
+ stack_bitmap_ = new BitmapBuilder();
+ }
+ return *stack_bitmap_;
+ }
+
const intptr_t num_inputs_;
Location* input_locations_;
const intptr_t num_temps_;
diff --git a/tools/VERSION b/tools/VERSION
index e6616ec..5edc9e6 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 277
+PRERELEASE 278
PRERELEASE_PATCH 0
\ No newline at end of file