Skip to content

Commit 7a53728

Browse files
committed
Use element2 implementations everywhere, deprecated API with "2".
1 parent 9716a60 commit 7a53728

21 files changed

+233
-383
lines changed

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.element2.uri}
16+
// Source library: ${library.element.uri}
1717
const topLevelNumVarCount = $topLevelVarCount;
1818
''';
1919
}

example/lib/src/utils.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'package:source_gen/source_gen.dart';
88
/// Returns all [TopLevelVariableElement2] members in [reader]'s library that
99
/// have a type of [num].
1010
Iterable<TopLevelVariableElement2> topLevelNumVariables(LibraryReader reader) =>
11-
reader.allElements2.whereType<TopLevelVariableElement2>().where(
11+
reader.allElements.whereType<TopLevelVariableElement2>().where(
1212
(element) =>
1313
element.type.isDartCoreNum ||
1414
element.type.isDartCoreInt ||

source_gen/lib/builder.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class CombiningBuilder implements Builder {
121121

122122
final inputLibrary = await buildStep.inputLibrary2;
123123
final outputId = buildStep.allowedOutputs.single;
124-
final partOfUri = uriOfPartial2(inputLibrary, buildStep.inputId, outputId);
124+
final partOfUri = uriOfPartial(inputLibrary, buildStep.inputId, outputId);
125125

126126
// Ensure that the input has a correct `part` statement.
127127
final libraryUnit =
@@ -143,7 +143,7 @@ class CombiningBuilder implements Builder {
143143

144144
final output = '''
145145
$defaultFileHeader
146-
${languageOverrideForLibrary2(inputLibrary)}$ignoreForFile$preamble
146+
${languageOverrideForLibrary(inputLibrary)}$ignoreForFile$preamble
147147
part of '$partOfUri';
148148
149149
$assets

source_gen/lib/src/builder.dart

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

