Version 2.11.0-211.0.dev
Merge commit '5b52dfccf563824f273295a978ddd9404c16492b' into 'dev'
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index e429f2b..8e30f1f 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -1450,6 +1450,8 @@
resourceProvider: _resourceProvider,
packages: _packages,
packageDefaultFeatureSet: _analysisOptions.contextFeatures,
+ nonPackageDefaultLanguageVersion:
+ _analysisOptions.nonPackageLanguageVersion,
nonPackageDefaultFeatureSet: _analysisOptions.nonPackageFeatureSet,
);
diff --git a/pkg/analyzer/lib/src/dart/analysis/feature_set_provider.dart b/pkg/analyzer/lib/src/dart/analysis/feature_set_provider.dart
index 45de3c8..16a57bd 100644
--- a/pkg/analyzer/lib/src/dart/analysis/feature_set_provider.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/feature_set_provider.dart
@@ -23,6 +23,7 @@
final ResourceProvider _resourceProvider;
final Packages _packages;
final FeatureSet _packageDefaultFeatureSet;
+ final Version _nonPackageDefaultLanguageVersion;
final FeatureSet _nonPackageDefaultFeatureSet;
FeatureSetProvider._({
@@ -31,12 +32,14 @@
@required ResourceProvider resourceProvider,
@required Packages packages,
@required FeatureSet packageDefaultFeatureSet,
+ @required Version nonPackageDefaultLanguageVersion,
@required FeatureSet nonPackageDefaultFeatureSet,
}) : _sdkLanguageVersion = sdkLanguageVersion,
_allowedExperiments = allowedExperiments,
_resourceProvider = resourceProvider,
_packages = packages,
_packageDefaultFeatureSet = packageDefaultFeatureSet,
+ _nonPackageDefaultLanguageVersion = nonPackageDefaultLanguageVersion,
_nonPackageDefaultFeatureSet = nonPackageDefaultFeatureSet;
FeatureSet featureSetForExperiments(List<String> experiments) {
@@ -90,9 +93,10 @@
if (languageVersion != null) {
return languageVersion;
}
+ return ExperimentStatus.currentVersion;
}
- return ExperimentStatus.currentVersion;
+ return _nonPackageDefaultLanguageVersion;
}
/// Return the package corresponding to the [uri] or [path], `null` if none.
@@ -130,6 +134,7 @@
@required ResourceProvider resourceProvider,
@required Packages packages,
@required FeatureSet packageDefaultFeatureSet,
+ @required Version nonPackageDefaultLanguageVersion,
@required FeatureSet nonPackageDefaultFeatureSet,
}) {
var sdk = sourceFactory.dartSdk;
@@ -140,6 +145,7 @@
resourceProvider: resourceProvider,
packages: packages,
packageDefaultFeatureSet: packageDefaultFeatureSet,
+ nonPackageDefaultLanguageVersion: nonPackageDefaultLanguageVersion,
nonPackageDefaultFeatureSet: nonPackageDefaultFeatureSet,
);
}
diff --git a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
index 1547218..53409d0 100644
--- a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
+++ b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
@@ -15,6 +15,7 @@
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/context_root.dart';
import 'package:analyzer/src/dart/analysis/driver.dart' show ErrorEncoding;
+import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/dart/analysis/feature_set_provider.dart';
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
import 'package:analyzer/src/dart/analysis/results.dart';
@@ -393,6 +394,7 @@
resourceProvider: resourceProvider,
packages: Packages.empty,
packageDefaultFeatureSet: analysisOptions.contextFeatures,
+ nonPackageDefaultLanguageVersion: ExperimentStatus.currentVersion,
nonPackageDefaultFeatureSet: analysisOptions.nonPackageFeatureSet,
);
diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart
index 4bbf974..f1baaf4 100644
--- a/pkg/analyzer/lib/src/generated/engine.dart
+++ b/pkg/analyzer/lib/src/generated/engine.dart
@@ -287,6 +287,12 @@
ExperimentStatus _contextFeatures = ExperimentStatus();
+ /// The language version to use for libraries that are not in a package.
+ ///
+ /// If a library is in a package, this language version is *not* used,
+ /// even if the package does not specify the language version.
+ Version nonPackageLanguageVersion = ExperimentStatus.currentVersion;
+
/// The set of features to use for libraries that are not in a package.
///
/// If a library is in a package, this feature set is *not* used, even if the
diff --git a/pkg/analyzer/test/src/dart/analysis/feature_set_provider_test.dart b/pkg/analyzer/test/src/dart/analysis/feature_set_provider_test.dart
index edcdbb7..b304d11 100644
--- a/pkg/analyzer/test/src/dart/analysis/feature_set_provider_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/feature_set_provider_test.dart
@@ -83,6 +83,7 @@
resourceProvider: resourceProvider,
packages: packages,
packageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
+ nonPackageDefaultLanguageVersion: ExperimentStatus.currentVersion,
nonPackageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
);
@@ -130,6 +131,7 @@
resourceProvider: resourceProvider,
packages: packages,
packageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
+ nonPackageDefaultLanguageVersion: ExperimentStatus.currentVersion,
nonPackageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
);
@@ -177,6 +179,7 @@
resourceProvider: resourceProvider,
packages: packages,
packageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
+ nonPackageDefaultLanguageVersion: ExperimentStatus.currentVersion,
nonPackageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
);
@@ -245,6 +248,7 @@
resourceProvider: resourceProvider,
packages: packages,
packageDefaultFeatureSet: ExperimentStatus.latestWithNullSafety,
+ nonPackageDefaultLanguageVersion: ExperimentStatus.currentVersion,
nonPackageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
);
@@ -275,6 +279,7 @@
resourceProvider: resourceProvider,
packages: findPackagesFrom(resourceProvider, getFolder('/test')),
packageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
+ nonPackageDefaultLanguageVersion: ExperimentStatus.currentVersion,
nonPackageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
);
@@ -307,6 +312,7 @@
resourceProvider: resourceProvider,
packages: findPackagesFrom(resourceProvider, getFolder('/test')),
packageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
+ nonPackageDefaultLanguageVersion: ExperimentStatus.currentVersion,
nonPackageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
);
@@ -323,6 +329,7 @@
resourceProvider: resourceProvider,
packages: findPackagesFrom(resourceProvider, getFolder('/test')),
packageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
+ nonPackageDefaultLanguageVersion: ExperimentStatus.currentVersion,
nonPackageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
);
diff --git a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
index 0432c93..b2a098a 100644
--- a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart
@@ -10,6 +10,7 @@
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/context/packages.dart';
import 'package:analyzer/src/dart/analysis/byte_store.dart';
+import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/dart/analysis/feature_set_provider.dart';
import 'package:analyzer/src/dart/analysis/file_state.dart';
import 'package:analyzer/src/dart/analysis/library_graph.dart';
@@ -76,6 +77,7 @@
resourceProvider: resourceProvider,
packages: Packages.empty,
packageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
+ nonPackageDefaultLanguageVersion: ExperimentStatus.currentVersion,
nonPackageDefaultFeatureSet: FeatureSet.latestLanguageVersion(),
);
fileSystemState = FileSystemState(
diff --git a/pkg/analyzer_cli/lib/src/context_cache.dart b/pkg/analyzer_cli/lib/src/context_cache.dart
index 276ac43..6c0bb25 100644
--- a/pkg/analyzer_cli/lib/src/context_cache.dart
+++ b/pkg/analyzer_cli/lib/src/context_cache.dart
@@ -86,19 +86,21 @@
String get analysisRoot => _analysisRoot ??= _getAnalysisRoot();
void _buildContextFeatureSet(AnalysisOptionsImpl analysisOptions) {
- var sdkLanguageVersion = ExperimentStatus.currentVersion;
- if (clOptions.defaultLanguageVersion != null) {
- sdkLanguageVersion = Version.parse(
- clOptions.defaultLanguageVersion + '.0',
- );
- }
-
var featureSet = FeatureSet.fromEnableFlags2(
- sdkLanguageVersion: sdkLanguageVersion,
+ sdkLanguageVersion: ExperimentStatus.currentVersion,
flags: clOptions.enabledExperiments,
);
analysisOptions.contextFeatures = featureSet;
+
+ if (clOptions.defaultLanguageVersion != null) {
+ var nonPackageLanguageVersion = Version.parse(
+ clOptions.defaultLanguageVersion + '.0',
+ );
+ analysisOptions.nonPackageLanguageVersion = nonPackageLanguageVersion;
+ analysisOptions.nonPackageFeatureSet = FeatureSet.latestLanguageVersion()
+ .restrictToVersion(nonPackageLanguageVersion);
+ }
}
/// The actual calculation to get the [AnalysisOptionsImpl], with no caching.
diff --git a/tools/VERSION b/tools/VERSION
index 538e518..6e5de11 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 11
PATCH 0
-PRERELEASE 210
+PRERELEASE 211
PRERELEASE_PATCH 0
\ No newline at end of file