Version 2.12.0-0.0.dev

Merge commit 'a6faf8f2f9c221e8a8bb8c0ec585d6befa679057' into 'dev'
diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json
index b2ba0d5..051ed07 100644
--- a/.dart_tool/package_config.json
+++ b/.dart_tool/package_config.json
@@ -124,7 +124,7 @@
       "name": "benchmark_harness",
       "rootUri": "../third_party/pkg/benchmark_harness",
       "packageUri": "lib/",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     },
     {
       "name": "boolean_selector",
@@ -261,7 +261,7 @@
       "name": "ffi",
       "rootUri": "../third_party/pkg/ffi",
       "packageUri": "lib/",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     },
     {
       "name": "fixnum",
@@ -773,4 +773,4 @@
       "languageVersion": "2.4"
     }
   ]
-}
\ No newline at end of file
+}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 36ad29f..4336a2e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,16 @@
-## 2.11.0
+## 2.12.0
+
+### Language
+
+**Breaking Change** [Null
+Safety](https://dart.dev/null-safety/understanding-null-safety) is now enabled
+by default in all packages with a lower sdk constraint of 2.12.0 or greater.
+Files that are not subject to language versioning (whether because they are not
+contained in a pub package, or because the package that they are contained in
+has no lower sdk constraint) are treated as opted into to null safety by default
+and may report new errors.  Pub packages may be opted out of null safety by
+setting a min sdk constraint in pubspec.yaml of 2.9.0 or less.  Files may be
+opted out of null safety by adding `// @dart=2.9` to the beginning of the file.
 
 ### Core libraries
 
diff --git a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
index 9f390a8..9103fc1 100644
--- a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
@@ -8,7 +8,7 @@
 
 /// The current version of the Dart language (or, for non-stable releases, the
 /// version of the language currently in the process of being developed).
-const _currentVersion = '2.11.0';
+const _currentVersion = '2.12.0';
 
 /// A map containing information about all known experimental flags.
 final _knownFeatures = <String, ExperimentalFeature>{
@@ -98,7 +98,7 @@
     isExpired: IsExpired.non_nullable,
     documentation: 'Non Nullable by default',
     experimentalReleaseVersion: Version.parse('2.10.0'),
-    releaseVersion: null,
+    releaseVersion: Version.parse('2.12.0'),
   );
 
   static final nonfunction_type_aliases = ExperimentalFeature(
@@ -175,7 +175,7 @@
   static const bool extension_methods = true;
 
   /// Default state of the experiment "non-nullable"
-  static const bool non_nullable = false;
+  static const bool non_nullable = true;
 
   /// Default state of the experiment "nonfunction-type-aliases"
   static const bool nonfunction_type_aliases = false;
diff --git a/pkg/compiler/test/codegen/data/tdiv1.dart b/pkg/compiler/test/codegen/data/tdiv1.dart
index 554e0c6..fb8d4d0b 100644
--- a/pkg/compiler/test/codegen/data/tdiv1.dart
+++ b/pkg/compiler/test/codegen/data/tdiv1.dart
@@ -2,7 +2,7 @@
 // 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.10
+//@dart=2.12
 
 /*member: main:ignore*/
 void main() {
diff --git a/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart b/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart
index 4be55af..9be22af 100644
--- a/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart
+++ b/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart
@@ -24,17 +24,17 @@
 }
 
 const Version enableAlternativeInvalidationStrategyVersion =
-    const Version(2, 11);
+    const Version(2, 12);
 const Version enableConstantUpdate2018Version = const Version(2, 0);
 const Version enableControlFlowCollectionsVersion = const Version(2, 0);
 const Version enableExtensionMethodsVersion = const Version(2, 6);
-const Version enableNonNullableVersion = const Version(2, 11);
-const Version enableNonfunctionTypeAliasesVersion = const Version(2, 11);
+const Version enableNonNullableVersion = const Version(2, 12);
+const Version enableNonfunctionTypeAliasesVersion = const Version(2, 12);
 const Version enableSetLiteralsVersion = const Version(2, 0);
 const Version enableSpreadCollectionsVersion = const Version(2, 0);
-const Version enableTripleShiftVersion = const Version(2, 11);
-const Version enableValueClassVersion = const Version(2, 11);
-const Version enableVarianceVersion = const Version(2, 11);
+const Version enableTripleShiftVersion = const Version(2, 12);
+const Version enableValueClassVersion = const Version(2, 12);
+const Version enableVarianceVersion = const Version(2, 12);
 
 ExperimentalFlag parseExperimentalFlag(String flag) {
   switch (flag) {
@@ -69,7 +69,7 @@
   ExperimentalFlag.constantUpdate2018: true,
   ExperimentalFlag.controlFlowCollections: true,
   ExperimentalFlag.extensionMethods: true,
-  ExperimentalFlag.nonNullable: false,
+  ExperimentalFlag.nonNullable: true,
   ExperimentalFlag.nonfunctionTypeAliases: false,
   ExperimentalFlag.setLiterals: true,
   ExperimentalFlag.spreadCollections: true,
@@ -93,31 +93,31 @@
 };
 
 const Map<ExperimentalFlag, Version> experimentEnabledVersion = {
-  ExperimentalFlag.alternativeInvalidationStrategy: const Version(2, 11),
+  ExperimentalFlag.alternativeInvalidationStrategy: const Version(2, 12),
   ExperimentalFlag.constantUpdate2018: const Version(2, 0),
   ExperimentalFlag.controlFlowCollections: const Version(2, 0),
   ExperimentalFlag.extensionMethods: const Version(2, 6),
-  ExperimentalFlag.nonNullable: const Version(2, 11),
-  ExperimentalFlag.nonfunctionTypeAliases: const Version(2, 11),
+  ExperimentalFlag.nonNullable: const Version(2, 12),
+  ExperimentalFlag.nonfunctionTypeAliases: const Version(2, 12),
   ExperimentalFlag.setLiterals: const Version(2, 0),
   ExperimentalFlag.spreadCollections: const Version(2, 0),
-  ExperimentalFlag.tripleShift: const Version(2, 11),
-  ExperimentalFlag.valueClass: const Version(2, 11),
-  ExperimentalFlag.variance: const Version(2, 11),
+  ExperimentalFlag.tripleShift: const Version(2, 12),
+  ExperimentalFlag.valueClass: const Version(2, 12),
+  ExperimentalFlag.variance: const Version(2, 12),
 };
 
 const Map<ExperimentalFlag, Version> experimentReleasedVersion = {
-  ExperimentalFlag.alternativeInvalidationStrategy: const Version(2, 11),
+  ExperimentalFlag.alternativeInvalidationStrategy: const Version(2, 12),
   ExperimentalFlag.constantUpdate2018: const Version(2, 0),
   ExperimentalFlag.controlFlowCollections: const Version(2, 0),
   ExperimentalFlag.extensionMethods: const Version(2, 6),
   ExperimentalFlag.nonNullable: const Version(2, 10),
-  ExperimentalFlag.nonfunctionTypeAliases: const Version(2, 11),
+  ExperimentalFlag.nonfunctionTypeAliases: const Version(2, 12),
   ExperimentalFlag.setLiterals: const Version(2, 0),
   ExperimentalFlag.spreadCollections: const Version(2, 0),
-  ExperimentalFlag.tripleShift: const Version(2, 11),
-  ExperimentalFlag.valueClass: const Version(2, 11),
-  ExperimentalFlag.variance: const Version(2, 11),
+  ExperimentalFlag.tripleShift: const Version(2, 12),
+  ExperimentalFlag.valueClass: const Version(2, 12),
+  ExperimentalFlag.variance: const Version(2, 12),
 };
 
 const AllowedExperimentalFlags defaultAllowedExperimentalFlags =
diff --git a/pkg/front_end/test/test_generator_test.dart b/pkg/front_end/test/test_generator_test.dart
index 9ce654d..a701999 100644
--- a/pkg/front_end/test/test_generator_test.dart
+++ b/pkg/front_end/test/test_generator_test.dart
@@ -223,6 +223,6 @@
   Generator(this.typeParameters, this.beforePlug, this.afterPlug);
 
   String generate(String plug) {
-    return "${beforePlug}${plug}${afterPlug}";
+    return "// @dart = 2.9\n${beforePlug}${plug}${afterPlug}";
   }
 }
diff --git a/pkg/front_end/testcases/general/experiment_release_version/main.dart.outline.expect b/pkg/front_end/testcases/general/experiment_release_version/main.dart.outline.expect
index dbdc77e..f56cd1f 100644
--- a/pkg/front_end/testcases/general/experiment_release_version/main.dart.outline.expect
+++ b/pkg/front_end/testcases/general/experiment_release_version/main.dart.outline.expect
@@ -9,23 +9,20 @@
 // // @dart=2.8
 // ^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/unversioned_lib.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.
+// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/unversioned_lib.dart:5:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versionedUnallowedPackage; // error
 //    ^
 //
-// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which is experimental and requires language version of 2.9 or higher.
-// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_8_AllowedPackage; // error
 //    ^
 //
-// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_9_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_9_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_9_AllowedPackage; // error
 //    ^
 //
-// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_10_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_10_lib.dart:7:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? versionedAllowedPackage; // error
 //    ^
 //
@@ -52,8 +49,8 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/unversioned_lib.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.
+// pkg/front_end/testcases/general/experiment_release_version/unversioned_lib.dart:5:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? unversionedLibrary; // error
 //    ^
 //
@@ -66,8 +63,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which is experimental and requires language version of 2.9 or higher.
-// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// pkg/front_end/testcases/general/experiment_release_version/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_8_Library; // error
 //    ^
 //
@@ -80,8 +76,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/versioned_2_9_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/versioned_2_9_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_9_Library; // error
 //    ^
 //
@@ -94,8 +89,8 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/versioned_2_10_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/versioned_2_10_lib.dart:7:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? versioned_2_10_Library; // error
 //    ^
 //
diff --git a/pkg/front_end/testcases/general/experiment_release_version/main.dart.strong.expect b/pkg/front_end/testcases/general/experiment_release_version/main.dart.strong.expect
index 2846fe1..cc7d176 100644
--- a/pkg/front_end/testcases/general/experiment_release_version/main.dart.strong.expect
+++ b/pkg/front_end/testcases/general/experiment_release_version/main.dart.strong.expect
@@ -9,23 +9,20 @@
 // // @dart=2.8
 // ^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/unversioned_lib.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.
+// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/unversioned_lib.dart:5:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versionedUnallowedPackage; // error
 //    ^
 //
-// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which is experimental and requires language version of 2.9 or higher.
-// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_8_AllowedPackage; // error
 //    ^
 //
-// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_9_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_9_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_9_AllowedPackage; // error
 //    ^
 //
-// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_10_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/not_allowed_package/lib/versioned_2_10_lib.dart:7:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? versionedAllowedPackage; // error
 //    ^
 //
@@ -51,8 +48,8 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/unversioned_lib.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.
+// pkg/front_end/testcases/general/experiment_release_version/unversioned_lib.dart:5:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? unversionedLibrary; // error
 //    ^
 //
@@ -65,8 +62,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which is experimental and requires language version of 2.9 or higher.
-// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// pkg/front_end/testcases/general/experiment_release_version/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_8_Library; // error
 //    ^
 //
@@ -79,8 +75,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/versioned_2_9_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/versioned_2_9_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_9_Library; // error
 //    ^
 //
@@ -93,8 +88,8 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/versioned_2_10_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/versioned_2_10_lib.dart:7:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? versioned_2_10_Library; // error
 //    ^
 //
diff --git a/pkg/front_end/testcases/general/experiment_release_version/main.dart.strong.transformed.expect b/pkg/front_end/testcases/general/experiment_release_version/main.dart.strong.transformed.expect
index 43eedc9..77ecfc9 100644
--- a/pkg/front_end/testcases/general/experiment_release_version/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/experiment_release_version/main.dart.strong.transformed.expect
@@ -20,8 +20,8 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/unversioned_lib.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.
+// pkg/front_end/testcases/general/experiment_release_version/unversioned_lib.dart:5:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? unversionedLibrary; // error
 //    ^
 //
@@ -34,8 +34,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which is experimental and requires language version of 2.9 or higher.
-// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// pkg/front_end/testcases/general/experiment_release_version/versioned_2_8_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_8_Library; // error
 //    ^
 //
@@ -48,8 +47,7 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/versioned_2_9_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/versioned_2_9_lib.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.10 or higher.
 // int? versioned_2_9_Library; // error
 //    ^
 //
@@ -62,8 +60,8 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/general/experiment_release_version/versioned_2_10_lib.dart:7: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.
+// pkg/front_end/testcases/general/experiment_release_version/versioned_2_10_lib.dart:7:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? versioned_2_10_Library; // error
 //    ^
 //
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
index 65bed41..08fe734 100644
--- 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
@@ -2,8 +2,8 @@
 //
 // 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.
+// pkg/front_end/testcases/general/null_safety_invalid_experiment.dart:5:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? i;
 //    ^
 //
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
index a2fd43e..cb74741 100644
--- 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
@@ -2,8 +2,8 @@
 //
 // 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.
+// pkg/front_end/testcases/general/null_safety_invalid_experiment.dart:5:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? i;
 //    ^
 //
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
index a2fd43e..cb74741 100644
--- 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
@@ -2,8 +2,8 @@
 //
 // 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.
+// pkg/front_end/testcases/general/null_safety_invalid_experiment.dart:5:4: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 // int? i;
 //    ^
 //
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
index e55d2e4..ffc88d6 100644
--- 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
@@ -2,8 +2,7 @@
 //
 // 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.
+// pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.12 or higher.
 // int? i;
 //    ^
 //
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
index 9a19627..996501a 100644
--- 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
@@ -2,8 +2,7 @@
 //
 // 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.
+// pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.12 or higher.
 // int? i;
 //    ^
 //
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
index 9a19627..996501a 100644
--- 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
@@ -2,8 +2,7 @@
 //
 // 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.
+// pkg/front_end/testcases/general/null_safety_invalid_experiment_and_language_version.dart:7:4: Error: This requires the null safety language feature, which requires language version of 2.12 or higher.
 // int? i;
 //    ^
 //
diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.outline.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.outline.expect
index 0d9ef5b..e9e3bdd 100644
--- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.outline.expect
+++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.outline.expect
@@ -1,60 +1,40 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "main_lib.dart" as mai;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 class SubClass extends mai::Class {
-  synthetic constructor •() → self::SubClass*
+  synthetic constructor •() → self::SubClass
     ;
 }
 static method main() → dynamic
   ;
 
-library;
+library /*isNonNullableByDefault*/;
 import self as mai;
 import "dart:core" as core;
 
 class SuperClass extends core::Object {
-  synthetic constructor •() → mai::SuperClass*
+  synthetic constructor •() → mai::SuperClass
     ;
-  method method(covariant core::int* i) → void
+  method method(covariant core::int i) → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Mixin extends core::Object {
-  synthetic constructor •() → mai::Mixin*
+  synthetic constructor •() → mai::Mixin
     ;
-  method method(core::num* i) → void
+  method method(core::num i) → void
     ;
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 abstract class _Class&SuperClass&Mixin = mai::SuperClass with mai::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → mai::_Class&SuperClass&Mixin*
+  synthetic constructor •() → mai::_Class&SuperClass&Mixin
     : super mai::SuperClass::•()
     ;
-  forwarding-stub method method(covariant core::num* i) → void
+  forwarding-stub method method(covariant core::num i) → void
     return super.{mai::SuperClass::method}(i);
 }
 class Class extends mai::_Class&SuperClass&Mixin {
-  synthetic constructor •() → mai::Class*
+  synthetic constructor •() → mai::Class
     ;
 }
diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.expect
index 4ad4202..cd8c81e 100644
--- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.expect
+++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "main_lib.dart" as mai;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 class SubClass extends mai::Class {
-  synthetic constructor •() → self::SubClass*
+  synthetic constructor •() → self::SubClass
     : super mai::Class::•()
     ;
 }
@@ -13,51 +13,31 @@
   new self::SubClass::•();
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as mai;
 import "dart:core" as core;
 
 class SuperClass extends core::Object {
-  synthetic constructor •() → mai::SuperClass*
+  synthetic constructor •() → mai::SuperClass
     : super core::Object::•()
     ;
-  method method(covariant core::int* i) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method method(covariant core::int i) → void {}
 }
 class Mixin extends core::Object {
-  synthetic constructor •() → mai::Mixin*
+  synthetic constructor •() → mai::Mixin
     : super core::Object::•()
     ;
-  method method(core::num* i) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method method(core::num i) → void {}
 }
 abstract class _Class&SuperClass&Mixin = mai::SuperClass with mai::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → mai::_Class&SuperClass&Mixin*
+  synthetic constructor •() → mai::_Class&SuperClass&Mixin
     : super mai::SuperClass::•()
     ;
-  forwarding-stub method method(covariant core::num* i) → void
+  forwarding-stub method method(covariant core::num i) → void
     return super.{mai::SuperClass::method}(i);
 }
 class Class extends mai::_Class&SuperClass&Mixin {
-  synthetic constructor •() → mai::Class*
+  synthetic constructor •() → mai::Class
     : super mai::_Class&SuperClass&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.transformed.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.transformed.expect
index 4ad4202..cd8c81e 100644
--- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.transformed.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "main_lib.dart" as mai;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 class SubClass extends mai::Class {
-  synthetic constructor •() → self::SubClass*
+  synthetic constructor •() → self::SubClass
     : super mai::Class::•()
     ;
 }
@@ -13,51 +13,31 @@
   new self::SubClass::•();
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as mai;
 import "dart:core" as core;
 
 class SuperClass extends core::Object {
-  synthetic constructor •() → mai::SuperClass*
+  synthetic constructor •() → mai::SuperClass
     : super core::Object::•()
     ;
-  method method(covariant core::int* i) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method method(covariant core::int i) → void {}
 }
 class Mixin extends core::Object {
-  synthetic constructor •() → mai::Mixin*
+  synthetic constructor •() → mai::Mixin
     : super core::Object::•()
     ;
-  method method(core::num* i) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method method(core::num i) → void {}
 }
 abstract class _Class&SuperClass&Mixin = mai::SuperClass with mai::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → mai::_Class&SuperClass&Mixin*
+  synthetic constructor •() → mai::_Class&SuperClass&Mixin
     : super mai::SuperClass::•()
     ;
-  forwarding-stub method method(covariant core::num* i) → void
+  forwarding-stub method method(covariant core::num i) → void
     return super.{mai::SuperClass::method}(i);
 }
 class Class extends mai::_Class&SuperClass&Mixin {
-  synthetic constructor •() → mai::Class*
+  synthetic constructor •() → mai::Class
     : super mai::_Class&SuperClass&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.expect
index 4ad4202..cd8c81e 100644
--- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.expect
+++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "main_lib.dart" as mai;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 class SubClass extends mai::Class {
-  synthetic constructor •() → self::SubClass*
+  synthetic constructor •() → self::SubClass
     : super mai::Class::•()
     ;
 }
@@ -13,51 +13,31 @@
   new self::SubClass::•();
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as mai;
 import "dart:core" as core;
 
 class SuperClass extends core::Object {
-  synthetic constructor •() → mai::SuperClass*
+  synthetic constructor •() → mai::SuperClass
     : super core::Object::•()
     ;
-  method method(covariant core::int* i) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method method(covariant core::int i) → void {}
 }
 class Mixin extends core::Object {
-  synthetic constructor •() → mai::Mixin*
+  synthetic constructor •() → mai::Mixin
     : super core::Object::•()
     ;
-  method method(core::num* i) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method method(core::num i) → void {}
 }
 abstract class _Class&SuperClass&Mixin = mai::SuperClass with mai::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → mai::_Class&SuperClass&Mixin*
+  synthetic constructor •() → mai::_Class&SuperClass&Mixin
     : super mai::SuperClass::•()
     ;
-  forwarding-stub method method(covariant core::num* i) → void
+  forwarding-stub method method(covariant core::num i) → void
     return super.{mai::SuperClass::method}(i);
 }
 class Class extends mai::_Class&SuperClass&Mixin {
-  synthetic constructor •() → mai::Class*
+  synthetic constructor •() → mai::Class
     : super mai::_Class&SuperClass&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.transformed.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.transformed.expect
index 4ad4202..cd8c81e 100644
--- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
 import self as self;
 import "main_lib.dart" as mai;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 class SubClass extends mai::Class {
-  synthetic constructor •() → self::SubClass*
+  synthetic constructor •() → self::SubClass
     : super mai::Class::•()
     ;
 }
@@ -13,51 +13,31 @@
   new self::SubClass::•();
 }
 
-library;
+library /*isNonNullableByDefault*/;
 import self as mai;
 import "dart:core" as core;
 
 class SuperClass extends core::Object {
-  synthetic constructor •() → mai::SuperClass*
+  synthetic constructor •() → mai::SuperClass
     : super core::Object::•()
     ;
-  method method(covariant core::int* i) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method method(covariant core::int i) → void {}
 }
 class Mixin extends core::Object {
-  synthetic constructor •() → mai::Mixin*
+  synthetic constructor •() → mai::Mixin
     : super core::Object::•()
     ;
-  method method(core::num* i) → void {}
-  abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
-  abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
-  abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
-  abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
-  abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
-  abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
-  abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
-  abstract member-signature method toString() → core::String*; -> core::Object::toString
-  abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
-  abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+  method method(core::num i) → void {}
 }
 abstract class _Class&SuperClass&Mixin = mai::SuperClass with mai::Mixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → mai::_Class&SuperClass&Mixin*
+  synthetic constructor •() → mai::_Class&SuperClass&Mixin
     : super mai::SuperClass::•()
     ;
-  forwarding-stub method method(covariant core::num* i) → void
+  forwarding-stub method method(covariant core::num i) → void
     return super.{mai::SuperClass::method}(i);
 }
 class Class extends mai::_Class&SuperClass&Mixin {
-  synthetic constructor •() → mai::Class*
+  synthetic constructor •() → mai::Class
     : super mai::_Class&SuperClass&Mixin::•()
     ;
 }
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 213fb86..8301dfb 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 null safety language feature, which is experimental.
-// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// pkg/front_end/testcases/regress/issue_31180.dart:6:15: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 //   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 49cab5b..19c01b2 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 null safety language feature, which is experimental.
-// You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
+// pkg/front_end/testcases/regress/issue_31180.dart:6:15: Error: This requires the 'non-nullable' language feature to be enabled.
+// The feature is on by default but is currently disabled, maybe because the '--enable-experiment=no-non-nullable' command line option is passed.
 //   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 66cffa4..aad6d8e 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 66cffa4..aad6d8e 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/default_language_version.dart b/pkg/kernel/lib/default_language_version.dart
index eb90980..465988e 100644
--- a/pkg/kernel/lib/default_language_version.dart
+++ b/pkg/kernel/lib/default_language_version.dart
@@ -9,4 +9,4 @@
 
 import "ast.dart";
 
-Version defaultLanguageVersion = const Version(2, 11);
+Version defaultLanguageVersion = const Version(2, 12);
diff --git a/pkg/test_runner/lib/src/compiler_configuration.dart b/pkg/test_runner/lib/src/compiler_configuration.dart
index 01ae343..616cf8c 100644
--- a/pkg/test_runner/lib/src/compiler_configuration.dart
+++ b/pkg/test_runner/lib/src/compiler_configuration.dart
@@ -28,8 +28,6 @@
   var experiments = {
     ...configuration.experiments,
     ...testFile.experiments,
-    if (configuration.nnbdMode != NnbdMode.legacy)
-      'non-nullable',
   };
   if (experiments.isEmpty) {
     return const [];
diff --git a/pkg/vm/test/incremental_compiler_test.dart b/pkg/vm/test/incremental_compiler_test.dart
index 588b90c..52a98e6 100644
--- a/pkg/vm/test/incremental_compiler_test.dart
+++ b/pkg/vm/test/incremental_compiler_test.dart
@@ -71,7 +71,7 @@
           .writeLibraryFile(component.mainMethod.enclosingLibrary);
       expect(
           buffer.toString(),
-          equals('library;\n'
+          equals('library /*isNonNullableByDefault*/;\n'
               'import self as self;\n'
               '\n'
               'static method main() → dynamic {}\n'));
@@ -93,7 +93,7 @@
           .writeLibraryFile(component.mainMethod.enclosingLibrary);
       expect(
           buffer.toString(),
-          equals('library;\n'
+          equals('library /*isNonNullableByDefault*/;\n'
               'import self as self;\n'
               '\n'
               'static method main() → dynamic {}\n'));
diff --git a/runtime/vm/unit_test.cc b/runtime/vm/unit_test.cc
index b6cb15e..528aeb9e 100644
--- a/runtime/vm/unit_test.cc
+++ b/runtime/vm/unit_test.cc
@@ -220,7 +220,7 @@
 }
 
 bool TestCase::IsNNBD() {
-  return KernelIsolate::GetExperimentalFlag("non-nullable");
+  return !KernelIsolate::GetExperimentalFlag("no-non-nullable");
 }
 
 #ifndef PRODUCT
diff --git a/tests/language/nnbd/experiment_release_version/opt_in_test.dart b/tests/language/nnbd/experiment_release_version/opt_in_test.dart
index 8152f3d..a5ea27c 100644
--- a/tests/language/nnbd/experiment_release_version/opt_in_test.dart
+++ b/tests/language/nnbd/experiment_release_version/opt_in_test.dart
@@ -4,7 +4,7 @@
 
 // This version should continue to opt in to null safety in purpetuity (or at
 // least until Dart 3), when the experiment is enabled.
-// @dart = 2.10
+// @dart = 2.12
 
 void main() {
   // This should be an error since we are opted in.
diff --git a/tests/language/nnbd/extreme_bounds/superinterfaces_null_safe_lib.dart b/tests/language/nnbd/extreme_bounds/superinterfaces_null_safe_lib.dart
index 93e4ad2..3025e83 100644
--- a/tests/language/nnbd/extreme_bounds/superinterfaces_null_safe_lib.dart
+++ b/tests/language/nnbd/extreme_bounds/superinterfaces_null_safe_lib.dart
@@ -2,8 +2,6 @@
 // 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.10
-
 // This library establishes an opted in class hierarchy which has a single
 // non-generic top element, with a generic element below it, and a null safety
 // specific instantantiation of the generic below that.  This is used to test
diff --git a/tests/language/nnbd/extreme_bounds/superinterfaces_out_of_order_error_test.dart b/tests/language/nnbd/extreme_bounds/superinterfaces_out_of_order_error_test.dart
index 50e53c2..dbd31a3 100644
--- a/tests/language/nnbd/extreme_bounds/superinterfaces_out_of_order_error_test.dart
+++ b/tests/language/nnbd/extreme_bounds/superinterfaces_out_of_order_error_test.dart
@@ -4,8 +4,6 @@
 
 // Requirements=nnbd-weak
 
-// @dart = 2.10
-
 // Test that upper bound computations which rely on the computations of the
 // cardinality of the superinterface sets define those sets without erasing or
 // modifying the superinterfaces.
diff --git a/tests/lib/isolate/scenarios/package_relative_root/.dart_tool/package_config.json b/tests/lib/isolate/scenarios/package_relative_root/.dart_tool/package_config.json
index 6d510b8..15b97d3 100644
--- a/tests/lib/isolate/scenarios/package_relative_root/.dart_tool/package_config.json
+++ b/tests/lib/isolate/scenarios/package_relative_root/.dart_tool/package_config.json
@@ -4,12 +4,12 @@
     {
       "name": "foo",
       "rootUri": "../packages/foo",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     },
     {
       "name": "bar",
       "rootUri": "../packages/bar",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     }
   ]
 }
diff --git a/tests/lib/isolate/scenarios/package_relative_spec/.dart_tool/package_config.json b/tests/lib/isolate/scenarios/package_relative_spec/.dart_tool/package_config.json
index 740a2dd..abf1414 100644
--- a/tests/lib/isolate/scenarios/package_relative_spec/.dart_tool/package_config.json
+++ b/tests/lib/isolate/scenarios/package_relative_spec/.dart_tool/package_config.json
@@ -4,12 +4,12 @@
     {
       "name": "foo",
       "rootUri": "../foo_package",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     },
     {
       "name": "bar",
       "rootUri": "../bar1_package",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     }
   ]
 }