77
import 'package:analyzer/dart/ast/ast.dart';
8-
import 'package:analyzer/dart/element/element.dart';
98
import 'package:analyzer/dart/element/element2.dart';
109
import 'package:build/build.dart';
1110
import 'package:dart_style/dart_style.dart';
@@ -130,12 +129,12 @@ class _Builder extends Builder {
130129

131130
if (!_isLibraryBuilder) {
132131
final asset = buildStep.inputId;
133-
final partOfUri = uriOfPartial2(library2, asset, outputId);
132+
final partOfUri = uriOfPartial(library2, asset, outputId);
134133
contentBuffer.writeln();
135134

136135
if (this is PartBuilder) {
137136
contentBuffer
138-
..write(languageOverrideForLibrary2(library2))
137+
..write(languageOverrideForLibrary(library2))
139138
..writeln('part of \'$partOfUri\';');
140139
final part = computePartUrl(buildStep.inputId, outputId);
141140

@@ -358,7 +357,7 @@ Stream<GeneratedOutput> _generate(
358357
List<Generator> generators,
359358
BuildStep buildStep,
360359
) async* {
361-
final libraryReader = LibraryReader.v2(library2);
360+
final libraryReader = LibraryReader(library2);
362361
for (var i = 0; i < generators.length; i++) {
363362
final gen = generators[i];
364363
var msg = 'Running $gen';
@@ -425,20 +424,16 @@ const partIdRegExpLiteral = r'[A-Za-z_\d-]+';
425424

426425
final _partIdRegExp = RegExp('^$partIdRegExpLiteral\$');
427426

428-
@Deprecated('Use languageOverrideForLibrary2 instead')
429-
String languageOverrideForLibrary(LibraryElement library) {
427+
String languageOverrideForLibrary(LibraryElement2 library) {
430428
final override = library.languageVersion.override;
431429
return override == null
432430
? ''
433431
: '// @dart=${override.major}.${override.minor}\n';
434432
}
435433

436-
String languageOverrideForLibrary2(LibraryElement2 library) {
437-
final override = library.languageVersion.override;
438-
return override == null
439-
? ''
440-
: '// @dart=${override.major}.${override.minor}\n';
441-
}
434+
@Deprecated('Use languageOverrideForLibrary instead')
435+
String languageOverrideForLibrary2(LibraryElement2 library) =>
436+
languageOverrideForLibrary(library);
442437

443438
/// A comment configuring `dart_style` to use the default code width so no
444439
/// configuration discovery is required.

source_gen/lib/src/constants/reader.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ class _DartObjectConstant extends ConstantReader {
268268
ConstantReader read(String field) {
269269
final reader = peek(field);
270270
if (reader == null) {
271-
assertHasField2(objectValue.type!.element3 as InterfaceElement2, field);
271+
assertHasField(objectValue.type!.element3 as InterfaceElement2, field);
272272
return const _NullConstant();
273273
}
274274
return reader;

source_gen/lib/src/constants/revive.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Revivable reviveInstance(DartObject object, [LibraryElement2? origin]) {
3333
}
3434
}
3535
origin ??= element!.library2;
36-
var url = Uri.parse(urlOfElement2(element!));
36+
var url = Uri.parse(urlOfElement(element!));
3737
if (element is TopLevelFunctionElement || element is LocalFunctionElement) {
3838
return Revivable._(source: url.removeFragment(), accessor: element.name3!);
3939
}
@@ -67,8 +67,9 @@ Revivable reviveInstance(DartObject object, [LibraryElement2? origin]) {
6767
}
6868

6969
for (final type in origin!.classes) {
70-
for (final e in type.fields2
71-
.where((f) => f.isConst && f.computeConstantValue() == object)) {
70+
for (final e in type.fields2.where(
71+
(f) => f.isConst && f.computeConstantValue() == object,
72+
)) {
7273
final result = Revivable._(
7374
source: url.removeFragment(),
7475
accessor: '${type.name3}.${e.name3}',
@@ -80,7 +81,7 @@ Revivable reviveInstance(DartObject object, [LibraryElement2? origin]) {
8081
}
8182
final i = (object as DartObjectImpl).getInvocation();
8283
if (i != null) {
83-
url = Uri.parse(urlOfElement2(i.constructor2.enclosingElement2));
84+
url = Uri.parse(urlOfElement(i.constructor2.enclosingElement2));
8485
final result = Revivable._(
8586
source: url,
8687
accessor: i.constructor.name,
@@ -95,7 +96,7 @@ Revivable reviveInstance(DartObject object, [LibraryElement2? origin]) {
9596
(f) => f.isConst && f.computeConstantValue() == object,
9697
)) {
9798
final result = Revivable._(
98-
source: Uri.parse(urlOfElement2(origin)).replace(fragment: ''),
99+
source: Uri.parse(urlOfElement(origin)).replace(fragment: ''),
99100
accessor: e.name3!,
100101
);
101102
if (tryResult(result)) {

source_gen/lib/src/constants/utils.dart

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,12 @@
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';
76
import 'package:analyzer/dart/element/element2.dart';
87

9-
/// Throws a [FormatException] if [root] does not have a given field [name].
10-
///
11-
/// Super types [InterfaceElement.supertype] are also checked before throwing.
12-
@Deprecated('Use assertHasField2() instead')
13-
void assertHasField(InterfaceElement root, String name) {
14-
InterfaceElement? element = root;
15-
while (element != null) {
16-
final field = element.getField(name);
17-
if (field != null) {
18-
return;
19-
}
20-
element = element.supertype?.element;
21-
}
22-
final allFields = {
23-
...root.fields,
24-
for (var t in root.allSupertypes) ...t.element.fields,
25-
};
26-
27-
throw FormatException(
28-
'Class ${root.name} does not have field "$name".',
29-
'Fields: \n - ${allFields.map((e) => e.name).join('\n - ')}',
30-
);
31-
}
32-
338
/// Throws a [FormatException] if [root] does not have a given field [name].
349
///
3510
/// Super types [InterfaceElement2.supertype] are also checked before throwing.
36-
void assertHasField2(InterfaceElement2 root, String name) {
11+
void assertHasField(InterfaceElement2 root, String name) {
3712
InterfaceElement2? element = root;
3813
while (element != null) {
3914
final field = element.getField2(name);
@@ -53,6 +28,13 @@ void assertHasField2(InterfaceElement2 root, String name) {
5328
);
5429
}
5530

31+
/// Throws a [FormatException] if [root] does not have a given field [name].
32+
///
33+
/// Super types [InterfaceElement2.supertype] are also checked before throwing.
34+
@Deprecated('Use assertHasField() instead')
35+
void assertHasField2(InterfaceElement2 root, String name) =>
36+
assertHasField(root, name);
37+
5638
/// Returns whether or not [object] is or represents a `null` value.
5739
bool isNullLike(DartObject? object) => object?.isNull != false;
5840

source_gen/lib/src/generator.dart

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

77
import 'package:analyzer/dart/ast/ast.dart';
8-
import 'package:analyzer/dart/element/element.dart';
98
import 'package:analyzer/dart/element/element2.dart';
10-
// ignore: implementation_imports
11-
import 'package:analyzer/src/utilities/extensions/element.dart';
129
import 'package:build/build.dart';
1310

1411
import 'library.dart';
@@ -52,39 +49,39 @@ class InvalidGenerationSource implements Exception {
5249
///
5350
/// May be `null` if the error had no associated element, or if the location
5451
/// was passed with [node].
55-
final Element2? element2;
52+
final Element2? element;
5653

5754
/// The AST Node associated with this error.
5855
///
5956
/// May be `null` if the error has no associated node in the input source
6057
/// code, or if the location was passed with [element].
6158
final AstNode? node;
6259

63-
@Deprecated('use v2 instead')
6460
InvalidGenerationSource(
6561
this.message, {
6662
this.todo = '',
67-
Element? element,
63+
this.element,
6864
this.node,
69-
}) : element2 = element?.asElement2;
65+
});
7066

67+
@Deprecated('use the unnamed constructor instead')
7168
InvalidGenerationSource.v2(
7269
this.message, {
7370
this.todo = '',
74-
Element2? element,
71+
this.element,
7572
this.node,
76-
}) : element2 = element;
73+
});
7774

78-
@Deprecated('use element2 instead')
79-
Element? get element => element2?.asElement;
75+
@Deprecated('use element instead')
76+
Element2? get element2 => element;
8077

8178
@override
8279
String toString() {
8380
final buffer = StringBuffer(message);
8481

85-
if (element2 case final element2?) {
82+
if (element case final element2?) {
8683
try {
87-
final span = spanForElement2(element2);
84+
final span = spanForElement(element2);
8885
buffer
8986
..writeln()
9087
..writeln(span.start.toolString)

source_gen/lib/src/generator_for_annotation.dart

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import 'dart:async';
66

7-
import 'package:analyzer/dart/element/element.dart';
87
import 'package:analyzer/dart/element/element2.dart';
98
import 'package:build/build.dart';
109

@@ -74,14 +73,7 @@ abstract class GeneratorForAnnotation<T> extends Generator {
7473
typeChecker,
7574
throwOnUnresolved: throwOnUnresolved,
7675
)) {
77-
var generatedValue = generateForAnnotatedElement2(
78-
annotatedElement.element2,
79-
annotatedElement.annotation,
80-
buildStep,
81-
);
82-
generatedValue ??= generateForAnnotatedElement(
83-
// Support "generateForAnnotatedElements" until it's removed.
84-
// ignore: analyzer_use_new_elements
76+
final generatedValue = generateForAnnotatedElement(
8577
annotatedElement.element,
8678
annotatedElement.annotation,
8779
buildStep,
@@ -112,9 +104,8 @@ abstract class GeneratorForAnnotation<T> extends Generator {
112104
///
113105
/// Implementations should return `null` when no content is generated. Empty
114106
/// or whitespace-only [String] instances are also ignored.
115-
@Deprecated('use generateForAnnotatedElement2 instead')
116107
dynamic generateForAnnotatedElement(
117-
Element element,
108+
Element2 element,
118109
ConstantReader annotation,
119110
BuildStep buildStep,
120111
) {}
@@ -136,11 +127,13 @@ abstract class GeneratorForAnnotation<T> extends Generator {
136127
///
137128
/// Implementations should return `null` when no content is generated. Empty
138129
/// or whitespace-only [String] instances are also ignored.
130+
@Deprecated('use generateForAnnotatedElement instead')
139131
dynamic generateForAnnotatedElement2(
140132
Element2 element,
141133
ConstantReader annotation,
142134
BuildStep buildStep,
143-
) {}
135+
) =>
136+
generateForAnnotatedElement(element, annotation, buildStep);
144137

145138
/// Implement to return source code to generate for [directive]:
146139
/// - [LibraryImport]

0 commit comments

Comments
 (0)