Version 2.18.0-271.2.beta

* Cherry-pick 3fc0bf7e595e9c57c659bf92ccaff58f12d34090 to beta
diff --git a/pkg/analysis_server/test/analysis_server_base.dart b/pkg/analysis_server/test/analysis_server_base.dart
index 6aec365..140a776 100644
--- a/pkg/analysis_server/test/analysis_server_base.dart
+++ b/pkg/analysis_server/test/analysis_server_base.dart
@@ -13,7 +13,6 @@
 import 'package:analyzer/dart/analysis/analysis_options.dart' as analysis;
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/instrumentation/service.dart';
-import 'package:analyzer/src/dart/analysis/experiments.dart';
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/test_utilities/mock_sdk.dart';
 import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
@@ -48,9 +47,11 @@
     var buffer = StringBuffer();
 
     buffer.writeln('analyzer:');
-    buffer.writeln('  enable-experiment:');
-    for (var experiment in experiments) {
-      buffer.writeln('    - $experiment');
+    if (experiments.isNotEmpty) {
+      buffer.writeln('  enable-experiment:');
+      for (var experiment in experiments) {
+        buffer.writeln('    - $experiment');
+      }
     }
     buffer.writeln('  language:');
     buffer.writeln('    strict-casts: $strictCasts');
@@ -206,11 +207,10 @@
 }
 
 class PubPackageAnalysisServerTest extends ContextResolutionTest {
-  List<String> get experiments => [
-        EnableString.enhanced_enums,
-        EnableString.named_arguments_anywhere,
-        EnableString.super_parameters,
-      ];
+  // If experiments are needed,
+  // add `import 'package:analyzer/src/dart/analysis/experiments.dart';`
+  // and list the necessary experiments here.
+  List<String> get experiments => [];
 
   /// The path that is not in [workspaceRootPath], contains external packages.
   String get packagesRootPath => '/packages';
diff --git a/pkg/analysis_server/test/src/services/correction/fix/analysis_options/remove_setting_test.dart b/pkg/analysis_server/test/src/services/correction/fix/analysis_options/remove_setting_test.dart
index 9276b71..2f014ab 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/analysis_options/remove_setting_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/analysis_options/remove_setting_test.dart
@@ -18,13 +18,13 @@
     await assertHasFix('''
 analyzer:
   enable-experiment:
-    - super-parameters
+    - test-experiment
   language:
     enableSuperMixins: true
 ''', '''
 analyzer:
   enable-experiment:
-    - super-parameters
+    - test-experiment
 ''');
   }
 
@@ -33,11 +33,11 @@
 analyzer:
   enable-experiment:
     - not-an-experiment
-    - super-parameters
+    - test-experiment
 ''', '''
 analyzer:
   enable-experiment:
-    - super-parameters
+    - test-experiment
 ''');
   }
 
@@ -45,12 +45,12 @@
     await assertHasFix('''
 analyzer:
   enable-experiment:
-    - super-parameters
+    - test-experiment
     - not-an-experiment
 ''', '''
 analyzer:
   enable-experiment:
-    - super-parameters
+    - test-experiment
 ''');
   }
 
diff --git a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
index de04c11..616f487 100644
--- a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart
@@ -406,7 +406,7 @@
   static const bool control_flow_collections = true;
 
   /// Expiration status of the experiment "enhanced-enums"
-  static const bool enhanced_enums = false;
+  static const bool enhanced_enums = true;
 
   /// Expiration status of the experiment "extension-methods"
   static const bool extension_methods = true;
@@ -427,7 +427,7 @@
   static const bool macros = false;
 
   /// Expiration status of the experiment "named-arguments-anywhere"
-  static const bool named_arguments_anywhere = false;
+  static const bool named_arguments_anywhere = true;
 
   /// Expiration status of the experiment "non-nullable"
   static const bool non_nullable = true;
@@ -442,7 +442,7 @@
   static const bool spread_collections = true;
 
   /// Expiration status of the experiment "super-parameters"
-  static const bool super_parameters = false;
+  static const bool super_parameters = true;
 
   /// Expiration status of the experiment "test-experiment"
   static const bool test_experiment = false;
diff --git a/pkg/dartdev/test/commands/analyze_test.dart b/pkg/dartdev/test/commands/analyze_test.dart
index 4da2ec8..1750ad6 100644
--- a/pkg/dartdev/test/commands/analyze_test.dart
+++ b/pkg/dartdev/test/commands/analyze_test.dart
@@ -421,17 +421,6 @@
     expect(result.stderr, isEmpty);
   });
 
-  test('--enable-experiment', () async {
-    p = project(mainSrc: 'final x = List.filled(growable: true, 7, "");');
-    var result = await p
-        .run(['analyze', '--enable-experiment=no-named-arguments-anywhere']);
-
-    expect(result.exitCode, 3);
-    expect(result.stdout,
-        contains('Positional arguments must occur before named arguments.'));
-    expect(result.stderr, isEmpty);
-  });
-
   test('--enable-experiment with a bad experiment', () async {
     p = project();
     var result = await p.run(['analyze', '--enable-experiment=bad']);
diff --git a/pkg/dartdev/test/experiments_test.dart b/pkg/dartdev/test/experiments_test.dart
index 5608ac7..0e73046 100644
--- a/pkg/dartdev/test/experiments_test.dart
+++ b/pkg/dartdev/test/experiments_test.dart
@@ -11,7 +11,7 @@
       expect(experimentalFeatures, isNotEmpty);
       expect(
         experimentalFeatures.map((experiment) => experiment.enableString),
-        contains('super-parameters'),
+        contains('test-experiment'),
       );
     });
   });
diff --git a/pkg/dev_compiler/test/expression_compiler/expression_compiler_e2e_dart_2_17_test.dart b/pkg/dev_compiler/test/expression_compiler/expression_compiler_e2e_dart_2_17_test.dart
index 7ba607e..e63cff3 100644
--- a/pkg/dev_compiler/test/expression_compiler/expression_compiler_e2e_dart_2_17_test.dart
+++ b/pkg/dev_compiler/test/expression_compiler/expression_compiler_e2e_dart_2_17_test.dart
@@ -92,8 +92,7 @@
         ''';
 
     setUpAll(() async {
-      await driver.initSource(setup, source,
-          experiments: {'named-arguments-anywhere': true});
+      await driver.initSource(setup, source, experiments: const {});
     });
 
     tearDownAll(() async {
@@ -162,8 +161,7 @@
         ''';
 
     setUpAll(() async {
-      await driver
-          .initSource(setup, source, experiments: {'super-parameters': true});
+      await driver.initSource(setup, source, experiments: const {});
     });
 
     tearDownAll(() async {
@@ -229,8 +227,7 @@
         ''';
 
     setUpAll(() async {
-      await driver
-          .initSource(setup, source, experiments: {'enhanced-enums': true});
+      await driver.initSource(setup, source, experiments: const {});
     });
 
     tearDownAll(() async {
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 56b13ce..71d843e 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
@@ -94,7 +94,7 @@
   static const ExperimentalFlag enhancedEnums = const ExperimentalFlag(
       name: 'enhanced-enums',
       isEnabledByDefault: true,
-      isExpired: false,
+      isExpired: true,
       enabledVersion: const Version(2, 17),
       experimentEnabledVersion: const Version(2, 17),
       experimentReleasedVersion: const Version(2, 17));
@@ -150,7 +150,7 @@
   static const ExperimentalFlag namedArgumentsAnywhere = const ExperimentalFlag(
       name: 'named-arguments-anywhere',
       isEnabledByDefault: true,
-      isExpired: false,
+      isExpired: true,
       enabledVersion: const Version(2, 17),
       experimentEnabledVersion: const Version(2, 17),
       experimentReleasedVersion: const Version(2, 17));
@@ -190,7 +190,7 @@
   static const ExperimentalFlag superParameters = const ExperimentalFlag(
       name: 'super-parameters',
       isEnabledByDefault: true,
-      isExpired: false,
+      isExpired: true,
       enabledVersion: const Version(2, 17),
       experimentEnabledVersion: const Version(2, 17),
       experimentReleasedVersion: const Version(2, 17));
diff --git a/pkg/front_end/testcases/enhanced_enums/folder.options b/pkg/front_end/testcases/enhanced_enums/folder.options
index ecd97db..e69de29 100644
--- a/pkg/front_end/testcases/enhanced_enums/folder.options
+++ b/pkg/front_end/testcases/enhanced_enums/folder.options
@@ -1 +0,0 @@
---enable-experiment=enhanced-enums
\ No newline at end of file
diff --git a/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/folder.options b/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/folder.options
index c0139f7..e69de29 100644
--- a/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/folder.options
+++ b/pkg/front_end/testcases/enhanced_enums/named_arguments_anywhere/folder.options
@@ -1 +0,0 @@
---enable-experiment=enhanced-enums,named-arguments-anywhere
\ No newline at end of file
diff --git a/pkg/front_end/testcases/enhanced_enums/super_parameters/folder.options b/pkg/front_end/testcases/enhanced_enums/super_parameters/folder.options
index 3bea431..e69de29 100644
--- a/pkg/front_end/testcases/enhanced_enums/super_parameters/folder.options
+++ b/pkg/front_end/testcases/enhanced_enums/super_parameters/folder.options
@@ -1 +0,0 @@
---enable-experiment=enhanced-enums,super-parameters
\ No newline at end of file
diff --git a/pkg/front_end/testcases/named_arguments_anywhere/folder.options b/pkg/front_end/testcases/named_arguments_anywhere/folder.options
index b97203b..e69de29 100644
--- a/pkg/front_end/testcases/named_arguments_anywhere/folder.options
+++ b/pkg/front_end/testcases/named_arguments_anywhere/folder.options
@@ -1 +0,0 @@
---enable-experiment=named-arguments-anywhere
\ No newline at end of file
diff --git a/pkg/front_end/testcases/super_parameters/folder.options b/pkg/front_end/testcases/super_parameters/folder.options
index b69b691..e69de29 100644
--- a/pkg/front_end/testcases/super_parameters/folder.options
+++ b/pkg/front_end/testcases/super_parameters/folder.options
@@ -1 +0,0 @@
---enable-experiment=super-parameters
\ No newline at end of file
diff --git a/pkg/vm_service/test/breakpoint_in_enhanced_enums_test.dart b/pkg/vm_service/test/breakpoint_in_enhanced_enums_test.dart
index 8607c58..bfb747d 100644
--- a/pkg/vm_service/test/breakpoint_in_enhanced_enums_test.dart
+++ b/pkg/vm_service/test/breakpoint_in_enhanced_enums_test.dart
@@ -1,15 +1,13 @@
 // Copyright (c) 2022, 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.
-//
-// SharedOptions=--enable-experiment=enhanced-enums
 
 // @dart=2.17
 
 import 'common/service_test_common.dart';
 import 'common/test_helper.dart';
 
-const int LINE_A = 23;
+const int LINE_A = 21;
 const int LINE_B = LINE_A + 11;
 const int LINE_C = LINE_B + 4;
 const int LINE_D = LINE_C + 4;
@@ -106,5 +104,4 @@
       testeeConcurrent: testMain,
       pause_on_start: true,
       pause_on_exit: true,
-      experiments: ['enhanced-enums'],
     );
diff --git a/pkg/vm_service/test/enhanced_enum_test.dart b/pkg/vm_service/test/enhanced_enum_test.dart
index bde5221..beda4da 100644
--- a/pkg/vm_service/test/enhanced_enum_test.dart
+++ b/pkg/vm_service/test/enhanced_enum_test.dart
@@ -1,8 +1,6 @@
 // Copyright (c) 2022, 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.
-//
-// SharedOptions=--enable-experiment=enhanced-enums
 
 // @dart=2.17
 
@@ -193,7 +191,8 @@
     expect(e1, isA<InstanceRef>());
     final e1Id = e1.id!;
 
-    dynamic result = await service.evaluate(isolateId, e1Id, 'interfaceGetter1');
+    dynamic result =
+        await service.evaluate(isolateId, e1Id, 'interfaceGetter1');
     expect(result, isA<InstanceRef>());
     expect(result.valueAsString, '42');
 
@@ -219,7 +218,8 @@
   },
   (VmService service, _) async {
     // Ensure we can evaluate static getters and methods.
-    dynamic result = await service.evaluate(isolateId, enumEClsId, 'staticGetter');
+    dynamic result =
+        await service.evaluate(isolateId, enumEClsId, 'staticGetter');
     expect(result, isA<InstanceRef>());
     expect(result.valueAsString, '0');
 
@@ -233,7 +233,8 @@
     expect(e1, isA<InstanceRef>());
     final e1Id = e1.id!;
 
-    dynamic result = await service.invoke(isolateId, e1Id, 'interfaceMethod1', []);
+    dynamic result =
+        await service.invoke(isolateId, e1Id, 'interfaceMethod1', []);
     expect(result, isA<InstanceRef>());
     expect(result.valueAsString, '42');
 
@@ -251,7 +252,8 @@
   },
   (VmService service, _) async {
     // Ensure we can invoke static methods.
-    dynamic result = await service.evaluate(isolateId, enumEClsId, 'staticMethod()');
+    dynamic result =
+        await service.evaluate(isolateId, enumEClsId, 'staticMethod()');
     expect(result, isA<InstanceRef>());
     expect(result.valueAsString, '42');
   },
@@ -278,7 +280,8 @@
   resumeIsolate,
   hasStoppedAtBreakpoint,
   (VmService service, _) async {
-    dynamic result = await service.evaluateInFrame(isolateId, 0, 'T.toString()');
+    dynamic result =
+        await service.evaluateInFrame(isolateId, 0, 'T.toString()');
     expect(result.valueAsString, 'int');
 
     result = await service.evaluateInFrame(isolateId, 0, 'value');
@@ -291,5 +294,4 @@
       tests,
       'enhanced_enum_test.dart',
       testeeConcurrent: testMain,
-      experiments: ['enhanced-enums'],
     );
diff --git a/pkg/vm_service/test/eval_named_args_anywhere_test.dart b/pkg/vm_service/test/eval_named_args_anywhere_test.dart
index ad01d46..47a0e21 100644
--- a/pkg/vm_service/test/eval_named_args_anywhere_test.dart
+++ b/pkg/vm_service/test/eval_named_args_anywhere_test.dart
@@ -68,5 +68,4 @@
       tests,
       'eval_named_args_anywhere_test.dart',
       testeeConcurrent: testFunction,
-      experiments: ['named-arguments-anywhere'],
     );
diff --git a/pkg/vm_service/test/super_constructor_invocation_test.dart b/pkg/vm_service/test/super_constructor_invocation_test.dart
index ae8239f..d6da0e9 100644
--- a/pkg/vm_service/test/super_constructor_invocation_test.dart
+++ b/pkg/vm_service/test/super_constructor_invocation_test.dart
@@ -1,8 +1,6 @@
 // Copyright (c) 2022, 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.
-//
-// SharedOptions=--enable-experiment=super-parameters
 
 // @dart=2.17
 
@@ -55,11 +53,11 @@
 
 createInstance(VmService service, String expr) async {
   return await service.evaluate(
-      isolateId,
-      rootLibId,
-      expr,
-      disableBreakpoints: true,
-    );
+    isolateId,
+    rootLibId,
+    expr,
+    disableBreakpoints: true,
+  );
 }
 
 evaluateGetter(VmService service, String instanceId, String getter) async {
@@ -96,7 +94,8 @@
     expect(result.json['name'], 'String');
   },
   (VmService service, _) async {
-    dynamic instance = await createInstance(service, 'C.constr2(1, "abc", n: 3.14)');
+    dynamic instance =
+        await createInstance(service, 'C.constr2(1, "abc", n: 3.14)');
     dynamic result = await evaluateGetter(service, instance.id, 'n');
     expect(result.valueAsString, '3.14');
     result = await evaluateGetter(service, instance.id, 't');
@@ -117,7 +116,8 @@
     expect(result.json['name'], 'dynamic');
   },
   (VmService service, _) async {
-    dynamic instance = await createInstance(service, 'C.constr3(1, "abc", n: 42, t: 3.14)');
+    dynamic instance =
+        await createInstance(service, 'C.constr3(1, "abc", n: 42, t: 3.14)');
     dynamic result = await evaluateGetter(service, instance.id, 'n');
     expect(result.valueAsString, '42');
     result = await evaluateGetter(service, instance.id, 't');
@@ -127,7 +127,8 @@
     result = await service.evaluate(isolateId, instance.id, 'T');
     expect(result.json['name'], 'double');
 
-    instance = await createInstance(service, 'C.constr3(1, "abc", n: 3.14, t: 42)');
+    instance =
+        await createInstance(service, 'C.constr3(1, "abc", n: 3.14, t: 42)');
     result = await evaluateGetter(service, instance.id, 'n');
     expect(result.valueAsString, '3.14');
     result = await evaluateGetter(service, instance.id, 't');
@@ -177,5 +178,4 @@
       tests,
       'super_constructor_invocation_test.dart',
       testeeConcurrent: testMain,
-      experiments: ['super-parameters'],
     );
diff --git a/tools/VERSION b/tools/VERSION
index b5cd238..09d4cf3 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 18
 PATCH 0
 PRERELEASE 271
-PRERELEASE_PATCH 1
\ No newline at end of file
+PRERELEASE_PATCH 2
\ No newline at end of file
diff --git a/tools/experimental_features.yaml b/tools/experimental_features.yaml
index dec610c..7ac7dbb 100644
--- a/tools/experimental_features.yaml
+++ b/tools/experimental_features.yaml
@@ -233,6 +233,7 @@
       void main() {
         T.t.test();
       }
+    expired: true
 
   named-arguments-anywhere:
     help: "Named Arguments Anywhere"
@@ -246,6 +247,7 @@
       void main() {
         test(enabled : true, 'feature enabled');
       }
+    expired: true
 
   super-parameters:
     help: "Super-Initializer Parameters"
@@ -261,6 +263,7 @@
       void main(){
         print(C('feature enabled').foo);
       }
+    expired: true
 
   inference-update-1:
     help: "Horizontal type inference for function expressions passed to generic invocations."