diff --git a/tests/lib/isolate/scenarios/package_relative_spec/bar1_package/package.config b/tests/lib/isolate/scenarios/package_relative_spec/bar1_package/package.config
index e4dc783..1eb6595 100644
--- a/tests/lib/isolate/scenarios/package_relative_spec/bar1_package/package.config
+++ b/tests/lib/isolate/scenarios/package_relative_spec/bar1_package/package.config
@@ -4,12 +4,12 @@
     {
       "name": "foo",
       "rootUri": "../foo_package",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     },
     {
       "name": "bar",
       "rootUri": "../bar2_package",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     }
   ]
 }
diff --git a/tests/lib/isolate/scenarios/short_package/.dart_tool/package_config.json b/tests/lib/isolate/scenarios/short_package/.dart_tool/package_config.json
index c043659..fc895d2 100644
--- a/tests/lib/isolate/scenarios/short_package/.dart_tool/package_config.json
+++ b/tests/lib/isolate/scenarios/short_package/.dart_tool/package_config.json
@@ -4,7 +4,7 @@
     {
       "name": "flu",
       "rootUri": "../flu_package",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     }
   ]
 }
diff --git a/tests/standalone/package/scenarios/both_dir_and_file/.dart_tool/package_config.json b/tests/standalone/package/scenarios/both_dir_and_file/.dart_tool/package_config.json
index 23e4838..5faca26 100644
--- a/tests/standalone/package/scenarios/both_dir_and_file/.dart_tool/package_config.json
+++ b/tests/standalone/package/scenarios/both_dir_and_file/.dart_tool/package_config.json
@@ -9,7 +9,7 @@
     {
       "name": "foo",
       "rootUri": "../foo",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     }
   ]
 }
