diff --git a/pkg/analysis_server/test/abstract_context.dart b/pkg/analysis_server/test/abstract_context.dart index 030522c1a9c..df8d032eb86 100644 --- a/pkg/analysis_server/test/abstract_context.dart +++ b/pkg/analysis_server/test/abstract_context.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analyzer/dart/analysis/analysis_context.dart'; +import 'package:analyzer/dart/analysis/features.dart'; import 'package:analyzer/dart/analysis/results.dart'; import 'package:analyzer/dart/analysis/session.dart'; import 'package:analyzer/file_system/file_system.dart'; @@ -44,12 +45,12 @@ class AbstractContextTest with ResourceProviderMixin { /// Return a list of the experiments that are to be enabled for tests in this /// class, an empty list if there are no experiments that should be enabled. - List get experiments => [ - EnableString.class_modifiers, - EnableString.macros, - EnableString.patterns, - EnableString.records, - EnableString.sealed_class, + List get experiments => [ + Feature.class_modifiers, + Feature.macros, + Feature.patterns, + Feature.records, + Feature.sealed_class, ]; String get latestLanguageVersion => @@ -105,7 +106,7 @@ class AbstractContextTest with ResourceProviderMixin { /// Create an analysis options file based on the given arguments. void createAnalysisOptionsFile({ - List? experiments, + List? experiments, List? cannotIgnore, bool? implicitCasts, List? lints, @@ -119,7 +120,12 @@ class AbstractContextTest with ResourceProviderMixin { if (experiments != null) { buffer.writeln(' enable-experiment:'); for (var experiment in experiments) { - buffer.writeln(' - $experiment'); + final experimentalFlag = experiment.experimentalFlag; + if (experimentalFlag != null) { + buffer.writeln(' - ${experiment.experimentalFlag}'); + } else { + throw ArgumentError('Not experimental: $experiment'); + } } } diff --git a/pkg/analysis_server/test/analysis/notification_highlights2_test.dart b/pkg/analysis_server/test/analysis/notification_highlights2_test.dart index e97caea095a..8aa3b43fda3 100644 --- a/pkg/analysis_server/test/analysis/notification_highlights2_test.dart +++ b/pkg/analysis_server/test/analysis/notification_highlights2_test.dart @@ -7,7 +7,6 @@ import 'dart:async'; import 'package:analysis_server/protocol/protocol.dart'; import 'package:analysis_server/protocol/protocol_constants.dart'; import 'package:analysis_server/protocol/protocol_generated.dart'; -import 'package:analyzer/dart/analysis/features.dart'; import 'package:analyzer/source/source_range.dart'; import 'package:analyzer/src/test_utilities/test_code_format.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart'; @@ -26,12 +25,6 @@ void main() { @reflectiveTest class AnalysisNotificationHighlightsTest extends HighlightsTestSupport { - @override - List get experiments => [ - Feature.inline_class.enableString, - ...super.experiments, - ]; - void assertHighlightText(TestCode testCode, int index, String expected) { var actual = _getHighlightText(testCode, index); if (actual != expected) { diff --git a/pkg/analysis_server/test/analysis_server_base.dart b/pkg/analysis_server/test/analysis_server_base.dart index e65d81da80b..88dd53fd420 100644 --- a/pkg/analysis_server/test/analysis_server_base.dart +++ b/pkg/analysis_server/test/analysis_server_base.dart @@ -27,7 +27,7 @@ import 'src/utilities/mock_packages.dart'; /// TODO(scheglov) this is duplicate class AnalysisOptionsFileConfig { - final List experiments; + final List experiments; final bool implicitCasts; final bool implicitDynamic; final List lints; @@ -52,7 +52,12 @@ class AnalysisOptionsFileConfig { if (experiments.isNotEmpty) { buffer.writeln(' enable-experiment:'); for (var experiment in experiments) { - buffer.writeln(' - $experiment'); + final experimentalFlag = experiment.experimentalFlag; + if (experimentalFlag != null) { + buffer.writeln(' - ${experiment.experimentalFlag}'); + } else { + throw ArgumentError('Not experimental: $experiment'); + } } } buffer.writeln(' language:'); @@ -214,15 +219,13 @@ class ContextResolutionTest with ResourceProviderMixin { } class PubPackageAnalysisServerTest extends ContextResolutionTest { - // If experiments are needed, - // add `import 'package:analyzer/dart/analysis/features.dart';` - // and list the necessary experiments here. - List get experiments => [ - Feature.class_modifiers.enableString, - Feature.macros.enableString, - Feature.patterns.enableString, - Feature.records.enableString, - Feature.sealed_class.enableString, + List get experiments => [ + Feature.class_modifiers, + Feature.inline_class, + Feature.macros, + Feature.patterns, + Feature.records, + Feature.sealed_class, ]; /// The path that is not in [workspaceRootPath], contains external packages. diff --git a/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart index 234933619b6..5be34a40ced 100644 --- a/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart @@ -11,7 +11,6 @@ import 'package:analysis_server/src/provisional/completion/dart/completion_dart. import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/imported_reference_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; -import 'package:analyzer/src/dart/analysis/experiments.dart'; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; @@ -2394,7 +2393,6 @@ class B extends A { } Future test_function_parameters_nnbd_required() async { - createAnalysisOptionsFile(experiments: [EnableString.non_nullable]); resolveSource('$testPackageLibPath/a.dart', ''' void m(int? nullable, int nonNullable) {} '''); @@ -2417,7 +2415,6 @@ void f() {^} } Future test_function_parameters_nnbd_required_into_legacy() async { - createAnalysisOptionsFile(experiments: [EnableString.non_nullable]); resolveSource('$testPackageLibPath/a.dart', ''' void m(int? nullable, int nonNullable) {} '''); @@ -2441,7 +2438,6 @@ void f() {^} } Future test_function_parameters_nnbd_required_legacy() async { - createAnalysisOptionsFile(experiments: [EnableString.non_nullable]); resolveSource('$testPackageLibPath/a.dart', ''' // @dart = 2.8 void m(int param) {} diff --git a/pkg/analysis_server/test/src/services/correction/fix/fix_processor.dart b/pkg/analysis_server/test/src/services/correction/fix/fix_processor.dart index 111c3333b1c..7de4d0c2b40 100644 --- a/pkg/analysis_server/test/src/services/correction/fix/fix_processor.dart +++ b/pkg/analysis_server/test/src/services/correction/fix/fix_processor.dart @@ -7,6 +7,7 @@ import 'package:analysis_server/src/services/correction/bulk_fix_processor.dart' import 'package:analysis_server/src/services/correction/change_workspace.dart'; import 'package:analysis_server/src/services/correction/fix.dart'; import 'package:analysis_server/src/services/correction/fix_internal.dart'; +import 'package:analyzer/dart/analysis/features.dart'; import 'package:analyzer/error/error.dart'; import 'package:analyzer/src/dart/analysis/byte_store.dart'; import 'package:analyzer/src/dart/error/lint_codes.dart'; @@ -87,7 +88,7 @@ abstract class BulkFixProcessorTest extends AbstractSingleUnitTest { late BulkFixProcessor processor; @override - List get experiments => const []; + List get experiments => const []; /// Return the lint code being tested. String? get lintCode => null; diff --git a/pkg/analysis_server/test/src/services/correction/fix/remove_break_test.dart b/pkg/analysis_server/test/src/services/correction/fix/remove_break_test.dart index 51cca0bbf5e..4edeeb415ef 100644 --- a/pkg/analysis_server/test/src/services/correction/fix/remove_break_test.dart +++ b/pkg/analysis_server/test/src/services/correction/fix/remove_break_test.dart @@ -4,6 +4,7 @@ import 'package:analysis_server/src/services/correction/fix.dart'; import 'package:analysis_server/src/services/linter/lint_names.dart'; +import 'package:analyzer/dart/analysis/features.dart'; import 'package:analyzer_plugin/utilities/fixes/fixes.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; @@ -19,7 +20,7 @@ void main() { @reflectiveTest class RemoveBreakBulkTest extends BulkFixProcessorTest { @override - List get experiments => ['patterns', 'records']; + List get experiments => [Feature.patterns, Feature.records]; @override String get lintCode => LintNames.unnecessary_breaks; @@ -53,7 +54,7 @@ f() { @reflectiveTest class RemoveBreakTest extends FixProcessorLintTest { @override - List get experiments => ['patterns', 'records']; + List get experiments => [Feature.patterns, Feature.records]; @override FixKind get kind => DartFixKind.REMOVE_BREAK; diff --git a/pkg/analysis_server/test/src/services/correction/fix/update_sdk_constraints_test.dart b/pkg/analysis_server/test/src/services/correction/fix/update_sdk_constraints_test.dart index 07037a4b62f..7c046a8387c 100644 --- a/pkg/analysis_server/test/src/services/correction/fix/update_sdk_constraints_test.dart +++ b/pkg/analysis_server/test/src/services/correction/fix/update_sdk_constraints_test.dart @@ -3,7 +3,6 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/services/correction/fix.dart'; -import 'package:analyzer/src/dart/analysis/experiments.dart'; import 'package:analyzer_plugin/utilities/fixes/fixes.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; @@ -64,8 +63,6 @@ const c = a == null; } Future test_gtGtGtOperator() async { - writeTestPackageConfig(languageVersion: latestLanguageVersion); - createAnalysisOptionsFile(experiments: [EnableString.triple_shift]); await testUpdate(content: ''' class C { C operator >>>(C other) => this; diff --git a/pkg/analysis_server/test/src/utilities/selection_test.dart b/pkg/analysis_server/test/src/utilities/selection_test.dart index 6d8be687497..2a43773c6a8 100644 --- a/pkg/analysis_server/test/src/utilities/selection_test.dart +++ b/pkg/analysis_server/test/src/utilities/selection_test.dart @@ -5,7 +5,6 @@ import 'package:analysis_server/src/utilities/selection.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/source/source_range.dart'; -import 'package:analyzer/src/dart/analysis/experiments.dart'; import 'package:analyzer/src/test_utilities/test_code_format.dart'; import 'package:test/test.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; @@ -21,12 +20,6 @@ void main() { @reflectiveTest class SelectionTest extends AbstractSingleUnitTest { - @override - List get experiments => [ - ...super.experiments, - EnableString.patterns, - ]; - Future assertMembers( {String prefix = '', required String postfix}) async { var nodes = await nodesInRange('''