Skip to content

Commit 1c3d472

Browse files
authored
Stop using deprecated analyzer API. (#4248)
1 parent 6368c5a commit 1c3d472

File tree

2 files changed

+32
-37
lines changed

2 files changed

+32
-37
lines changed

analysis_options.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ analyzer:
88
# TODO(davidmorgan): update code for this lint.
99
discarded_futures: ignore
1010
exclude:
11-
# Prevents extra work during some e2e test runs.
12-
- "dart2js_test/**"
13-
# Common top level directories containing generated files in any package.
1411
- ".dart_tool/**"
12+
- "build_runner/test/fixtures/**"
1513

1614
linter:
1715
rules:

build_runner/lib/src/build/resolver/resolver.dart

Lines changed: 31 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: deprecated_member_use until analyzer 7 support is dropped.
6-
75
import 'dart:async';
86
import 'dart:collection';
97
import 'dart:isolate';
108

119
import 'package:analyzer/dart/analysis/features.dart';
1210
import 'package:analyzer/dart/analysis/results.dart';
1311
import 'package:analyzer/dart/ast/ast.dart';
14-
import 'package:analyzer/dart/element/element2.dart';
12+
import 'package:analyzer/dart/element/element.dart';
1513
import 'package:analyzer/diagnostic/diagnostic.dart';
1614
import 'package:analyzer/error/error.dart';
1715
// ignore: implementation_imports
@@ -49,11 +47,11 @@ class PerActionResolver implements ReleasableResolver {
4947
this._step,
5048
);
5149

52-
Stream<LibraryElement2> get _librariesFromEntrypoints async* {
50+
Stream<LibraryElement> get _librariesFromEntrypoints async* {
5351
await _resolveIfNecessary(_step.inputId, transitive: true);
5452

55-
final seen = <LibraryElement2>{};
56-
final toVisit = Queue<LibraryElement2>();
53+
final seen = <LibraryElement>{};
54+
final toVisit = Queue<LibraryElement>();
5755

5856
// keep a copy of entry points in case [_resolveIfNecessary] is called
5957
// before this stream is done.
@@ -74,11 +72,11 @@ class PerActionResolver implements ReleasableResolver {
7472
// model manually.
7573
yield current;
7674
final toCrawl =
77-
current.firstFragment.libraryImports2
78-
.map((import) => import.importedLibrary2)
75+
current.firstFragment.libraryImports
76+
.map((import) => import.importedLibrary)
7977
.followedBy(
80-
current.firstFragment.libraryExports2.map(
81-
(export) => export.exportedLibrary2,
78+
current.firstFragment.libraryExports.map(
79+
(export) => export.exportedLibrary,
8280
),
8381
)
8482
.nonNulls
@@ -90,16 +88,16 @@ class PerActionResolver implements ReleasableResolver {
9088
}
9189

9290
@override
93-
Stream<LibraryElement2> get libraries async* {
91+
Stream<LibraryElement> get libraries async* {
9492
yield* _delegate.sdkLibraries;
9593
yield* _librariesFromEntrypoints.where((library) => !library.isInSdk);
9694
}
9795

9896
@override
99-
Future<LibraryElement2?> findLibraryByName(String libraryName) =>
97+
Future<LibraryElement?> findLibraryByName(String libraryName) =>
10098
_step.trackStage('findLibraryByName $libraryName', () async {
10199
await for (final library in libraries) {
102-
if (library.name3 == libraryName) return library;
100+
if (library.name == libraryName) return library;
103101
}
104102
return null;
105103
});
@@ -135,7 +133,7 @@ class PerActionResolver implements ReleasableResolver {
135133
});
136134

137135
@override
138-
Future<LibraryElement2> libraryFor(
136+
Future<LibraryElement> libraryFor(
139137
AssetId assetId, {
140138
bool allowSyntaxErrors = false,
141139
}) => _step.trackStage('libraryFor $assetId', () async {
@@ -189,7 +187,7 @@ class PerActionResolver implements ReleasableResolver {
189187
}
190188

191189
@override
192-
Future<AssetId> assetIdForElement(Element2 element) =>
190+
Future<AssetId> assetIdForElement(Element element) =>
193191
_delegate.assetIdForElement(element);
194192
}
195193

@@ -199,7 +197,7 @@ class AnalyzerResolver implements ReleasableResolver {
199197
final AnalyzeActivityPool _driverPool;
200198
final SharedResourcePool _readAndWritePool;
201199

202-
Future<List<LibraryElement2>>? _sdkLibraries;
200+
Future<List<LibraryElement>>? _sdkLibraries;
203201

204202
AnalyzerResolver(
205203
this._driver,
@@ -269,15 +267,15 @@ class AnalyzerResolver implements ReleasableResolver {
269267
final parsedResult =
270268
_driver.currentSession.getParsedUnit(path) as ParsedUnitResult;
271269
if (!allowSyntaxErrors &&
272-
parsedResult.errors.any((e) => e.severity == Severity.error)) {
270+
parsedResult.diagnostics.any((e) => e.severity == Severity.error)) {
273271
throw SyntaxErrorInAssetException(assetId, [parsedResult]);
274272
}
275273
return parsedResult.unit;
276274
});
277275
}
278276

279277
@override
280-
Future<LibraryElement2> libraryFor(
278+
Future<LibraryElement> libraryFor(
281279
AssetId assetId, {
282280
bool allowSyntaxErrors = false,
283281
}) async {
@@ -302,21 +300,19 @@ class AnalyzerResolver implements ReleasableResolver {
302300
);
303301

304302
if (!allowSyntaxErrors) {
305-
final errors = await _syntacticErrorsFor(library.element2);
303+
final errors = await _syntacticErrorsFor(library.element);
306304
if (errors.isNotEmpty) {
307305
throw SyntaxErrorInAssetException(assetId, errors);
308306
}
309307
}
310308

311-
return library.element2;
309+
return library.element;
312310
}
313311

314312
/// Finds syntax errors in files related to the [element].
315313
///
316314
/// This includes the main library and existing part files.
317-
Future<List<ErrorsResult>> _syntacticErrorsFor(
318-
LibraryElement2 element,
319-
) async {
315+
Future<List<ErrorsResult>> _syntacticErrorsFor(LibraryElement element) async {
320316
final existingSources = <Source>[];
321317

322318
for (final fragment in element.fragments) {
@@ -335,8 +331,9 @@ class AnalyzerResolver implements ReleasableResolver {
335331
for (final path in paths) {
336332
final result = await _driver.currentSession.getErrors(path);
337333
if (result is ErrorsResult &&
338-
result.errors.any(
339-
(error) => error.errorCode.type == ErrorType.SYNTACTIC_ERROR,
334+
result.diagnostics.any(
335+
(error) =>
336+
error.diagnosticCode.type == DiagnosticType.SYNTACTIC_ERROR,
340337
)) {
341338
relevantResults.add(result);
342339
}
@@ -351,13 +348,13 @@ class AnalyzerResolver implements ReleasableResolver {
351348
void release() {}
352349

353350
@override
354-
Stream<LibraryElement2> get libraries {
351+
Stream<LibraryElement> get libraries {
355352
// We don't know what libraries to expose without leaking libraries written
356353
// by later phases.
357354
throw UnimplementedError();
358355
}
359356

360-
Stream<LibraryElement2> get sdkLibraries {
357+
Stream<LibraryElement> get sdkLibraries {
361358
final loadLibraries =
362359
_sdkLibraries ??= Future.sync(() {
363360
final publicSdkUris = _driver.sdkLibraryUris.where(
@@ -370,7 +367,7 @@ class AnalyzerResolver implements ReleasableResolver {
370367
final result =
371368
await _driver.currentSession.getLibraryByUri(uri.toString())
372369
as LibraryElementResult;
373-
return result.element2;
370+
return result.element;
374371
});
375372
}),
376373
);
@@ -380,28 +377,28 @@ class AnalyzerResolver implements ReleasableResolver {
380377
}
381378

382379
@override
383-
Future<LibraryElement2> findLibraryByName(String libraryName) {
380+
Future<LibraryElement> findLibraryByName(String libraryName) {
384381
// We don't know what libraries to expose without leaking libraries written
385382
// by later phases.
386383
throw UnimplementedError();
387384
}
388385

389386
@override
390-
Future<AssetId> assetIdForElement(Element2 element) async {
391-
if (element is MultiplyDefinedElement2) {
392-
throw UnresolvableAssetException('${element.name3} is ambiguous');
387+
Future<AssetId> assetIdForElement(Element element) async {
388+
if (element is MultiplyDefinedElement) {
389+
throw UnresolvableAssetException('${element.name} is ambiguous');
393390
}
394391

395392
final source = element.firstFragment.libraryFragment?.source;
396393
if (source == null) {
397394
throw UnresolvableAssetException(
398-
'${element.name3} does not have a source',
395+
'${element.name} does not have a source',
399396
);
400397
}
401398

402399
final uri = source.uri;
403400
if (!uri.isScheme('package') && !uri.isScheme('asset')) {
404-
throw UnresolvableAssetException('${element.name3} in ${source.uri}');
401+
throw UnresolvableAssetException('${element.name} in ${source.uri}');
405402
}
406403
return AssetId.resolve(source.uri);
407404
}

0 commit comments

Comments
 (0)