diff --git a/tests/standalone/package/scenarios/packages_file_in_parent/.dart_tool/package_config.json b/tests/standalone/package/scenarios/packages_file_in_parent/.dart_tool/package_config.json
index 23e4838..5faca26 100644
--- a/tests/standalone/package/scenarios/packages_file_in_parent/.dart_tool/package_config.json
+++ b/tests/standalone/package/scenarios/packages_file_in_parent/.dart_tool/package_config.json
@@ -9,7 +9,7 @@
     {
       "name": "foo",
       "rootUri": "../foo",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     }
   ]
 }
diff --git a/tests/standalone/package/scenarios/packages_file_only/.dart_tool/package_config.json b/tests/standalone/package/scenarios/packages_file_only/.dart_tool/package_config.json
index 23e4838..5faca26 100644
--- a/tests/standalone/package/scenarios/packages_file_only/.dart_tool/package_config.json
+++ b/tests/standalone/package/scenarios/packages_file_only/.dart_tool/package_config.json
@@ -9,7 +9,7 @@
     {
       "name": "foo",
       "rootUri": "../foo",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     }
   ]
 }
diff --git a/tests/standalone/package/scenarios/packages_option_only/sub/.dart_tool/package_config.json b/tests/standalone/package/scenarios/packages_option_only/sub/.dart_tool/package_config.json
index 23e4838..5faca26 100644
--- a/tests/standalone/package/scenarios/packages_option_only/sub/.dart_tool/package_config.json
+++ b/tests/standalone/package/scenarios/packages_option_only/sub/.dart_tool/package_config.json
@@ -9,7 +9,7 @@
     {
       "name": "foo",
       "rootUri": "../foo",
-      "languageVersion": "2.10"
+      "languageVersion": "2.12"
     }
   ]
 }
