Switch to using FeatureSet in summary tests
Change-Id: I16b13a2509836485417013da48d5b1ae4c92f618
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101069
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
diff --git a/pkg/analyzer/test/src/summary/expr_builder_test.dart b/pkg/analyzer/test/src/summary/expr_builder_test.dart
index a5b62d9..385c03e 100644
--- a/pkg/analyzer/test/src/summary/expr_builder_test.dart
+++ b/pkg/analyzer/test/src/summary/expr_builder_test.dart
@@ -6,7 +6,6 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/error/listener.dart';
-import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/scanner/reader.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
@@ -297,7 +296,6 @@
}
void test_list_for() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (i = 0; i < 10; i++) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -306,7 +304,6 @@
}
void test_list_for_each_with_declaration_typed() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (int i in const []) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -320,7 +317,6 @@
}
void test_list_for_each_with_declaration_untyped() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (var i in const []) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -334,7 +330,6 @@
}
void test_list_for_each_with_identifier() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (i in const []) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -343,7 +338,6 @@
}
void test_list_for_each_with_identifier_await() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[await for (i in const []) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -352,7 +346,6 @@
}
void test_list_for_empty_condition() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (i = 0;; i++) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -361,7 +354,6 @@
}
void test_list_for_empty_initializer() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (; i < 10; i++) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -370,7 +362,6 @@
}
void test_list_for_two_updaters() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (i = 0; i < 10; i++, j++) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -379,7 +370,6 @@
}
void test_list_for_with_one_declaration_typed() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (int i = 0; i < 10; i++) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -399,7 +389,6 @@
}
void test_list_for_with_one_declaration_untyped() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (var i = 0; i < 10; i++) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -419,7 +408,6 @@
}
void test_list_for_with_two_declarations_untyped() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (var i = 0, j = 0; i < 10; j++) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -440,7 +428,6 @@
}
void test_list_for_with_uninitialized_declaration_untyped() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (var i; i < 10; i++) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -460,7 +447,6 @@
}
void test_list_for_zero_updaters() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '[for (i = 0; i < 10;) i]';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -489,7 +475,6 @@
}
void test_map_for() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '{1 : 2, for (i = 0; i < 10; i++) i : i}';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -647,7 +632,6 @@
}
void test_set_for() {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var sourceText = '{1, for (i = 0; i < 10; i++) i}';
// Resynthesis inserts synthetic "const" tokens; work around that.
var expectedText = 'const $sourceText';
@@ -773,7 +757,7 @@
class ExprBuilderWithConstantUpdateTest extends ResynthesizeTestStrategyTwoPhase
with ExprBuilderTestHelpers {
@override
- ExperimentStatus get experimentStatus => new ExperimentStatus.forTesting(
+ FeatureSet get featureSet => new FeatureSet.forTesting(
sdkVersion: '2.2.2',
additionalFeatures: [Feature.constant_update_2018, Feature.triple_shift]);
diff --git a/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart b/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
index bf5c700..69d4a5b 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
@@ -41,7 +41,7 @@
for (var sdkLibrary in sdk.sdkLibraries) {
var source = sourceFactory.resolveUri(null, sdkLibrary.shortName);
var text = getFile(source.fullName).readAsStringSync();
- var unit = parseText(text);
+ var unit = parseText(text, featureSet);
var inputUnits = <LinkInputUnit>[];
_addLibraryUnits(source, unit, inputUnits);
@@ -139,12 +139,12 @@
if (partSource != null) {
var text = _readSafely(partSource.fullName);
- var unit = parseText(text, experimentStatus: experimentStatus);
+ var unit = parseText(text, featureSet);
units.add(
LinkInputUnit(partSource, false, unit),
);
} else {
- var unit = parseText('', experimentStatus: experimentStatus);
+ var unit = parseText('', featureSet);
units.add(
LinkInputUnit(partSource, false, unit),
);
@@ -165,7 +165,7 @@
}
var text = _readSafely(source.fullName);
- var unit = parseText(text, experimentStatus: experimentStatus);
+ var unit = parseText(text, featureSet);
var units = <LinkInputUnit>[];
_addLibraryUnits(source, unit, units);
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index 134519d..8f9c7ff 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -10,7 +10,6 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/context/context.dart';
-import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/summary/idl.dart';
@@ -1002,7 +1001,7 @@
}
test_class_field_const_late() async {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
var library =
await checkLibrary('class C { static late const int i = 0; }');
@@ -1023,7 +1022,7 @@
}
test_class_field_implicit_type_late() async {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
var library = await checkLibrary('class C { late var x; }');
checkElementText(library, r'''
@@ -1043,7 +1042,7 @@
}
test_class_field_static_late() async {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
var library = await checkLibrary('class C { static late int i; }');
checkElementText(library, r'''
@@ -1064,7 +1063,7 @@
}
test_class_fields_late() async {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
var library = await checkLibrary('class C { int i; late int j; }');
checkElementText(library, r'''
@@ -2984,7 +2983,6 @@
}
test_const_list_if() async {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var library = await checkLibrary('''
const Object x = const <int>[if (true) 1];
''');
@@ -2998,7 +2996,6 @@
}
test_const_list_if_else() async {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var library = await checkLibrary('''
const Object x = const <int>[if (true) 1 else 2];
''');
@@ -3034,7 +3031,6 @@
}
test_const_list_spread() async {
- experimentStatus = ExperimentStatus(spread_collections: true);
var library = await checkLibrary('''
const Object x = const <int>[...<int>[1]];
''');
@@ -3057,7 +3053,6 @@
}
test_const_list_spread_null_aware() async {
- experimentStatus = ExperimentStatus(spread_collections: true);
var library = await checkLibrary('''
const Object x = const <int>[...?<int>[1]];
''');
@@ -3080,7 +3075,6 @@
}
test_const_map_if() async {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var library = await checkLibrary('''
const Object x = const <int, int>{if (true) 1: 2};
''');
@@ -3095,7 +3089,6 @@
}
test_const_map_if_else() async {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var library = await checkLibrary('''
const Object x = const <int, int>{if (true) 1: 2 else 3: 4];
''');
@@ -3133,7 +3126,6 @@
}
test_const_map_spread() async {
- experimentStatus = ExperimentStatus(spread_collections: true);
var library = await checkLibrary('''
const Object x = const <int, int>{...<int, int>{1: 2}};
''');
@@ -3160,7 +3152,6 @@
}
test_const_map_spread_null_aware() async {
- experimentStatus = ExperimentStatus(spread_collections: true);
var library = await checkLibrary('''
const Object x = const <int, int>{...?<int, int>{1: 2}};
''');
@@ -3627,7 +3618,6 @@
}
test_const_set_if() async {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var library = await checkLibrary('''
const Object x = const <int>{if (true) 1};
''');
@@ -3641,7 +3631,6 @@
}
test_const_set_if_else() async {
- experimentStatus = ExperimentStatus(control_flow_collections: true);
var library = await checkLibrary('''
const Object x = const <int>{if (true) 1 else 2];
''');
@@ -3677,7 +3666,6 @@
}
test_const_set_spread() async {
- experimentStatus = ExperimentStatus(spread_collections: true);
var library = await checkLibrary('''
const Object x = const <int>{...<int>{1}};
''');
@@ -3700,7 +3688,6 @@
}
test_const_set_spread_null_aware() async {
- experimentStatus = ExperimentStatus(spread_collections: true);
var library = await checkLibrary('''
const Object x = const <int>{...?<int>{1}};
''');
@@ -9936,7 +9923,7 @@
}
test_variable_const_late() async {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
var library = await checkLibrary('late const int i = 0;');
checkElementText(library, r'''
@@ -9967,7 +9954,7 @@
}
test_variable_final_late() async {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
var library = await checkLibrary('late final int x = 0;');
checkElementText(library, r'''
@@ -10079,7 +10066,7 @@
}
test_variable_late() async {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
var library = await checkLibrary('late int x = 0;');
checkElementText(library, r'''
diff --git a/pkg/analyzer/test/src/summary/summary_common.dart b/pkg/analyzer/test/src/summary/summary_common.dart
index d408261..1dd664a 100644
--- a/pkg/analyzer/test/src/summary/summary_common.dart
+++ b/pkg/analyzer/test/src/summary/summary_common.dart
@@ -5,7 +5,6 @@
import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/error/listener.dart';
-import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/dart/scanner/reader.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
import 'package:analyzer/src/generated/parser.dart';
@@ -1753,7 +1752,7 @@
}
test_constExpr_binary_bitShiftRightLogical() {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2',
additionalFeatures: [
Feature.constant_update_2018,
@@ -2836,8 +2835,6 @@
}
test_constExpr_list_if() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('const v = [if (true) 1];');
assertUnlinkedConst(variable.initializer.bodyExpr, '[if (true) 1]',
@@ -2854,8 +2851,6 @@
}
test_constExpr_list_if_else() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('const v = [if (true) 1 else 2];');
assertUnlinkedConst(variable.initializer.bodyExpr, '[if (true) 1 else 2]',
@@ -2874,8 +2869,6 @@
}
test_constExpr_list_spread() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable = serializeVariableText('const v = [...[]];');
assertUnlinkedConst(variable.initializer.bodyExpr, '[...[]]', operators: [
UnlinkedExprOperation.makeUntypedList,
@@ -2888,8 +2881,6 @@
}
test_constExpr_list_spread_null_aware() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable = serializeVariableText('const v = [...?[]];');
assertUnlinkedConst(variable.initializer.bodyExpr, '[...?[]]', operators: [
UnlinkedExprOperation.makeUntypedList,
@@ -3094,7 +3085,6 @@
}
test_constExpr_makeTypedSet() {
- experimentStatus = ExperimentStatus(set_literals: true);
UnlinkedVariable variable =
serializeVariableText('const v = const <int>{11, 22, 33};');
assertUnlinkedConst(
@@ -3115,7 +3105,6 @@
}
test_constExpr_makeTypedSet_dynamic() {
- experimentStatus = ExperimentStatus(set_literals: true);
UnlinkedVariable variable =
serializeVariableText('const v = const <dynamic>{11, 22, 33};');
assertUnlinkedConst(
@@ -3133,7 +3122,6 @@
}
test_constExpr_makeTypedSet_functionType() {
- experimentStatus = ExperimentStatus(set_literals: true);
UnlinkedVariable variable =
serializeVariableText('final v = <void Function(int)>{};');
assertUnlinkedConst(variable.initializer.bodyExpr, '<void Function(int)>{}',
@@ -3162,7 +3150,6 @@
}
test_constExpr_makeTypedSet_functionType_withTypeParameters() {
- experimentStatus = ExperimentStatus(set_literals: true);
UnlinkedVariable variable = serializeVariableText(
'final v = <void Function<T>(Function<Q>(T, Q))>{};');
assertUnlinkedConst(variable.initializer.bodyExpr,
@@ -3254,7 +3241,6 @@
}
test_constExpr_makeUntypedSet() {
- experimentStatus = ExperimentStatus(set_literals: true);
UnlinkedVariable variable =
serializeVariableText('const v = const {11, 22, 33};');
assertUnlinkedConst(
@@ -3271,8 +3257,6 @@
}
test_constExpr_map_if() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('const v = <int, int>{if (true) 1 : 2};');
assertUnlinkedConst(
@@ -3299,8 +3283,6 @@
}
test_constExpr_map_if_else() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable = serializeVariableText(
'const v = <int, int>{if (true) 1 : 2 else 3 : 4};');
assertUnlinkedConst(
@@ -3332,8 +3314,6 @@
}
test_constExpr_map_spread() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('const v = <int, String>{...<int, String>{}};');
assertUnlinkedConst(
@@ -3360,8 +3340,6 @@
}
test_constExpr_map_spread_null_aware() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('const v = <int, String>{...?<int, String>{}};');
assertUnlinkedConst(
@@ -4106,8 +4084,6 @@
}
test_constExpr_set_if() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('const v = <int>{if (true) 1};');
assertUnlinkedConst(variable.initializer.bodyExpr, '<int>{if (true) 1}',
@@ -4128,8 +4104,6 @@
}
test_constExpr_set_if_else() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('const v = <int>{if (true) 1 else 2};');
assertUnlinkedConst(
@@ -4153,8 +4127,6 @@
}
test_constExpr_set_spread() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('const v = <int>{...<int>{}};');
assertUnlinkedConst(variable.initializer.bodyExpr, '<int>{...<int>{}}',
@@ -4176,8 +4148,6 @@
}
test_constExpr_set_spread_null_aware() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('const v = <int>{...?<int>{}};');
assertUnlinkedConst(variable.initializer.bodyExpr, '<int>{...?<int>{}}',
@@ -7855,8 +7825,6 @@
}
test_expr_list_for() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('int i; var v = [for (i = 0; i < 10; i++) i];');
assertUnlinkedConst(
@@ -7897,8 +7865,6 @@
}
test_expr_list_for_each_with_declaration_typed() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('var v = [for (int i in []) i];');
assertUnlinkedConst(variable.initializer.bodyExpr, '[for (int i in []) i]',
@@ -7924,8 +7890,6 @@
}
test_expr_list_for_each_with_declaration_untyped() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('var v = [for (var i in []) i];');
assertUnlinkedConst(variable.initializer.bodyExpr, '[for (var i in []) i]',
@@ -7948,8 +7912,6 @@
}
test_expr_list_for_each_with_identifier() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('int i; var v = [for (i in []) i];');
assertUnlinkedConst(variable.initializer.bodyExpr, '[for (i in []) i]',
@@ -7975,8 +7937,6 @@
}
test_expr_list_for_each_with_identifier_await() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('int i; var v = [await for (i in []) i];');
assertUnlinkedConst(
@@ -8003,8 +7963,6 @@
}
test_expr_list_for_empty_condition() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('int i; var v = [for (i = 0;; i++) i];');
assertUnlinkedConst(variable.initializer.bodyExpr, '[for (i = 0;; i++) i]',
@@ -8039,8 +7997,6 @@
}
test_expr_list_for_empty_initializer() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('int i; var v = [for (; i < 10; i++) i];');
assertUnlinkedConst(
@@ -8076,8 +8032,6 @@
}
test_expr_list_for_two_updaters() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable = serializeVariableText(
'int i; int j; var v = [for (i = 0; i < 10; i++, j++) i];');
assertUnlinkedConst(
@@ -8122,8 +8076,6 @@
}
test_expr_list_for_with_one_declaration_typed() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('var v = [for (int i = 0; i < 10; i++) i];');
assertUnlinkedConst(
@@ -8166,8 +8118,6 @@
}
test_expr_list_for_with_one_declaration_untyped() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('var v = [for (var i = 0; i < 10; i++) i];');
assertUnlinkedConst(
@@ -8207,8 +8157,6 @@
}
test_expr_list_for_with_two_declarations_untyped() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable = serializeVariableText(
'var v = [for (var i = 0, j = 0; i < 10; i++) i];');
assertUnlinkedConst(variable.initializer.bodyExpr,
@@ -8254,8 +8202,6 @@
}
test_expr_list_for_with_uninitialized_declaration_untyped() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('var v = [for (var i; i < 10; i++) i];');
assertUnlinkedConst(
@@ -8294,8 +8240,6 @@
}
test_expr_list_for_zero_updaters() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable =
serializeVariableText('int i; var v = [for (i = 0; i < 10;) i];');
assertUnlinkedConst(
@@ -8361,7 +8305,6 @@
}
test_expr_makeTypedSet() {
- experimentStatus = ExperimentStatus(set_literals: true);
UnlinkedVariable variable =
serializeVariableText('var v = <int>{11, 22, 33};');
assertUnlinkedConst(variable.initializer.bodyExpr, '<int>{11, 22, 33}',
@@ -8410,7 +8353,6 @@
}
test_expr_makeUntypedSet() {
- experimentStatus = ExperimentStatus(set_literals: true);
UnlinkedVariable variable = serializeVariableText('var v = {11, 22, 33};');
assertUnlinkedConst(variable.initializer.bodyExpr, '{11, 22, 33}',
operators: [
@@ -8424,8 +8366,6 @@
}
test_expr_map_for() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable = serializeVariableText(
'int i; var v = {1: 2, for (i = 0; i < 10; i++) i: i};');
assertUnlinkedConst(
@@ -8475,8 +8415,6 @@
}
test_expr_set_for() {
- experimentStatus = ExperimentStatus(
- control_flow_collections: true, spread_collections: true);
UnlinkedVariable variable = serializeVariableText(
'int i; var v = {1, for (i = 0; i < 10; i++) i};');
assertUnlinkedConst(
@@ -8868,7 +8806,7 @@
}
test_field_late() {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
UnlinkedClass cls = serializeClassText('class C { late int i; }');
UnlinkedVariable variable = findVariable('i', variables: cls.fields);
@@ -8917,7 +8855,7 @@
}
test_field_static_final_late() {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
UnlinkedVariable variable =
serializeClassText('class C { static late final int i = 0; }')
@@ -8941,7 +8879,7 @@
}
test_field_static_late() {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
UnlinkedVariable variable =
serializeClassText('class C { static late int i; }').fields[0];
@@ -11786,7 +11724,7 @@
}
test_variable_late() {
- experimentStatus = FeatureSet.forTesting(
+ featureSet = FeatureSet.forTesting(
sdkVersion: '2.2.2', additionalFeatures: [Feature.non_nullable]);
UnlinkedVariable variable =
serializeVariableText('late int i;', variableName: 'i');
@@ -11946,10 +11884,10 @@
var reader = new CharSequenceReader(sourceText);
var stringSource = new StringSource(sourceText, null);
var scanner = new Scanner(stringSource, reader, errorListener)
- ..configureFeatures(experimentStatus);
+ ..configureFeatures(featureSet);
var startToken = scanner.tokenize();
var parser =
- new Parser(stringSource, errorListener, featureSet: experimentStatus);
+ new Parser(stringSource, errorListener, featureSet: featureSet);
var compilationUnit = parser.parseCompilationUnit(startToken);
var f = compilationUnit.declarations[0] as FunctionDeclaration;
var body = f.functionExpression.body as ExpressionFunctionBody;
diff --git a/pkg/analyzer/test/src/summary/test_strategies.dart b/pkg/analyzer/test/src/summary/test_strategies.dart
index eff84c4..a6879c6 100644
--- a/pkg/analyzer/test/src/summary/test_strategies.dart
+++ b/pkg/analyzer/test/src/summary/test_strategies.dart
@@ -3,11 +3,11 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/dart/analysis/declared_variables.dart';
+import 'package:analyzer/dart/analysis/features.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/error/listener.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
-import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/dart/analysis/restricted_analysis_context.dart';
import 'package:analyzer/src/dart/scanner/reader.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
@@ -35,18 +35,18 @@
}
CompilationUnit parseText(
- String text, {
- ExperimentStatus experimentStatus,
-}) {
- experimentStatus ??= ExperimentStatus();
+ String text,
+ FeatureSet featureSet,
+) {
+ featureSet ??= FeatureSet.forTesting(sdkVersion: '2.3.0');
CharSequenceReader reader = new CharSequenceReader(text);
Scanner scanner =
new Scanner(null, reader, AnalysisErrorListener.NULL_LISTENER)
- ..configureFeatures(experimentStatus);
+ ..configureFeatures(featureSet);
Token token = scanner.tokenize();
Parser parser = new Parser(
NonExistingSource.unknown, AnalysisErrorListener.NULL_LISTENER,
- featureSet: experimentStatus);
+ featureSet: featureSet);
CompilationUnit unit = parser.parseCompilationUnit(token);
unit.lineInfo = new LineInfo(scanner.lineStarts);
return unit;
@@ -93,8 +93,8 @@
/// The tests themselves can then be provided via mixin, allowing summaries to
/// be tested in a variety of ways.
abstract class ResynthesizeTestStrategy {
- /// The set of [ExperimentStatus] enabled in this test.
- ExperimentStatus experimentStatus;
+ /// The set of features enabled in this test.
+ FeatureSet featureSet;
void set allowMissingFiles(bool value);
@@ -127,7 +127,7 @@
class ResynthesizeTestStrategyTwoPhase extends AbstractResynthesizeTest
implements ResynthesizeTestStrategy {
@override
- ExperimentStatus experimentStatus = ExperimentStatus();
+ FeatureSet featureSet = FeatureSet.forTesting(sdkVersion: '2.2.2');
final Set<Source> serializedSources = new Set<Source>();
@@ -176,8 +176,7 @@
.map((Source source) => source.uri.toString())
.toSet();
- var analysisOptions = AnalysisOptionsImpl()
- ..enabledExperiments = experimentStatus.toStringList();
+ var analysisOptions = AnalysisOptionsImpl()..contextFeatures = featureSet;
Map<String, LinkedLibrary> linkedSummaries = link(nonSdkLibraryUris,
getDependency, getUnit, declaredVariables, analysisOptions);
@@ -226,8 +225,7 @@
contents = '';
}
- CompilationUnit unit =
- parseText(contents, experimentStatus: experimentStatus);
+ CompilationUnit unit = parseText(contents, featureSet);
UnlinkedUnitBuilder unlinkedUnit = serializeAstUnlinked(unit);
bundleAssembler.addUnlinkedUnit(source, unlinkedUnit);
@@ -308,8 +306,8 @@
/// The tests themselves can then be provided via mixin, allowing summaries to
/// be tested in a variety of ways.
abstract class SummaryBaseTestStrategy {
- /// The set of [ExperimentStatus] enabled in this test.
- ExperimentStatus experimentStatus;
+ /// The set of features enabled in this test.
+ FeatureSet featureSet;
/// Add the given package bundle as a dependency so that it may be referenced
/// by the files under test.
@@ -530,12 +528,12 @@
new _FilesToLink<UnlinkedUnitBuilder>();
@override
- ExperimentStatus experimentStatus = ExperimentStatus();
+ FeatureSet featureSet = FeatureSet.forTesting();
_LinkerInputs _linkerInputs;
- AnalysisOptions get analysisOptions => AnalysisOptionsImpl()
- ..enabledExperiments = experimentStatus.toStringList();
+ AnalysisOptions get analysisOptions =>
+ AnalysisOptionsImpl()..contextFeatures = featureSet;
bool get _allowMissingFiles;
@@ -546,7 +544,7 @@
@override
void addNamedSource(String filePath, String contents) {
- CompilationUnit unit = parseText(contents);
+ CompilationUnit unit = parseText(contents, featureSet);
UnlinkedUnitBuilder unlinkedUnit = serializeAstUnlinked(unit);
_filesToLink.uriToUnit[absUri(filePath)] = unlinkedUnit;
}
@@ -572,8 +570,7 @@
UnlinkedUnitBuilder createUnlinkedSummary(Uri uri, String text,
{bool nnbd: false}) =>
- serializeAstUnlinked(parseText(text, experimentStatus: experimentStatus),
- nnbd: nnbd);
+ serializeAstUnlinked(parseText(text, featureSet), nnbd: nnbd);
_LinkerInputs _createLinkerInputs(String text,
{String path: '/test.dart', String uri, bool nnbd: false}) {