Skip to content

Commit d6ad61c

Browse files
chloestefantsovaCommit Queue
authored andcommitted
[analyzer] Collect enabled experiments in experimentsForTests
This CL removes the unnecessary overrides of the `experiments` getter from the tests and collects the corresponding experiment flags added to the returned value of the getter in the individual tests to the 'experimentsForTests' list that is used by all tests. Specifically, the experiments `variance` is enabled for all tests. The flag `inference_update_1` is removed from the experiments list, since it's enabled by default. In the tests that explicitly require a distinction between the flag being enabled and disabled, the getter `_isEnabled` is overridden and returns a value corresponding to the test. The flag `inference_update_4` still appears in one of the overrides of the `experiments` getter, since enabling it in all tests appears breaking. This is a follow-up to https://dart-review.googlesource.com/c/sdk/+/430720/comment/4c3f016e_4933f925/ Change-Id: I4d35e3c6259e2f7e6751d180b5790c13f68de1ba Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/434360 Reviewed-by: Konstantin Shcheglov <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Chloe Stefantsova <[email protected]>
1 parent bc9a7c9 commit d6ad61c

11 files changed

+7
-56
lines changed

pkg/analyzer/test/src/dart/resolution/assignment_test.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/analysis/features.dart';
65
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
76
import 'package:analyzer/src/error/codes.dart';
87
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -5388,11 +5387,6 @@ AssignmentExpression
53885387