diff --git a/tools/VERSION b/tools/VERSION
index 4e8ed30..966c0c1 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -25,7 +25,7 @@
 #
 CHANNEL dev
 MAJOR 2
-MINOR 11
+MINOR 12
 PATCH 0
-PRERELEASE 277
+PRERELEASE 0
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index e78a878..7c7ccd0 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -1902,7 +1902,6 @@
           "name": "check dart nnbd sdk for static errors",
           "script": "out/ReleaseX64/dart-sdk/bin/dart",
           "arguments": [
-            "--enable-experiment=non-nullable",
             "pkg/dev_compiler/tool/check_nnbd_sdk.dart"
           ]
         },
@@ -2193,7 +2192,6 @@
           "arguments": [
             "-ndart2js-hostasserts-linux-ia32-d8-unsound",
             "--dart2js-batch",
-            "--enable-experiment=non-nullable",
             "observatory_ui"
           ]
         },
@@ -2266,7 +2264,6 @@
             "-ndart2js-${system}-${runtime}-unsound",
             "--dart2js-batch",
             "--reset-browser-configuration",
-            "--enable-experiment=non-nullable",
             "observatory_ui"
           ]
         },
@@ -2319,7 +2316,6 @@
           "arguments": [
             "-ndart2js-minified-linux-d8-unsound",
             "--dart2js-batch",
-            "--enable-experiment=non-nullable",
             "observatory_ui"
           ]
         },
