Version 2.13.0-18.0.dev
Merge commit 'cb89632bdcc85124f575a5bc3222e5fcf727d986' into 'dev'
diff --git a/pkg/front_end/test/vm_service_heap_helper.dart b/pkg/front_end/test/vm_service_heap_helper.dart
index c011aea..9b44284 100644
--- a/pkg/front_end/test/vm_service_heap_helper.dart
+++ b/pkg/front_end/test/vm_service_heap_helper.dart
@@ -218,7 +218,7 @@
vmService.HeapSnapshotGraph graph) {
for (vmService.HeapSnapshotField field in class_.fields) {
if (field.name == name) {
- int index = o.references[field.index] - 1;
+ int index = o.references[field.index];
if (index < 0) {
// Sentinel object.
return null;
@@ -233,10 +233,10 @@
vmService.HeapSnapshotObject o,
vmService.HeapSnapshotGraph graph,
Map<Uri, Map<String, List<String>>> prettyPrints) {
- if (o.classId == 0) {
+ if (o.classId <= 0) {
return "Class sentinel";
}
- vmService.HeapSnapshotClass class_ = graph.classes[o.classId - 1];
+ vmService.HeapSnapshotClass class_ = o.klass;
if (class_.name == "_OneByteString") {
return '"${o.data}"';
@@ -293,7 +293,7 @@
new List<bool>.filled(graph.classes.length, false);
for (int i = 0; i < graph.objects.length; i++) {
vmService.HeapSnapshotObject o = graph.objects[i];
- if (o.classId == 0) {
+ if (o.classId <= 0) {
// Sentinel.
continue;
}
@@ -301,7 +301,7 @@
// Class is not interesting.
continue;
}
- vmService.HeapSnapshotClass c = graph.classes[o.classId - 1];
+ vmService.HeapSnapshotClass c = o.klass;
Map<String, List<String>> interests = _interests[c.libraryUri];
if (interests == null || interests.isEmpty) {
// Not an object we care about.
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/error_on_recompile_with_no_change_02.yaml b/pkg/front_end/testcases/incremental_initialize_from_dill/error_on_recompile_with_no_change_02.yaml
new file mode 100644
index 0000000..a6d4c36
--- /dev/null
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/error_on_recompile_with_no_change_02.yaml
@@ -0,0 +1,59 @@
+# 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.
+
+type: newworld
+target: VM
+worlds:
+ - entry: main.dart
+ sources:
+ .dart_tool/package_config.json: |
+ {
+ "configVersion": 2,
+ "packages": [
+ {
+ "name": "flutter",
+ "rootUri": "../flutter",
+ "languageVersion": "2.12"
+ }
+ ]
+ }
+ main.dart: |
+ import 'package:flutter/object.dart';
+ import 'lib1.dart';
+
+ class AdaptorElement extends RenderObject {
+ Adaptor get renderObject => super.renderObject;
+ void foo() {
+ print(renderObject.constraints.axis);
+ }
+ }
+ lib1.dart: |
+ import 'package:flutter/object.dart';
+ import 'lib2.dart';
+ abstract class Adaptor extends RenderFoo with LibMixin {}
+ lib2.dart: |
+ import 'package:flutter/object.dart';
+ mixin LibMixin on RenderObject {}
+ flutter/object.dart: |
+ class RenderFoo extends RenderObject {
+ FooConstraints get constraints => super.constraints as FooConstraints;
+ }
+ class FooConstraints extends Constraints {
+ String get axis => "hello";
+ }
+ class Constraints {}
+ class RenderObject {
+ Constraints get constraints => new Constraints();
+ RenderObject get renderObject => this;
+ }
+ expectedLibraryCount: 4
+
+ - entry: main.dart
+ errors: true
+ worldType: updated
+ expectInitializeFromDill: false
+ invalidate:
+ - main.dart
+ expectedLibraryCount: 4
+
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/error_on_recompile_with_no_change_02.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/error_on_recompile_with_no_change_02.yaml.world.1.expect
new file mode 100644
index 0000000..372791d
--- /dev/null
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/error_on_recompile_with_no_change_02.yaml.world.1.expect
@@ -0,0 +1,106 @@
+main = <No Member>;
+library from "package:flutter/object.dart" as obj {
+
+ class RenderFoo extends obj::RenderObject {
+ synthetic constructor •() → obj::RenderFoo
+ : super obj::RenderObject::•()
+ ;
+ get constraints() → obj::FooConstraints
+ return super.{obj::RenderObject::constraints} as{ForNonNullableByDefault} obj::FooConstraints;
+ }
+ class FooConstraints extends obj::Constraints {
+ synthetic constructor •() → obj::FooConstraints
+ : super obj::Constraints::•()
+ ;
+ get axis() → dart.core::String
+ return "hello";
+ }
+ class Constraints extends dart.core::Object {
+ synthetic constructor •() → obj::Constraints
+ : super dart.core::Object::•()
+ ;
+ }
+ class RenderObject extends dart.core::Object {
+ synthetic constructor •() → obj::RenderObject
+ : super dart.core::Object::•()
+ ;
+ get constraints() → obj::Constraints
+ return new obj::Constraints::•();
+ get renderObject() → obj::RenderObject
+ return this;
+ }
+}
+library from "org-dartlang-test:///lib1.dart" as lib1 {
+
+ import "package:flutter/object.dart";
+ import "org-dartlang-test:///lib2.dart";
+
+ abstract class _Adaptor&RenderFoo&LibMixin extends obj::RenderFoo implements lib2::LibMixin /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → lib1::_Adaptor&RenderFoo&LibMixin*
+ : super obj::RenderFoo::•()
+ ;
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ constraints() → obj::Constraints*; -> obj::RenderObject::constraints
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator /* from org-dartlang-test:///lib2.dart */ ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ hashCode() → dart.core::int*; -> dart.core::Object::hashCode
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ toString() → dart.core::String*; -> dart.core::Object::toString
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ }
+ abstract class Adaptor extends lib1::_Adaptor&RenderFoo&LibMixin {
+ synthetic constructor •() → lib1::Adaptor*
+ : super lib1::_Adaptor&RenderFoo&LibMixin::•()
+ ;
+ }
+}
+library from "org-dartlang-test:///lib2.dart" as lib2 {
+
+ import "package:flutter/object.dart";
+
+ abstract class LibMixin extends obj::RenderObject /*isMixinDeclaration*/ {
+ abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
+ abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
+ 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
+ }
+}
+library from "org-dartlang-test:///main.dart" as main {
+
+ import "package:flutter/object.dart";
+ import "org-dartlang-test:///lib1.dart";
+
+ class AdaptorElement extends obj::RenderObject {
+ synthetic constructor •() → main::AdaptorElement*
+ : super obj::RenderObject::•()
+ ;
+ get renderObject() → lib1::Adaptor*
+ return super.{obj::RenderObject::renderObject} as{TypeError} lib1::Adaptor*;
+ method foo() → void {
+ dart.core::print(this.{main::AdaptorElement::renderObject}.{lib1::_Adaptor&RenderFoo&LibMixin::constraints}.{obj::FooConstraints::axis});
+ }
+ abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
+ 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
+ }
+}
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/error_on_recompile_with_no_change_02.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/error_on_recompile_with_no_change_02.yaml.world.2.expect
new file mode 100644
index 0000000..d241b60
--- /dev/null
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/error_on_recompile_with_no_change_02.yaml.world.2.expect
@@ -0,0 +1,115 @@
+main = <No Member>;
+library from "package:flutter/object.dart" as obj {
+
+ class RenderFoo extends obj::RenderObject {
+ synthetic constructor •() → obj::RenderFoo
+ : super obj::RenderObject::•()
+ ;
+ get constraints() → obj::FooConstraints
+ return super.{obj::RenderObject::constraints} as{ForNonNullableByDefault} obj::FooConstraints;
+ }
+ class FooConstraints extends obj::Constraints {
+ synthetic constructor •() → obj::FooConstraints
+ : super obj::Constraints::•()
+ ;
+ get axis() → dart.core::String
+ return "hello";
+ }
+ class Constraints extends dart.core::Object {
+ synthetic constructor •() → obj::Constraints
+ : super dart.core::Object::•()
+ ;
+ }
+ class RenderObject extends dart.core::Object {
+ synthetic constructor •() → obj::RenderObject
+ : super dart.core::Object::•()
+ ;
+ get constraints() → obj::Constraints
+ return new obj::Constraints::•();
+ get renderObject() → obj::RenderObject
+ return this;
+ }
+}
+library from "org-dartlang-test:///lib1.dart" as lib1 {
+
+ import "package:flutter/object.dart";
+ import "org-dartlang-test:///lib2.dart";
+
+ abstract class _Adaptor&RenderFoo&LibMixin extends obj::RenderFoo implements lib2::LibMixin /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → lib1::_Adaptor&RenderFoo&LibMixin*
+ : super obj::RenderFoo::•()
+ ;
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ constraints() → obj::Constraints*; -> obj::RenderObject::constraints
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
+ abstract member-signature operator /* from org-dartlang-test:///lib2.dart */ ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ hashCode() → dart.core::int*; -> dart.core::Object::hashCode
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ toString() → dart.core::String*; -> dart.core::Object::toString
+ abstract member-signature method /* from org-dartlang-test:///lib2.dart */ noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
+ abstract member-signature get /* from org-dartlang-test:///lib2.dart */ runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ }
+ abstract class Adaptor extends lib1::_Adaptor&RenderFoo&LibMixin {
+ synthetic constructor •() → lib1::Adaptor*
+ : super lib1::_Adaptor&RenderFoo&LibMixin::•()
+ ;
+ }
+}
+library from "org-dartlang-test:///lib2.dart" as lib2 {
+
+ import "package:flutter/object.dart";
+
+ abstract class LibMixin extends obj::RenderObject /*isMixinDeclaration*/ {
+ abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
+ abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
+ 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
+ }
+}
+library from "org-dartlang-test:///main.dart" as main {
+//
+// Problems in library:
+//
+// org-dartlang-test:///main.dart:7:36: Error: The getter 'axis' isn't defined for the class 'Constraints'.
+// - 'Constraints' is from 'package:flutter/object.dart' ('org-dartlang-test:///flutter/object.dart').
+// Try correcting the name to the name of an existing getter, or defining a getter or field named 'axis'.
+// print(renderObject.constraints.axis);
+// ^^^^
+//
+
+ import "package:flutter/object.dart";
+ import "org-dartlang-test:///lib1.dart";
+
+ class AdaptorElement extends obj::RenderObject {
+ synthetic constructor •() → main::AdaptorElement*
+ : super obj::RenderObject::•()
+ ;
+ get renderObject() → lib1::Adaptor*
+ return super.{obj::RenderObject::renderObject} as{TypeError} lib1::Adaptor*;
+ method foo() → void {
+ dart.core::print(invalid-expression "org-dartlang-test:///main.dart:7:36: Error: The getter 'axis' isn't defined for the class 'Constraints'.\n - 'Constraints' is from 'package:flutter/object.dart' ('org-dartlang-test:///flutter/object.dart').\nTry correcting the name to the name of an existing getter, or defining a getter or field named 'axis'.\n print(renderObject.constraints.axis);\n ^^^^");
+ }
+ abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
+ 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
+ }
+}
diff --git a/tools/VERSION b/tools/VERSION
index e152219..c79fbca 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 13
PATCH 0
-PRERELEASE 17
+PRERELEASE 18
PRERELEASE_PATCH 0
\ No newline at end of file