53895388
@reflectiveTest
53905389
class InferenceUpdate3Test extends PubPackageResolutionTest {
5391-
@override
5392-
List<String> get experiments {
5393-
return [...super.experiments, Feature.inference_update_3.enableString];
5394-
}
5395-
53965390
test_ifNull_contextIsConvertedToATypeUsingGreatestClosure() async {
53975391
await assertNoErrorsInCode('''
53985392
class A {}

pkg/analyzer/test/src/dart/resolution/binary_expression_test.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/analysis/features.dart';
65
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
76
import 'package:analyzer/src/error/codes.dart';
87
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -2264,11 +2263,6 @@ BinaryExpression
22642263

22652264
@reflectiveTest
22662265
class InferenceUpdate3Test extends PubPackageResolutionTest {
2267-
@override
2268-
List<String> get experiments {
2269-
return [...super.experiments, Feature.inference_update_3.enableString];
2270-
}
2271-
22722266
test_ifNull_contextIsConvertedToATypeUsingGreatestClosure() async {
22732267
await assertNoErrorsInCode('''
22742268
class A {}

pkg/analyzer/test/src/dart/resolution/conditional_expression_test.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/analysis/features.dart';
65
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
76
import 'package:analyzer/src/error/codes.dart';
87
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -330,11 +329,6 @@ void f(bool a, int b, int c) {
330329

331330
@reflectiveTest
332331
class InferenceUpdate3Test extends PubPackageResolutionTest {
333-
@override
334-
List<String> get experiments {
335-
return [...super.experiments, Feature.inference_update_3.enableString];
336-
}
337-
338332
test_contextIsConvertedToATypeUsingGreatestClosure() async {
339333
await assertNoErrorsInCode('''
340334
class A {}

pkg/analyzer/test/src/dart/resolution/generic_type_alias_test.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/analysis/features.dart';
65
import 'package:analyzer/dart/element/element.dart';
76
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
87
import 'package:analyzer/src/error/codes.dart';
@@ -107,11 +106,6 @@ C<G>? x;
107106
class GenericTypeAliasResolutionTest_WithoutGenericMetadata
108107
extends PubPackageResolutionTest
109108
with GenericTypeAliasResolutionTestCases {
110-
@override
111-
List<String> get experiments {
112-
return [...super.experiments, Feature.generic_metadata.enableString];
113-
}
114-
115109
test_genericFunctionTypeCannotBeTypeArgument_def_class() async {
116110
await assertErrorsInCode(
117111
r'''

pkg/analyzer/test/src/dart/resolution/postfix_expression_test.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/analysis/features.dart';
65
import 'package:analyzer/dart/ast/ast.dart';
76
import 'package:analyzer/src/dart/error/syntactic_errors.dart';
87
import 'package:analyzer/src/error/codes.dart';
@@ -19,11 +18,6 @@ main() {
1918

2019
@reflectiveTest
2120
class InferenceUpdate4Test extends PubPackageResolutionTest {
22-
@override
23-
List<String> get experiments {
24-
return [...super.experiments, Feature.inference_update_4.enableString];
25-
}
26-
2721
test_isExpression_notPromoted() async {
2822
await assertNoErrorsInCode('''
2923
f() {

pkg/analyzer/test/src/dart/resolution/type_inference/inference_update_1_test.dart

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/analysis/features.dart';
65
import 'package:analyzer/src/error/codes.dart';
76
import 'package:test/test.dart';
87
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -21,15 +20,16 @@ class HorizontalInferenceDisabledTest extends PubPackageResolutionTest
2120
with HorizontalInferenceTestCases {
2221
@override
2322
String get testPackageLanguageVersion => '2.17';
23+
24+
@override
25+
bool get _isEnabled => false;
2426
}
2527

2628
@reflectiveTest
2729
class HorizontalInferenceEnabledTest extends PubPackageResolutionTest
2830
with HorizontalInferenceTestCases {
2931
@override
30-
List<String> get experiments {
31-
return [...super.experiments, Feature.inference_update_1.enableString];
32-
}
32+
bool get _isEnabled => true;
3333

3434
test_record_field_named() async {
3535
// A round of horizontal inference should occur between the first argument
@@ -61,8 +61,7 @@ test() {
6161
}
6262

6363
mixin HorizontalInferenceTestCases on PubPackageResolutionTest {
64-
bool get _isEnabled =>
65-
experiments.contains(Feature.inference_update_1.enableString);
64+
bool get _isEnabled;
6665

6766
test_closure_passed_to_dynamic() async {
6867
await assertNoErrorsInCode('''

pkg/analyzer/test/src/dart/resolution/variance_test.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/analysis/features.dart';
65
import 'package:analyzer/src/error/codes.dart';
76
import 'package:test_reflective_loader/test_reflective_loader.dart';
87

@@ -16,11 +15,6 @@ main() {
1615

1716
@reflectiveTest
1817
class VarianceResolutionTest extends PubPackageResolutionTest {
19-
@override
20-
List<String> get experiments {
21-
return [...super.experiments, Feature.variance.enableString];
22-
}
23-
2418
test_inference_in_parameter() async {
2519
await assertNoErrorsInCode('''
2620
class Contravariant<in T> {}

pkg/analyzer/test/src/diagnostics/generic_function_type_cannot_be_bound_test.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
import 'package:analyzer/dart/analysis/features.dart';
65
import 'package:analyzer/src/error/codes.dart';
76
import 'package:test_reflective_loader/test_reflective_loader.dart';
87

@@ -74,11 +73,6 @@ typedef T foo<T extends S Function<S>(S)>(T t);
7473
@reflectiveTest
7574
class GenericFunctionTypeCannotBeBoundWithoutGenericMetadataTest
7675
extends PubPackageResolutionTest {
77-
@override
78-
List<String> get experiments {
79-
return [...super.experiments, Feature.generic_metadata.enableString];
80-
}
81-
8276
test_class() async {
8377
await assertErrorsInCode(
8478
r'''

pkg/analyzer/test/src/diagnostics/getter_not_subtype_setter_types_test.dart

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import 'package:analyzer/dart/analysis/features.dart';
66
import 'package:analyzer/src/error/codes.dart';
7-
import 'package:analyzer_testing/experiments/experiments.dart';
87
import 'package:collection/collection.dart';
98
import 'package:test_reflective_loader/test_reflective_loader.dart';
109

@@ -28,10 +27,7 @@ class GetterNotSubtypeSetterTypesTest_withGetterSetterErrorFeature
2827

2928
@reflectiveTest
3029
class GetterNotSubtypeSetterTypesTest_withoutGetterSetterErrorFeature
31-
extends _GetterNotSubtypeSetterTypesTest {
32-
@override
33-
List<String> get experiments => [...experimentsForTests];
34-
}
30+
extends _GetterNotSubtypeSetterTypesTest {}
3531

3632
class _GetterNotSubtypeSetterTypesTest extends PubPackageResolutionTest {
3733
test_class_instance() async {

pkg/analyzer/test/src/diagnostics/redeclare_on_non_redeclaring_member_test.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@ main() {
1616

1717
@reflectiveTest
1818
class RedeclareOnNonRedeclaringMemberTest extends PubPackageResolutionTest {
19-
@override
20-
List<String> get experiments => [];
21-
2219
@override
2320
void setUp() {
2421
super.setUp();

0 commit comments

Comments
 (0)