@@ -2392,7 +2388,6 @@
             "-ndart2js-minified-csp-linux-chrome-unsound",
             "--dart2js-batch",
             "--reset-browser-configuration",
-            "--enable-experiment=non-nullable",
             "observatory_ui"
           ]
         },
@@ -2426,7 +2421,6 @@
           "name": "check dart nnbd sdk for static errors",
           "script": "out/ReleaseX64/dart-sdk/bin/dart",
           "arguments": [
-            "--enable-experiment=non-nullable",
             "pkg/dev_compiler/tool/check_nnbd_sdk.dart",
             "--target",
             "dart2js"
@@ -2895,7 +2889,6 @@
           "script": "out/ReleaseX64/dart-sdk/bin/dartanalyzer",
           "arguments": [
             "--fatal-warnings",
-	    "--enable-experiment=non-nullable",
             "pkg/compiler"
           ]
         },
@@ -3073,7 +3066,6 @@
           "name": "analyze runtime/observatory",
           "script": "out/ReleaseX64/dart-sdk/bin/dartanalyzer",
           "arguments": [
-            "--enable-experiment=non-nullable",
             "runtime/observatory"
           ]
         },
diff --git a/tools/experimental_features.yaml b/tools/experimental_features.yaml
index d750f93..e1403b8 100644
--- a/tools/experimental_features.yaml
+++ b/tools/experimental_features.yaml
@@ -93,13 +93,9 @@
 # default 'language' "category" with code generated for both CFE and Analyzer,
 # while other categories can be tailored more specifically.
 
-current-version: '2.11.0'
+current-version: '2.12.0'
 
 features:
-  non-nullable:
-    help: "Non Nullable by default"
-    experimentalReleaseVersion: '2.10.0'
-
   triple-shift:
     help: "Triple-shift operator"
 
@@ -120,6 +116,11 @@
 # on the command line, and will eventually be removed.
 #
 
+  non-nullable:
+    help: "Non Nullable by default"
+    experimentalReleaseVersion: '2.10.0'
+    enabledIn: '2.12.0'
+
   extension-methods:
     help: "Extension Methods"
     enabledIn: '2.6.0'