Require analyzer 2.7.0, use AnalysisContextCollection, switch from deprecated APIs. (#3183)
diff --git a/lib/src/dart.dart b/lib/src/dart.dart
index e498058..97219dc 100644
--- a/lib/src/dart.dart
+++ b/lib/src/dart.dart
@@ -7,8 +7,7 @@
import 'dart:io';
import 'package:analyzer/dart/analysis/analysis_context.dart';
-import 'package:analyzer/dart/analysis/context_builder.dart';
-import 'package:analyzer/dart/analysis/context_locator.dart';
+import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/analysis/session.dart';
import 'package:analyzer/dart/ast/ast.dart';
@@ -67,21 +66,22 @@
modificationStamp: 0,
);
+ var contextCollection = AnalysisContextCollection(
+ includedPaths: [path],
+ resourceProvider: resourceProvider,
+ sdkPath: getSdkPath(),
+ );
+
// Add new contexts for the given path.
- var contextLocator = ContextLocator(resourceProvider: resourceProvider);
- var roots = contextLocator.locateRoots(includedPaths: [path]);
- for (var root in roots) {
- var contextRootPath = root.root.path;
+ for (var analysisContext in contextCollection.contexts) {
+ var contextRootPath = analysisContext.contextRoot.root.path;
// If there is already a context for this context root path, keep it.
if (_contexts.containsKey(contextRootPath)) {
continue;
}
- var contextBuilder = ContextBuilder();
- var context = contextBuilder.createContext(
- contextRoot: root, sdkPath: getSdkPath());
- _contexts[contextRootPath] = context;
+ _contexts[contextRootPath] = analysisContext;
}
}
@@ -94,7 +94,7 @@
/// Throws [AnalyzerErrorGroup] is the file has parsing errors.
CompilationUnit parse(String path) {
path = p.normalize(p.absolute(path));
- var parseResult = _getExistingSession(path).getParsedUnit2(path);
+ var parseResult = _getExistingSession(path).getParsedUnit(path);
if (parseResult is ParsedUnitResult) {
if (parseResult.errors.isNotEmpty) {
throw AnalyzerErrorGroup(parseResult.errors);
diff --git a/lib/src/null_safety_analysis.dart b/lib/src/null_safety_analysis.dart
index 93c8993..2ad034d 100644
--- a/lib/src/null_safety_analysis.dart
+++ b/lib/src/null_safety_analysis.dart
@@ -4,9 +4,9 @@
import 'dart:async';
-import 'package:analyzer/dart/analysis/context_builder.dart';
-import 'package:analyzer/dart/analysis/context_locator.dart';
+import 'package:analyzer/dart/analysis/analysis_context_collection.dart';
import 'package:analyzer/dart/analysis/results.dart';
+import 'package:analyzer/file_system/physical_file_system.dart';
import 'package:cli_util/cli_util.dart';
import 'package:path/path.dart' as path;
import 'package:source_span/source_span.dart';
@@ -175,14 +175,13 @@
final libDir =
path.absolute(path.normalize(path.join(packageDir, 'lib')));
if (dirExists(libDir)) {
- final analysisSession = ContextBuilder()
- .createContext(
- sdkPath: getSdkPath(),
- contextRoot: ContextLocator().locateRoots(
- includedPaths: [path.normalize(packageDir)],
- ).first,
- )
- .currentSession;
+ var contextCollection = AnalysisContextCollection(
+ includedPaths: [path.normalize(packageDir)],
+ resourceProvider: PhysicalResourceProvider.INSTANCE,
+ sdkPath: getSdkPath(),
+ );
+ var analysisContext = contextCollection.contexts.first;
+ var analysisSession = analysisContext.currentSession;
for (final file in listDir(libDir,
recursive: true, includeDirs: false, includeHidden: true)) {
@@ -190,7 +189,7 @@
final fileUrl =
'package:${dependencyId.name}/${path.relative(file, from: libDir)}';
final someUnitResult =
- analysisSession.getParsedUnit2(path.normalize(file));
+ analysisSession.getParsedUnit(path.normalize(file));
ParsedUnitResult unitResult;
if (someUnitResult is ParsedUnitResult) {
unitResult = someUnitResult;
diff --git a/pubspec.yaml b/pubspec.yaml
index 3bfe095..8c76708 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -6,7 +6,7 @@
dependencies:
# Note: Pub's test infrastructure assumes that any dependencies used in tests
# will be hosted dependencies.
- analyzer: ^1.5.0
+ analyzer: ^2.7.0
args: ^2.1.0
async: ^2.6.1
cli_util: ^0.3.5