Skip to content

Commit d1055ff

Browse files
authored
Handle analyzer 8.0 (#4276)
1 parent d3156d6 commit d1055ff

64 files changed

Lines changed: 349 additions & 306 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/internal_lint/lib/src/lints/avoid_sub_read.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ class AvoidSubRead extends DartLintRule {
1212
static const _code = LintCode(
1313
name: 'avoid_sub_read',
1414
problemMessage: 'Do not use `sub.read()` within Riverpod packages.',
15-
errorSeverity: ErrorSeverity.ERROR,
15+
errorSeverity: DiagnosticSeverity.ERROR,
1616
);
1717

1818
@override
1919
void run(
2020
CustomLintResolver resolver,
21-
ErrorReporter reporter,
21+
DiagnosticReporter reporter,
2222
CustomLintContext context,
2323
) {
2424
const ignoredFolderPaths = {

packages/internal_lint/lib/src/lints/generic_name.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class GenericName extends DartLintRule {
1515
@override
1616
void run(
1717
CustomLintResolver resolver,
18-
ErrorReporter reporter,
18+
DiagnosticReporter reporter,
1919
CustomLintContext context,
2020
) {
2121
context.registry.addTypeParameter((node) {

packages/internal_lint/lib/src/lints/show_all.dart

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:analyzer/dart/ast/ast.dart';
2-
import 'package:analyzer/dart/element/element2.dart';
2+
import 'package:analyzer/dart/element/element.dart';
3+
import 'package:analyzer/diagnostic/diagnostic.dart';
34
import 'package:analyzer/error/error.dart' hide LintCode;
45
import 'package:analyzer/error/listener.dart';
56
import 'package:analyzer/source/source_range.dart';
@@ -15,21 +16,21 @@ class ShowAll extends DartLintRule {
1516
static const _code = LintCode(
1617
name: 'show_all_public_api',
1718
problemMessage: '{0}',
18-
errorSeverity: ErrorSeverity.ERROR,
19+
errorSeverity: DiagnosticSeverity.ERROR,
1920
);
2021

2122
@override
2223
void run(
2324
CustomLintResolver resolver,
24-
ErrorReporter reporter,
25+
DiagnosticReporter reporter,
2526
CustomLintContext context,
2627
) {
2728
context.registry.addExportDirective((export) {
28-
final uri = export.libraryExport?.exportedLibrary2?.uri;
29+
final uri = export.libraryExport?.exportedLibrary?.uri;
2930
if (uri == null || uri.scheme != 'package') return;
3031
if (uri.pathSegments.elementAtOrNull(1) == 'src') return;
3132

32-
final exportedLibrary = export.libraryExport?.exportedLibrary2;
33+
final exportedLibrary = export.libraryExport?.exportedLibrary;
3334
if (exportedLibrary == null) return;
3435

3536
final meta = _computeExportDiff(export);
@@ -65,35 +66,33 @@ class ShowAll extends DartLintRule {
6566
List<Fix> getFixes() => [_ShowAllFix()];
6667
}
6768

68-
extension on LibraryElement2 {
69-
Set<Element2> get exportedElements {
69+
extension on LibraryElement {
70+
Set<Element> get exportedElements {
7071
return exportNamespace.definedNames2.values
71-
.map((e) => e.nonSynthetic2)
72+
.map((e) => e.nonSynthetic)
7273
.toSet();
7374
}
7475
}
7576

7677
({
77-
Iterable<Element2> missing,
78+
Iterable<Element> missing,
7879
Iterable<SimpleIdentifier> extra,
79-
List<Element2> toExport,
80+
List<Element> toExport,
8081
})?
8182
_computeExportDiff(ExportDirective export) {
82-
final exportedLibrary = export.libraryExport!.exportedLibrary2;
83+
final exportedLibrary = export.libraryExport!.exportedLibrary;
8384
final exportedPackageName = exportedLibrary?.packageName;
8485
if (exportedPackageName == null) {
8586
return null;
8687
}
8788

8889
final exportedIdentifiers = exportedLibrary!.exportedElements
8990
.where((e) {
90-
final annotatable = e as Annotatable;
91-
92-
var targets = _Public.of(annotatable);
93-
if (targets.isEmpty && annotatable.metadata2.hasInternal) return false;
91+
var targets = _Public.of(e);
92+
if (targets.isEmpty && e.metadata.hasInternal) return false;
9493

9594
if (targets.isEmpty) {
96-
targets = _Public.of(e.library2!);
95+
targets = _Public.of(e.library!);
9796
}
9897

9998
if (targets.isEmpty) {
@@ -113,12 +112,11 @@ _computeExportDiff(ExportDirective export) {
113112
final show = export.combinators.whereType<ShowCombinator>().firstOrNull;
114113

115114
final missing = exportedIdentifiers.where(
116-
(e) =>
117-
show == null || !show.shownNames.map((e) => e.name).contains(e.name3),
115+
(e) => show == null || !show.shownNames.map((e) => e.name).contains(e.name),
118116
);
119117

120118
final extra = show?.shownNames.where(
121-
(e) => !exportedIdentifiers.map((e) => e.name3).contains(e.name),
119+
(e) => !exportedIdentifiers.map((e) => e.name).contains(e.name),
122120
);
123121

124122
return (
@@ -134,8 +132,8 @@ class _ShowAllFix extends DartFix {
134132
CustomLintResolver resolver,
135133
ChangeReporter reporter,
136134
CustomLintContext context,
137-
AnalysisError analysisError,
138-
List<AnalysisError> others,
135+
Diagnostic analysisError,
136+
List<Diagnostic> others,
139137
) {
140138
context.registry.addExportDirective((export) {
141139
if (!export.sourceRange.intersects(analysisError.sourceRange)) return;
@@ -157,7 +155,7 @@ class _ShowAllFix extends DartFix {
157155
if (show == null) {
158156
builder.addInsertion(export.semicolon.offset, (builder) {
159157
builder.write('show ');
160-
final allExported = toExport.map((e) => e.name3).join(', ');
158+
final allExported = toExport.map((e) => e.name).join(', ');
161159
builder.write(allExported);
162160
});
163161
return;
@@ -177,7 +175,7 @@ class _ShowAllFix extends DartFix {
177175
if (missing.isNotEmpty) {
178176
builder.addInsertion(export.semicolon.offset, (builder) {
179177
builder.write(', ');
180-
final unexportedElements = missing.map((e) => e.name3).join(', ');
178+
final unexportedElements = missing.map((e) => e.name).join(', ');
181179
builder.write(unexportedElements);
182180
});
183181
}
@@ -272,9 +270,10 @@ class _Public {
272270
static const type = TypeChecker.fromName('Public', packageName: 'riverpod');
273271
static const allOf = TypeChecker.fromName('AllOf', packageName: 'riverpod');
274272

275-
static List<_Public> of(Annotatable element) {
273+
static List<_Public> of(Element element) {
276274
final annotations = type.annotationsOfExact(
277-
element,
275+
// ignore: deprecated_member_use
276+
element as Annotatable,
278277
throwOnUnresolved: false,
279278
);
280279

@@ -285,7 +284,8 @@ class _Public {
285284
packageName: annotation.getField('packageName')?.toStringValue(),
286285
),
287286
for (final allOf in allOf.annotationsOfExact(
288-
element,
287+
// ignore: deprecated_member_use
288+
element as Annotatable,
289289
throwOnUnresolved: false,
290290
))
291291
for (final public in allOf.getField('public')!.toListValue()!)
@@ -300,9 +300,9 @@ class _Public {
300300
final String? packageName;
301301

302302
bool hasMatch(LibraryExport e) {
303-
final uri = e.exportedLibrary2!.uri;
303+
final uri = e.exportedLibrary!.uri;
304304

305-
if (packageName != null && packageName != e.exportedLibrary2!.packageName) {
305+
if (packageName != null && packageName != e.exportedLibrary!.packageName) {
306306
return false;
307307
}
308308

@@ -313,8 +313,8 @@ class _Public {
313313
@override
314314
String toString() => 'Public(library: $library, packageName: $packageName)';
315315

316-
static List<_Public> defaultOf(ExportDirective export, Element2 element) {
317-
final definingPackageName = element.library2!.packageName;
316+
static List<_Public> defaultOf(ExportDirective export, Element element) {
317+
final definingPackageName = element.library!.packageName;
318318
if (definingPackageName == 'riverpod' ||
319319
definingPackageName == 'flutter_riverpod' ||
320320
definingPackageName == 'hooks_riverpod') {
@@ -326,7 +326,7 @@ class _Public {
326326
}
327327

328328
if (definingPackageName == 'state_notifier' &&
329-
element.name3 == 'StateNotifier') {
329+
element.name == 'StateNotifier') {
330330
return [
331331
_Public(library: 'legacy', packageName: 'riverpod'),
332332
_Public(library: 'legacy', packageName: 'flutter_riverpod'),
@@ -335,15 +335,15 @@ class _Public {
335335
}
336336

337337
final exportedPackageName =
338-
export.libraryExport!.exportedLibrary2!.packageName;
338+
export.libraryExport!.exportedLibrary!.packageName;
339339
return [
340340
if (exportedPackageName != null)
341341
_Public(library: exportedPackageName, packageName: exportedPackageName),
342342
];
343343
}
344344
}
345345

346-
extension on LibraryElement2 {
346+
extension on LibraryElement {
347347
String? get packageName {
348348
if (uri.scheme != 'package') return null;
349349

packages/internal_lint/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ environment:
77
resolution: workspace
88

99
dependencies:
10-
analyzer: ^7.0.0
10+
analyzer: ^8.0.0
1111
analyzer_plugin: ^0.13.0
1212
custom_lint_builder: ^0.8.0
1313
meta: ^1.15.0

packages/lint_visitor_generator/lib/builder.dart

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class _LintVisitorGenerator extends Generator {
1919
@override
2020
String generate(LibraryReader library, BuildStep buildStep) {
2121
final buffer = StringBuffer();
22-
if (library.element.name3 == 'nodes') {
22+
if (library.element.name == 'nodes') {
2323
_writeRiverpodAstVisitor(library, buffer);
2424
}
2525

@@ -32,18 +32,16 @@ class _LintVisitorGenerator extends Generator {
3232

3333
void _writeRiverpodAstVisitor(LibraryReader library, StringBuffer buffer) {
3434
final allAst = library.element.extensions
35-
.where(
36-
(e) => e.metadata2.annotations.firstOrNull?.toSource() == '@_ast',
37-
)
35+
.where((e) => e.metadata.annotations.firstOrNull?.toSource() == '@_ast')
3836
.expand((extension) {
3937
final constraint = extension.extendedType;
4038

41-
return extension.getters2
39+
return extension.getters
4240
.map(
4341
(e) => (
44-
constraint: constraint.element3!.name3!,
45-
type: e.returnType.element3!.name3!,
46-
name: e.name3!,
42+
constraint: constraint.element!.name!,
43+
type: e.returnType.element!.name!,
44+
name: e.name!,
4745
),
4846
)
4947
.where((e) => !e.name.startsWith('_cache'));

packages/lint_visitor_generator/pubspec.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ environment:
77
resolution: workspace
88

99
dependencies:
10-
analyzer: ^7.0.0
11-
build: ^3.0.0
10+
analyzer: ^8.0.0
11+
build: ^4.0.0
1212
build_config: ^1.1.0
1313
collection: ^1.17.1
1414
meta: ^1.15.0
1515
path: ^1.9.0
16-
source_gen: ^3.0.0
16+
source_gen: ^4.0.0
1717
source_span: ^1.10.0
1818

1919
dev_dependencies:

packages/riverpod/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ dependencies:
2828
test: ^1.0.0
2929

3030
dev_dependencies:
31-
analyzer: ^7.0.0
31+
analyzer: ^8.0.0
3232
expect_error: ^1.0.0
3333
mockito: ^5.0.0
3434
path: ^1.9.0

0 commit comments

Comments
 (0)