Version 2.10.0-28.0.dev
Merge commit 'e597681d2286d1aa3777fdc2e318c3c5df22e6df' into 'dev'
diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json
index 78aa0a4..3136266 100644
--- a/.dart_tool/package_config.json
+++ b/.dart_tool/package_config.json
@@ -11,7 +11,7 @@
"constraint, update this by running tools/generate_package_config.dart."
],
"configVersion": 2,
- "generated": "2020-08-12T09:00:03.727658",
+ "generated": "2020-08-13T10:20:32.864803",
"generator": "tools/generate_package_config.dart",
"packages": [
{
@@ -269,38 +269,8 @@
"languageVersion": "2.2"
},
{
- "name": "front_end_agnostic",
- "rootUri": "../pkg/front_end/testcases/agnostic",
- "packageUri": ".nonexisting/"
- },
- {
- "name": "front_end_general_nnbd_opt_out",
- "rootUri": "../pkg/front_end/testcases/general_nnbd_opt_out",
- "packageUri": ".nonexisting/"
- },
- {
- "name": "front_end_late_lowering",
- "rootUri": "../pkg/front_end/testcases/late_lowering",
- "packageUri": ".nonexisting/"
- },
- {
- "name": "front_end_nnbd",
- "rootUri": "../pkg/front_end/testcases/nnbd",
- "packageUri": ".nonexisting/"
- },
- {
- "name": "front_end_nnbd_mixed",
- "rootUri": "../pkg/front_end/testcases/nnbd_mixed",
- "packageUri": ".nonexisting/"
- },
- {
- "name": "front_end_nonfunction_type_aliases",
- "rootUri": "../pkg/front_end/testcases/nonfunction_type_aliases",
- "packageUri": ".nonexisting/"
- },
- {
- "name": "front_end_value_class",
- "rootUri": "../pkg/front_end/testcases/value_class",
+ "name": "front_end_testcases",
+ "rootUri": "../pkg/front_end/testcases",
"packageUri": ".nonexisting/"
},
{
diff --git a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
index 87a3edf..374efdd 100644
--- a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
@@ -2916,6 +2916,49 @@
}
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Null> codeExperimentNotEnabledNoFlag =
+ messageExperimentNotEnabledNoFlag;
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const MessageCode messageExperimentNotEnabledNoFlag = const MessageCode(
+ "ExperimentNotEnabledNoFlag",
+ analyzerCodes: <String>["ParserErrorCode.EXPERIMENT_NOT_ENABLED"],
+ message:
+ r"""This requires the null safety language feature, which is experimental.""",
+ tip:
+ r"""You can enable the experiment using the '--enable-experiment=non-nullable' command line option.""");
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Template<Message Function(String string2)>
+ templateExperimentNotEnabledNoFlagInvalidLanguageVersion =
+ const Template<Message Function(String string2)>(
+ messageTemplate:
+ r"""This requires the null safety language feature, which is experimental and requires language version of #string2 or higher.""",
+ tipTemplate:
+ r"""You can enable the experiment using the '--enable-experiment=non-nullable' command line option.""",
+ withArguments:
+ _withArgumentsExperimentNotEnabledNoFlagInvalidLanguageVersion);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+const Code<Message Function(String string2)>
+ codeExperimentNotEnabledNoFlagInvalidLanguageVersion =
+ const Code<Message Function(String string2)>(
+ "ExperimentNotEnabledNoFlagInvalidLanguageVersion",
+ templateExperimentNotEnabledNoFlagInvalidLanguageVersion,
+ analyzerCodes: <String>["ParserErrorCode.EXPERIMENT_NOT_ENABLED"]);
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
+Message _withArgumentsExperimentNotEnabledNoFlagInvalidLanguageVersion(
+ String string2) {
+ if (string2.isEmpty) throw 'No string provided';
+ return new Message(codeExperimentNotEnabledNoFlagInvalidLanguageVersion,
+ message:
+ """This requires the null safety language feature, which is experimental and requires language version of ${string2} or higher.""",
+ tip: """You can enable the experiment using the '--enable-experiment=non-nullable' command line option.""",
+ arguments: {'string2': string2});
+}
+
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
const Code<Null> codeExplicitExtensionArgumentMismatch =
messageExplicitExtensionArgumentMismatch;
diff --git a/pkg/front_end/lib/src/fasta/source/stack_listener_impl.dart b/pkg/front_end/lib/src/fasta/source/stack_listener_impl.dart
index 2d4577b..8c048e0 100644
--- a/pkg/front_end/lib/src/fasta/source/stack_listener_impl.dart
+++ b/pkg/front_end/lib/src/fasta/source/stack_listener_impl.dart
@@ -11,6 +11,7 @@
import 'package:_fe_analyzer_shared/src/parser/stack_listener.dart';
import 'package:_fe_analyzer_shared/src/scanner/scanner.dart' show Token;
+import 'package:front_end/src/api_prototype/experimental_flags.dart';
import 'package:kernel/ast.dart'
show AsyncMarker, Expression, FunctionNode, TreeNode;
@@ -101,9 +102,21 @@
} else {
addProblem(messageNonNullableOptOut, token.charOffset, token.charCount);
}
+ } else if (!libraryBuilder.loader.target
+ .isExperimentEnabledGlobally(ExperimentalFlag.nonNullable)) {
+ if (libraryBuilder.languageVersion.version < enableNonNullableVersion) {
+ addProblem(
+ templateExperimentNotEnabledNoFlagInvalidLanguageVersion
+ .withArguments(enableNonNullableVersion.toText()),
+ token.offset,
+ noLength);
+ } else {
+ addProblem(messageExperimentNotEnabledNoFlag, token.offset, noLength);
+ }
} else {
addProblem(
- templateExperimentNotEnabled.withArguments('non-nullable', '2.9'),
+ templateExperimentNotEnabled.withArguments(
+ 'non-nullable', enableNonNullableVersion.toText()),
token.offset,
noLength);
}
diff --git a/pkg/front_end/messages.status b/pkg/front_end/messages.status
index 24385c0..258110e 100644
--- a/pkg/front_end/messages.status
+++ b/pkg/front_end/messages.status
@@ -220,6 +220,8 @@
ExpectedUri/analyzerCode: Fail
ExpectedUri/example: Fail
ExperimentNotEnabled/example: Fail
+ExperimentNotEnabledNoFlag/example: Fail
+ExperimentNotEnabledNoFlagInvalidLanguageVersion/example: Fail
ExplicitExtensionArgumentMismatch/analyzerCode: Fail
ExplicitExtensionArgumentMismatch/example: Fail
ExplicitExtensionAsExpression/analyzerCode: Fail
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index 9da1481..83a6000 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -243,6 +243,16 @@
tip: "Try updating your pubspec.yaml to set the minimum SDK constraint to #string2 or higher, and running 'pub get'."
analyzerCode: ParserErrorCode.EXPERIMENT_NOT_ENABLED
+ExperimentNotEnabledNoFlag:
+ template: "This requires the null safety language feature, which is experimental."
+ tip: "You can enable the experiment using the '--enable-experiment=non-nullable' command line option."
+ analyzerCode: ParserErrorCode.EXPERIMENT_NOT_ENABLED
+
+ExperimentNotEnabledNoFlagInvalidLanguageVersion:
+ template: "This requires the null safety language feature, which is experimental and requires language version of #string2 or higher."
+ tip: "You can enable the experiment using the '--enable-experiment=non-nullable' command line option."
+ analyzerCode: ParserErrorCode.EXPERIMENT_NOT_ENABLED
+
EmptyNamedParameterList:
template: "Named parameter lists cannot be empty."
tip: "Try adding a named parameter to the list."
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart
new file mode 100644
index 0000000..e4d78ca
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart
@@ -0,0 +1,7 @@
+// 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.
+
+int? i;
+
+main() {}
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.outline.expect b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.outline.expect
new file mode 100644
index 0000000..65bed41
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.outline.expect
@@ -0,0 +1,15 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/null_safety_invalid_experiment.dart:5:4: Error: This requires the null safety language feature, which is experimental.
+// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// int? i;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field core::int? i;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.strong.expect b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.strong.expect
new file mode 100644
index 0000000..a2fd43e
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.strong.expect
@@ -0,0 +1,14 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/null_safety_invalid_experiment.dart:5:4: Error: This requires the null safety language feature, which is experimental.
+// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// int? i;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field core::int? i;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.strong.transformed.expect b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.strong.transformed.expect
new file mode 100644
index 0000000..a2fd43e
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.strong.transformed.expect
@@ -0,0 +1,14 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/null_safety_invalid_experiment.dart:5:4: Error: This requires the null safety language feature, which is experimental.
+// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// int? i;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field core::int? i;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.textual_outline.expect b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.textual_outline.expect
new file mode 100644
index 0000000..fbf863a
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.textual_outline.expect
@@ -0,0 +1,2 @@
+int? i;
+main() {}
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..fbf863a
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment.dart.textual_outline_modelled.expect
@@ -0,0 +1,2 @@
+int? i;
+main() {}
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart
new file mode 100644
index 0000000..2f40bd5
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart
@@ -0,0 +1,9 @@
+// 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.
+
+// @dart=2.7
+
+int? i;
+
+main() {}
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.outline.expect b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.outline.expect
new file mode 100644
index 0000000..e55d2e4
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.outline.expect
@@ -0,0 +1,15 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart:7:4: Error: This requires the null safety language feature, which is experimental and requires language version of 2.10 or higher.
+// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// int? i;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field core::int? i;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.strong.expect b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.strong.expect
new file mode 100644
index 0000000..9a19627
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.strong.expect
@@ -0,0 +1,14 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart:7:4: Error: This requires the null safety language feature, which is experimental and requires language version of 2.10 or higher.
+// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// int? i;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field core::int? i;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.strong.transformed.expect b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.strong.transformed.expect
new file mode 100644
index 0000000..9a19627
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.strong.transformed.expect
@@ -0,0 +1,14 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart:7:4: Error: This requires the null safety language feature, which is experimental and requires language version of 2.10 or higher.
+// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// int? i;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field core::int? i;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.textual_outline.expect b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.textual_outline.expect
new file mode 100644
index 0000000..3d2a7f5
--- /dev/null
+++ b/pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+// @dart = 2.7
+int? i;
+main() { }
diff --git a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.outline.expect b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.outline.expect
index 7c1741c..5565e30 100644
--- a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.outline.expect
+++ b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.outline.expect
@@ -6,7 +6,7 @@
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -42,18 +42,8 @@
@_in::patch
class Class extends core::Object {
- synthetic constructor •() → self2::Class*
+ synthetic constructor •() → self2::Class
;
- 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*;
}
library;
diff --git a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.expect b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.expect
index d2a861e..02eadb5 100644
--- a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.expect
+++ b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.expect
@@ -8,7 +8,7 @@
new test::Class::•();
}
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -44,19 +44,9 @@
@#C1
class Class extends core::Object {
- synthetic constructor •() → test::Class*
+ synthetic constructor •() → test::Class
: 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*;
}
library;
diff --git a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.transformed.expect b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.transformed.expect
index d2a861e..02eadb5 100644
--- a/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/platform_invalid_uris/main.dart.strong.transformed.expect
@@ -8,7 +8,7 @@
new test::Class::•();
}
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -44,19 +44,9 @@
@#C1
class Class extends core::Object {
- synthetic constructor •() → test::Class*
+ synthetic constructor •() → test::Class
: 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*;
}
library;
diff --git a/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart b/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart
new file mode 100644
index 0000000..2f40bd5
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart
@@ -0,0 +1,9 @@
+// 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.
+
+// @dart=2.7
+
+int? i;
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart.textual_outline.expect
new file mode 100644
index 0000000..3d2a7f5
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+// @dart = 2.7
+int? i;
+main() { }
diff --git a/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart.weak.expect
new file mode 100644
index 0000000..bdccfd5
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart.weak.expect
@@ -0,0 +1,17 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart:7:4: Error: Null safety features are disabled for this library.
+// Try removing the `@dart=` annotation or setting the language version higher.
+// int? i;
+// ^
+// pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart:5:1: Context: This is the annotation that opts out this library from null safety features.
+// // @dart=2.7
+// ^^^^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static field core::int? i;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart.weak.transformed.expect
new file mode 100644
index 0000000..bdccfd5
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart.weak.transformed.expect
@@ -0,0 +1,17 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart:7:4: Error: Null safety features are disabled for this library.
+// Try removing the `@dart=` annotation or setting the language version higher.
+// int? i;
+// ^
+// pkg/front_end/testcases/nnbd_mixed/null_safety_invalid_language_version.dart:5:1: Context: This is the annotation that opts out this library from null safety features.
+// // @dart=2.7
+// ^^^^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static field core::int? i;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/regress/issue_31180.dart.strong.expect b/pkg/front_end/testcases/regress/issue_31180.dart.strong.expect
index 9187650..213fb86 100644
--- a/pkg/front_end/testcases/regress/issue_31180.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_31180.dart.strong.expect
@@ -2,8 +2,8 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/regress/issue_31180.dart:6:15: Error: This requires the 'non-nullable' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.9 or higher, and running 'pub get'.
+// pkg/front_end/testcases/regress/issue_31180.dart:6:15: Error: This requires the null safety language feature, which is experimental.
+// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
// return null?[1];
// ^
//
diff --git a/pkg/front_end/testcases/regress/issue_31180.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_31180.dart.strong.transformed.expect
index 20ed682..261ed57 100644
--- a/pkg/front_end/testcases/regress/issue_31180.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31180.dart.strong.transformed.expect
@@ -2,8 +2,8 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/regress/issue_31180.dart:6:15: Error: This requires the 'non-nullable' language feature to be enabled.
-// Try updating your pubspec.yaml to set the minimum SDK constraint to 2.9 or higher, and running 'pub get'.
+// pkg/front_end/testcases/regress/issue_31180.dart:6:15: Error: This requires the null safety language feature, which is experimental.
+// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
// return null?[1];
// ^
//
diff --git a/pkg/front_end/testcases/regress/utf_16_le_content.crash_dart.strong.expect b/pkg/front_end/testcases/regress/utf_16_le_content.crash_dart.strong.expect
index 03dca82..66cffa4 100644
--- a/pkg/front_end/testcases/regress/utf_16_le_content.crash_dart.strong.expect
+++ b/pkg/front_end/testcases/regress/utf_16_le_content.crash_dart.strong.expect
Binary files differ
diff --git a/pkg/front_end/testcases/regress/utf_16_le_content.crash_dart.strong.transformed.expect b/pkg/front_end/testcases/regress/utf_16_le_content.crash_dart.strong.transformed.expect
index 03dca82..66cffa4 100644
--- a/pkg/front_end/testcases/regress/utf_16_le_content.crash_dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/utf_16_le_content.crash_dart.strong.transformed.expect
Binary files differ
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index b34f51f..6a70b35 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -10079,6 +10079,9 @@
return false;
}
+ /// Returns this language version as a 'major.minor' text.
+ String toText() => '${major}.${minor}';
+
@override
int get hashCode {
return major.hashCode * 13 + minor.hashCode * 17;
diff --git a/runtime/vm/compiler/ffi/call.cc b/runtime/vm/compiler/ffi/call.cc
index 5cb1598..93d4484 100644
--- a/runtime/vm/compiler/ffi/call.cc
+++ b/runtime/vm/compiler/ffi/call.cc
@@ -4,6 +4,7 @@
#include "vm/compiler/ffi/call.h"
+#include "vm/class_finalizer.h"
#include "vm/symbols.h"
namespace dart {
@@ -50,6 +51,13 @@
function.set_parameter_names(parameter_names);
function.SetFfiCSignature(c_signature);
+ Type& type = Type::Handle(zone);
+ type ^= function.SignatureType(Nullability::kLegacy);
+ type ^= ClassFinalizer::FinalizeType(owner_class, type);
+ function.SetSignatureType(type);
+ ASSERT(
+ Type::Handle(function.SignatureType(Nullability::kLegacy)).IsFinalized());
+
return function.raw();
}
diff --git a/tools/VERSION b/tools/VERSION
index eafca47..956d8fc 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 10
PATCH 0
-PRERELEASE 27
+PRERELEASE 28
PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/generate_package_config.dart b/tools/generate_package_config.dart
old mode 100755
new mode 100644
index c24a655..7c5daf2
--- a/tools/generate_package_config.dart
+++ b/tools/generate_package_config.dart
@@ -26,13 +26,7 @@
];
var cfePackageDirs = [
- packageDirectory('pkg/front_end/testcases/agnostic/'),
- packageDirectory('pkg/front_end/testcases/general_nnbd_opt_out/'),
- packageDirectory('pkg/front_end/testcases/late_lowering/'),
- packageDirectory('pkg/front_end/testcases/nnbd/'),
- packageDirectory('pkg/front_end/testcases/nnbd_mixed/'),
- packageDirectory('pkg/front_end/testcases/nonfunction_type_aliases/'),
- packageDirectory('pkg/front_end/testcases/value_class/'),
+ packageDirectory('pkg/front_end/testcases/'),
];
var feAnalyzerSharedPackageDirs = [