Version 2.9.0-8.2.beta
* Cherry-pick 32d4ac903bb87f2de7f53490d9f2c9befc143edf to beta
diff --git a/pkg/vm/lib/transformations/type_flow/transformer.dart b/pkg/vm/lib/transformations/type_flow/transformer.dart
index 65d3abc..b16f5c1 100644
--- a/pkg/vm/lib/transformations/type_flow/transformer.dart
+++ b/pkg/vm/lib/transformations/type_flow/transformer.dart
@@ -1001,12 +1001,12 @@
@override
TreeNode defaultMember(Member node) {
+ currentMember = node;
if (shaker.isMemberBodyReachable(node)) {
if (kPrintTrace) {
tracePrint("Visiting $node");
}
shaker.addUsedMember(node);
- currentMember = node;
node.transformChildren(this);
} else if (shaker.isMemberReferencedFromNativeCode(node)) {
// Preserve members referenced from native code to satisfy lookups, even
@@ -1015,11 +1015,13 @@
// its enclosing class are allocated.
shaker.addUsedMember(node);
}
+ currentMember = null;
return node;
}
@override
TreeNode visitField(Field node) {
+ currentMember = node;
if (shaker.retainField(node)) {
if (kPrintTrace) {
tracePrint("Visiting $node");
@@ -1037,6 +1039,7 @@
// used as an instance call target.
fieldMorpher.adjustInstanceCallTarget(node, isSetter: true);
}
+ currentMember = null;
return node;
}
diff --git a/tests/language_2/vm/regress_flutter_56479_test.dart b/tests/language_2/vm/regress_flutter_56479_test.dart
new file mode 100644
index 0000000..87e3a70
--- /dev/null
+++ b/tests/language_2/vm/regress_flutter_56479_test.dart
@@ -0,0 +1,19 @@
+// Copyright (c) 2020, 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 file.
+
+// Verifies that optional parameters can be transformed in field initializers.
+// Regression test for https://github.com/flutter/flutter/issues/56479.
+
+import "package:expect/expect.dart";
+
+int bar({int x = 2}) => x + 1;
+
+class A {
+ static int foo = bar(x: 42);
+}
+
+main() {
+ Expect.equals(5, bar(x: 4));
+ Expect.equals(43, A.foo);
+}
diff --git a/tools/VERSION b/tools/VERSION
index a787e17..9e4a364 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -34,6 +34,6 @@
MINOR 9
PATCH 0
PRERELEASE 8
-PRERELEASE_PATCH 1
+PRERELEASE_PATCH 2
ABI_VERSION 32
OLDEST_SUPPORTED_ABI_VERSION 32