Skip to content

Commit 6c9702e

Browse files
authored
Migrate to analyzer Element2 APIs (#763)
1 parent 010eea6 commit 6c9702e

29 files changed

+412
-298
lines changed

analysis_options.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ analyzer:
55
strict-casts: true
66
strict-inference: true
77
strict-raw-types: true
8-
errors:
9-
# analyzer deprecations
10-
deprecated_member_use: ignore
118

129
linter:
1310
rules:

example/lib/src/member_count_library_generator.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class MemberCountLibraryGenerator extends Generator {
1313
final topLevelVarCount = topLevelNumVariables(library).length;
1414

1515
return '''
16-
// Source library: ${library.element.source.uri}
16+
// Source library: ${library.element.uri}
1717
const topLevelNumVarCount = $topLevelVarCount;
1818
''';
1919
}

example/lib/src/multiplier_generator.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
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-
import 'package:analyzer/dart/element/element.dart';
5+
import 'package:analyzer/dart/element/element2.dart';
66
import 'package:build/build.dart';
77
import 'package:source_gen/source_gen.dart';
88

@@ -11,12 +11,12 @@ import '../annotations.dart';
1111
class MultiplierGenerator extends GeneratorForAnnotation<Multiplier> {
1212
@override
1313
String generateForAnnotatedElement(
14-
Element element,
14+
Element2 element,
1515
ConstantReader annotation,
1616
BuildStep buildStep,
1717
) {
1818
final numValue = annotation.read('value').literalValue as num;
1919

20-
return 'num ${element.name}Multiplied() => ${element.name} * $numValue;';
20+
return 'num ${element.name3}Multiplied() => ${element.name3} * $numValue;';
2121
}
2222
}

example/lib/src/property_product_generator.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class PropertyProductGenerator extends Generator {
1212
String generate(LibraryReader library, BuildStep buildStep) {
1313
final productNames = topLevelNumVariables(
1414
library,
15-
).map((element) => element.name).join(' * ');
15+
).map((element) => element.name3).join(' * ');
1616

1717
return '''
1818
num allProduct() => $productNames;

example/lib/src/property_sum_generator.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class PropertySumGenerator extends Generator {
1212
String generate(LibraryReader library, BuildStep buildStep) {
1313
final sumNames = topLevelNumVariables(
1414
library,
15-
).map((element) => element.name).join(' + ');
15+
).map((element) => element.name3).join(' + ');
1616

1717
return '''
1818
num allSum() => $sumNames;

example/lib/src/utils.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
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-
import 'package:analyzer/dart/element/element.dart';
5+
import 'package:analyzer/dart/element/element2.dart';
66
import 'package:source_gen/source_gen.dart';
77

8-
/// Returns all [TopLevelVariableElement] members in [reader]'s library that
8+
/// Returns all [TopLevelVariableElement2] members in [reader]'s library that
99
/// have a type of [num].
10-
Iterable<TopLevelVariableElement> topLevelNumVariables(LibraryReader reader) =>
11-
reader.allElements.whereType<TopLevelVariableElement>().where(
10+
Iterable<TopLevelVariableElement2> topLevelNumVariables(LibraryReader reader) =>
11+
reader.allElements.whereType<TopLevelVariableElement2>().where(
1212
(element) =>
1313
element.type.isDartCoreNum ||
1414
element.type.isDartCoreInt ||

example/pubspec.yaml

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

88
dependencies:
99
analyzer: '>=6.9.0 <8.0.0'
10-
build: ^2.0.0
10+
build: ^3.0.0-dev
1111
source_gen: any
1212

1313
dev_dependencies:

source_gen/CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
## 2.0.1-wip
1+
## 3.0.0-dev
22

3+
- **Breaking Change**: use the new `element2` APIs in `analyzer`. Builders that
4+
do resolution need to switch to the new API, see
5+
https://github.com/dart-lang/sdk/blob/main/pkg/analyzer/doc/element_model_migration_guide.md.
6+
For questions please use https://github.com/dart-lang/build/discussions.
37
- Require Dart 3.7.0
48

59
## 2.0.0

source_gen/lib/src/builder.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import 'dart:convert';
66

77
import 'package:analyzer/dart/ast/ast.dart';
8-
import 'package:analyzer/dart/element/element.dart';
8+
import 'package:analyzer/dart/element/element2.dart';
99
import 'package:build/build.dart';
1010
import 'package:dart_style/dart_style.dart';
1111
import 'package:pub_semver/pub_semver.dart';
@@ -109,7 +109,7 @@ class _Builder extends Builder {
109109
}
110110

111111
Future<void> _generateForLibrary(
112-
LibraryElement library,
112+
LibraryElement2 library,
113113
BuildStep buildStep,
114114
) async {
115115
final generatedOutputs =
@@ -355,7 +355,7 @@ class LibraryBuilder extends _Builder {
355355
}
356356

357357
Stream<GeneratedOutput> _generate(
358-
LibraryElement library,
358+
LibraryElement2 library,
359359
List<Generator> generators,
360360
BuildStep buildStep,
361361
) async* {
@@ -426,7 +426,7 @@ const partIdRegExpLiteral = r'[A-Za-z_\d-]+';
426426

427427
final _partIdRegExp = RegExp('^$partIdRegExpLiteral\$');
428428

429-
String languageOverrideForLibrary(LibraryElement library) {
429+
String languageOverrideForLibrary(LibraryElement2 library) {
430430
final override = library.languageVersion.override;
431431
return override == null
432432
? ''

source_gen/lib/src/constants/reader.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analyzer/dart/constant/value.dart';
6-
import 'package:analyzer/dart/element/element.dart';
6+
import 'package:analyzer/dart/element/element2.dart';
77
import 'package:analyzer/dart/element/type.dart';
88

99
import '../type_checker.dart';
@@ -268,7 +268,7 @@ class _DartObjectConstant extends ConstantReader {
268268
ConstantReader read(String field) {
269269
final reader = peek(field);
270270
if (reader == null) {
271-
assertHasField(objectValue.type!.element as InterfaceElement, field);
271+
assertHasField(objectValue.type!.element3 as InterfaceElement2, field);
272272
return const _NullConstant();
273273
}
274274
return reader;

0 commit comments

Comments
 (0)