@@ -7,6 +7,7 @@ import 'package:analyzer/file_system/file_system.dart';
77import 'package:analyzer/src/context/packages.dart' ;
88import 'package:analyzer/src/context/source.dart' ;
99import 'package:analyzer/src/dart/analysis/experiments.dart' ;
10+ import 'package:analyzer/src/dart/analysis/experiments_impl.dart' ;
1011import 'package:analyzer/src/dart/analysis/feature_set_provider.dart' ;
1112import 'package:analyzer/src/generated/source.dart' ;
1213import 'package:analyzer/src/generated/source_io.dart' ;
@@ -260,67 +261,95 @@ class FeatureSetProviderTest with ResourceProviderMixin {
260261 }
261262
262263 test_sdk_allowedExperiments_default () {
264+ var feature_a = ExperimentalFeature (
265+ index: 0 ,
266+ enableString: 'a' ,
267+ isEnabledByDefault: false ,
268+ isExpired: false ,
269+ documentation: 'a' ,
270+ experimentalReleaseVersion: null ,
271+ releaseVersion: null ,
272+ );
273+
263274 _newSdkExperimentsFile (r'''
264275{
265276 "version": 1,
266277 "experimentSets": {
267- "nullSafety ": ["non-nullable "]
278+ "with_a ": ["a "]
268279 },
269280 "sdk": {
270281 "default": {
271- "experimentSet": "nullSafety "
282+ "experimentSet": "with_a "
272283 }
273284 }
274285}
275286''' );
276287
277- provider = FeatureSetProvider .build (
278- sourceFactory: sourceFactory,
279- resourceProvider: resourceProvider,
280- packages: findPackagesFrom (resourceProvider, getFolder ('/test' )),
281- packageDefaultFeatureSet: FeatureSet .latestLanguageVersion (),
282- nonPackageDefaultLanguageVersion: ExperimentStatus .currentVersion,
283- nonPackageDefaultFeatureSet: FeatureSet .latestLanguageVersion (),
284- );
288+ overrideKnownFeatures ({'a' : feature_a}, () {
289+ provider = FeatureSetProvider .build (
290+ sourceFactory: sourceFactory,
291+ resourceProvider: resourceProvider,
292+ packages: findPackagesFrom (resourceProvider, getFolder ('/test' )),
293+ packageDefaultFeatureSet: FeatureSet .latestLanguageVersion (),
294+ nonPackageDefaultLanguageVersion: ExperimentStatus .currentVersion,
295+ nonPackageDefaultFeatureSet: FeatureSet .latestLanguageVersion (),
296+ );
285297
286- var featureSet = _getSdkFeatureSet ('dart:math' );
287- expect (featureSet.isEnabled (Feature .non_nullable), isTrue);
298+ var core_featureSet = _getSdkFeatureSet ('dart:core' );
299+ expect (core_featureSet.isEnabled (feature_a), isTrue);
300+
301+ var math_featureSet = _getSdkFeatureSet ('dart:math' );
302+ expect (math_featureSet.isEnabled (feature_a), isTrue);
303+ });
288304 }
289305
290306 test_sdk_allowedExperiments_library () {
307+ var feature_a = ExperimentalFeature (
308+ index: 0 ,
309+ enableString: 'a' ,
310+ isEnabledByDefault: false ,
311+ isExpired: false ,
312+ documentation: 'a' ,
313+ experimentalReleaseVersion: null ,
314+ releaseVersion: null ,
315+ );
316+
291317 _newSdkExperimentsFile (r'''
292318{
293319 "version": 1,
294320 "experimentSets": {
295321 "none": [],
296- "nullSafety ": ["non-nullable "]
322+ "with_a ": ["a "]
297323 },
298324 "sdk": {
299325 "default": {
300326 "experimentSet": "none"
301327 },
302328 "libraries": {
303329 "math": {
304- "experimentSet": "nullSafety "
330+ "experimentSet": "with_a "
305331 }
306332 }
307333 }
308334}
309335''' );
310- provider = FeatureSetProvider .build (
311- sourceFactory: sourceFactory,
312- resourceProvider: resourceProvider,
313- packages: findPackagesFrom (resourceProvider, getFolder ('/test' )),
314- packageDefaultFeatureSet: FeatureSet .latestLanguageVersion (),
315- nonPackageDefaultLanguageVersion: ExperimentStatus .currentVersion,
316- nonPackageDefaultFeatureSet: FeatureSet .latestLanguageVersion (),
317- );
318336
319- var core_featureSet = _getSdkFeatureSet ('dart:core' );
320- expect (core_featureSet.isEnabled (Feature .non_nullable), isFalse);
337+ overrideKnownFeatures ({'a' : feature_a}, () {
338+ provider = FeatureSetProvider .build (
339+ sourceFactory: sourceFactory,
340+ resourceProvider: resourceProvider,
341+ packages: findPackagesFrom (resourceProvider, getFolder ('/test' )),
342+ packageDefaultFeatureSet: FeatureSet .latestLanguageVersion (),
343+ nonPackageDefaultLanguageVersion: ExperimentStatus .currentVersion,
344+ nonPackageDefaultFeatureSet: FeatureSet .latestLanguageVersion (),
345+ );
346+
347+ var core_featureSet = _getSdkFeatureSet ('dart:core' );
348+ expect (core_featureSet.isEnabled (feature_a), isFalse);
321349
322- var math_featureSet = _getSdkFeatureSet ('dart:math' );
323- expect (math_featureSet.isEnabled (Feature .non_nullable), isTrue);
350+ var math_featureSet = _getSdkFeatureSet ('dart:math' );
351+ expect (math_featureSet.isEnabled (feature_a), isTrue);
352+ });
324353 }
325354
326355 test_sdk_allowedExperiments_mockDefault () {
0 commit comments