Version 2.11.0-256.0.dev
Merge commit '48f3b781cec1406025c6399261cfe74c8ea13209' into 'dev'
diff --git a/pkg/analyzer/lib/src/test_utilities/package_config_file_builder.dart b/pkg/analyzer/lib/src/test_utilities/package_config_file_builder.dart
new file mode 100644
index 0000000..4f19b2e
--- /dev/null
+++ b/pkg/analyzer/lib/src/test_utilities/package_config_file_builder.dart
@@ -0,0 +1,103 @@
+// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:meta/meta.dart';
+
+/// Helper for building `.dart_tool/package_config.json` files.
+///
+/// See accepted/future-releases/language-versioning/package-config-file-v2.md
+/// in https://github.com/dart-lang/language/
+class PackageConfigFileBuilder {
+ final List<_PackageDescription> _packages = [];
+
+ /// The [rootPath] will be given to `toUriStr` of [toContent] to produce
+ /// the corresponding `file://` URI, normally a POSIX path.
+ ///
+ /// The [packageUri] is optional, a URI reference, resolved against the
+ /// file URI of the [rootPath]. The result must be inside the [rootPath].
+ void add({
+ @required String name,
+ @required String rootPath,
+ String packageUri = 'lib/',
+ String languageVersion,
+ }) {
+ if (_packages.any((e) => e.name == name)) {
+ throw StateError('Already added: $name');
+ }
+ _packages.add(
+ _PackageDescription(
+ name: name,
+ rootPath: rootPath,
+ packageUri: packageUri,
+ languageVersion: languageVersion,
+ ),
+ );
+ }
+
+ PackageConfigFileBuilder copy() {
+ var copy = PackageConfigFileBuilder();
+ copy._packages.addAll(_packages);
+ return copy;
+ }
+
+ String toContent({
+ @required String Function(String) toUriStr,
+ }) {
+ var buffer = StringBuffer();
+
+ buffer.writeln('{');
+
+ var prefix = ' ' * 2;
+ buffer.writeln('$prefix"configVersion": 2,');
+ buffer.writeln('$prefix"packages": [');
+
+ for (var i = 0; i < _packages.length; i++) {
+ var package = _packages[i];
+
+ var prefix = ' ' * 4;
+ buffer.writeln('$prefix{');
+
+ prefix = ' ' * 6;
+ buffer.writeln('$prefix"name": "${package.name}",');
+
+ var rootUri = toUriStr(package.rootPath);
+ buffer.write('$prefix"rootUri": "$rootUri"');
+
+ if (package.packageUri != null) {
+ buffer.writeln(',');
+ buffer.write('$prefix"packageUri": "${package.packageUri}"');
+ }
+
+ if (package.languageVersion != null) {
+ buffer.writeln(',');
+ buffer.write('$prefix"languageVersion": "${package.languageVersion}"');
+ }
+
+ buffer.writeln();
+
+ prefix = ' ' * 4;
+ buffer.write(prefix);
+ buffer.writeln(i < _packages.length - 1 ? '},' : '}');
+ }
+
+ buffer.writeln(' ]');
+ buffer.writeln('}');
+
+ return buffer.toString();
+ }
+}
+
+class _PackageDescription {
+ final String name;
+ final String rootPath;
+ final String packageUri;
+ final String languageVersion;
+
+ _PackageDescription({
+ @required this.name,
+ @required this.rootPath,
+ @required this.packageUri,
+ @required this.languageVersion,
+ });
+}
diff --git a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
index 6f7ba44..16d21b17 100644
--- a/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/context_collection_resolution.dart
@@ -15,6 +15,7 @@
import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl;
import 'package:analyzer/src/test_utilities/mock_packages.dart';
import 'package:analyzer/src/test_utilities/mock_sdk.dart';
+import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
import 'package:analyzer/src/workspace/basic.dart';
import 'package:analyzer/src/workspace/bazel.dart';
@@ -28,6 +29,8 @@
import 'context_collection_resolution_caching.dart';
import 'resolution.dart';
+export 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
+
class AnalysisOptionsFileConfig {
final List<String> experiments;
final bool implicitCasts;
@@ -248,79 +251,6 @@
}
}
-class PackageConfigFileBuilder {
- final List<_PackageDescription> _packages = [];
-
- void add({
- @required String name,
- @required String rootPath,
- String packageUri = 'lib/',
- String languageVersion,
- }) {
- if (_packages.any((e) => e.name == name)) {
- throw StateError('Already added: $name');
- }
- _packages.add(
- _PackageDescription(
- name: name,
- rootPath: rootPath,
- packageUri: packageUri,
- languageVersion: languageVersion,
- ),
- );
- }
-
- String toContent(String Function(String) toUriStr) {
- var buffer = StringBuffer();
-
- buffer.writeln('{');
-
- var prefix = ' ' * 2;
- buffer.writeln('$prefix"configVersion": 2,');
- buffer.writeln('$prefix"packages": [');
-
- for (var i = 0; i < _packages.length; i++) {
- var package = _packages[i];
-
- var prefix = ' ' * 4;
- buffer.writeln('$prefix{');
-
- prefix = ' ' * 6;
- buffer.writeln('$prefix"name": "${package.name}",');
-
- var rootUri = toUriStr(package.rootPath);
- buffer.write('$prefix"rootUri": "$rootUri"');
-
- if (package.packageUri != null) {
- buffer.writeln(',');
- buffer.write('$prefix"packageUri": "${package.packageUri}"');
- }
-
- if (package.languageVersion != null) {
- buffer.writeln(',');
- buffer.write('$prefix"languageVersion": "${package.languageVersion}"');
- }
-
- buffer.writeln();
-
- prefix = ' ' * 4;
- buffer.write(prefix);
- buffer.writeln(i < _packages.length - 1 ? '},' : '}');
- }
-
- buffer.writeln(' ]');
- buffer.writeln('}');
-
- return buffer.toString();
- }
-
- PackageConfigFileBuilder _copy() {
- var copy = PackageConfigFileBuilder();
- copy._packages.addAll(_packages);
- return copy;
- }
-}
-
class PubPackageResolutionTest extends ContextResolutionTest {
AnalysisOptionsImpl get analysisOptions {
var path = convertPath(testPackageRootPath);
@@ -351,7 +281,12 @@
}
void writePackageConfig(String path, PackageConfigFileBuilder config) {
- newFile(path, content: config.toContent(toUriStr));
+ newFile(
+ path,
+ content: config.toContent(
+ toUriStr: toUriStr,
+ ),
+ );
}
void writeTestPackageAnalysisOptionsFile(AnalysisOptionsFileConfig config) {
@@ -367,7 +302,7 @@
bool js = false,
bool meta = false,
}) {
- config = config._copy();
+ config = config.copy();
config.add(
name: 'test',
@@ -446,17 +381,3 @@
);
}
}
-
-class _PackageDescription {
- final String name;
- final String rootPath;
- final String packageUri;
- final String languageVersion;
-
- _PackageDescription({
- @required this.name,
- @required this.rootPath,
- @required this.packageUri,
- @required this.languageVersion,
- });
-}
diff --git a/tools/VERSION b/tools/VERSION
index 5ab24c7..7845415 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 11
PATCH 0
-PRERELEASE 255
+PRERELEASE 256
PRERELEASE_PATCH 0
\ No newline at end of file