Skip to content

Commit 77f2019

Browse files
scheglovcommit-bot@chromium.org
authored andcommitted
Use the current SDK language version by default.
Change-Id: I317ad3858b0f023cdf2fd02a1a28a9c22742b74c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/169960 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Samuel Rawlins <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent 7dcb9bb commit 77f2019

File tree

4 files changed

+59
-32
lines changed

4 files changed

+59
-32
lines changed

pkg/analyzer/lib/dart/sdk/build_sdk_summary.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import 'package:analyzer/dart/ast/ast.dart';
1212
import 'package:analyzer/dart/element/element.dart';
1313
import 'package:analyzer/file_system/file_system.dart';
1414
import 'package:analyzer/src/context/context.dart';
15-
import 'package:analyzer/src/dart/analysis/experiments.dart';
1615
import 'package:analyzer/src/dart/analysis/session.dart';
1716
import 'package:analyzer/src/dart/ast/ast.dart';
1817
import 'package:analyzer/src/dart/sdk/sdk.dart';
@@ -217,7 +216,7 @@ class _Builder {
217216

218217
var unit = result.unit as CompilationUnitImpl;
219218
unit.languageVersion = LibraryLanguageVersion(
220-
package: ExperimentStatus.currentVersion,
219+
package: languageVersion,
221220
override: null,
222221
);
223222

pkg/analyzer/lib/src/dart/analysis/feature_set_provider.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'package:_fe_analyzer_shared/src/sdk/allowed_experiments.dart';
66
import 'package:analyzer/dart/analysis/features.dart';
77
import 'package:analyzer/file_system/file_system.dart';
88
import 'package:analyzer/src/context/packages.dart';
9-
import 'package:analyzer/src/dart/analysis/experiments.dart';
109
import 'package:analyzer/src/generated/sdk.dart';
1110
import 'package:analyzer/src/generated/source.dart';
1211
import 'package:analyzer/src/util/uri.dart';
@@ -85,15 +84,15 @@ class FeatureSetProvider {
8584
/// be either lower, or higher than the package language version.
8685
Version getLanguageVersion(String path, Uri uri) {
8786
if (uri.isScheme('dart')) {
88-
return ExperimentStatus.currentVersion;
87+
return _sdkLanguageVersion;
8988
}
9089
var package = _findPackage(uri, path);
9190
if (package != null) {
9291
var languageVersion = package.languageVersion;
9392
if (languageVersion != null) {
9493
return languageVersion;
9594
}
96-
return ExperimentStatus.currentVersion;
95+
return _sdkLanguageVersion;
9796
}
9897

9998
return _nonPackageDefaultLanguageVersion;

pkg/analyzer/lib/src/test_utilities/mock_sdk.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1103,7 +1103,7 @@ class MockSdk implements DartSdk {
11031103
_versionFile = resourceProvider
11041104
.getFolder(resourceProvider.convertPath(sdkRoot))
11051105
.getChildAssumingFile('version');
1106-
_versionFile.writeAsStringSync('2.10.0');
1106+
_versionFile.writeAsStringSync('2.12.0');
11071107

11081108
for (MockSdkLibrary library in _LIBRARIES) {
11091109
var convertedLibrary = library._toProvider(resourceProvider);

pkg/analyzer/test/src/dart/analysis/feature_set_provider_test.dart

Lines changed: 55 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'package:analyzer/file_system/file_system.dart';
77
import 'package:analyzer/src/context/packages.dart';
88
import 'package:analyzer/src/context/source.dart';
99
import 'package:analyzer/src/dart/analysis/experiments.dart';
10+
import 'package:analyzer/src/dart/analysis/experiments_impl.dart';
1011
import 'package:analyzer/src/dart/analysis/feature_set_provider.dart';
1112
import 'package:analyzer/src/generated/source.dart';
1213
import '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

Comments
 (0)