Skip to content

Commit b8c3f02

Browse files
authored
Elements. Migrate to Element2 (#3991)
Migrate to Element 2 - lib/src/model/annotation.dart - lib/src/model/package.dart - lib/src/model/package_builder.dart - lib/src/model/package_graph.dart Also removed the `ignore_for_file: analyzer_use_new_elements` from the generated code.
1 parent c386407 commit b8c3f02

27 files changed

+111
-181
lines changed

lib/src/element_type.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ abstract class ElementType with CommentReferable, Nameable {
4040
fElement.kind == ElementKind.NEVER) {
4141
return UndefinedElementType._from(type, library, packageGraph);
4242
}
43-
var modelElement = packageGraph.getModelForElement2(fElement);
43+
var modelElement = packageGraph.getModelForElement(fElement);
4444
return DefinedElementType._from(type, modelElement, library, packageGraph);
4545
}
4646

@@ -137,7 +137,7 @@ class FunctionTypeElementType extends UndefinedElementType
137137
: super._();
138138

139139
List<TypeParameter> get typeFormals => type.typeParameters
140-
.map((p) => getModelFor2(p, library) as TypeParameter)
140+
.map((p) => getModelFor(p, library) as TypeParameter)
141141
.toList(growable: false);
142142

143143
@override
@@ -329,7 +329,7 @@ abstract class DefinedElementType extends ElementType {
329329
/// unless it is an alias reference.
330330
mixin Callable on ElementType {
331331
List<Parameter> get parameters => type.formalParameters
332-
.map((p) => getModelFor2(p, library) as Parameter)
332+
.map((p) => getModelFor(p, library) as Parameter)
333333
.toList(growable: false);
334334

335335
late final ElementType returnType = getTypeFor(type.returnType, library);

lib/src/generator/templates.runtime_renderers.dart

-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
// ignore_for_file: unused_import
99
// ignore_for_file: use_super_parameters
1010

11-
// ignore_for_file: analyzer_use_new_elements
12-
1311
import 'package:dartdoc/src/element_type.dart';
1412
import 'package:dartdoc/src/generator/template_data.dart';
1513
import 'package:dartdoc/src/model/annotation.dart';

lib/src/model/accessor.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class Accessor extends ModelElement {
4949

5050
/// The [enclosingCombo] where this element was defined.
5151
late final GetterSetterCombo definingCombo =
52-
getModelForElement2(element2.variable3!) as GetterSetterCombo;
52+
getModelForElement(element2.variable3!) as GetterSetterCombo;
5353

5454
String get _sourceCode {
5555
if (!isSynthetic) {
@@ -119,8 +119,8 @@ class Accessor extends ModelElement {
119119
@override
120120
ModelElement get enclosingElement => switch (element2.enclosingElement2) {
121121
LibraryFragment enclosingCompilationUnit =>
122-
getModelForElement2(enclosingCompilationUnit.element),
123-
_ => getModelFor2(element2.enclosingElement2, library)
122+
getModelForElement(enclosingCompilationUnit.element),
123+
_ => getModelFor(element2.enclosingElement2, library)
124124
};
125125

126126
@override
@@ -223,7 +223,7 @@ class ContainerAccessor extends Accessor with ContainerMember, Inheritable {
223223
continue;
224224
}
225225
final parentContainer =
226-
getModelForElement2(supertype.element3) as InheritingContainer;
226+
getModelForElement(supertype.element3) as InheritingContainer;
227227
final possibleFields =
228228
parentContainer.declaredFields.where((f) => !f.isStatic);
229229
final fieldName = accessor.lookupName?.replaceFirst('=', '');

lib/src/model/annotation.dart

+9-11
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
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: analyzer_use_new_elements
6-
75
import 'dart:convert';
86

9-
import 'package:analyzer/dart/element/element.dart';
7+
import 'package:analyzer/dart/element/element2.dart';
108
import 'package:dartdoc/src/element_type.dart';
119
import 'package:dartdoc/src/model/attribute.dart';
1210
import 'package:dartdoc/src/model/class.dart';
@@ -24,7 +22,7 @@ final class Annotation extends Attribute {
2422
final PackageGraph _packageGraph;
2523

2624
Annotation(this._annotation, this._library, this._packageGraph)
27-
: super(_annotation.element!.name!);
25+
: super(_annotation.element2!.name3!);
2826

2927
@override
3028
String get linkedNameWithParameters {
@@ -42,19 +40,19 @@ final class Annotation extends Attribute {
4240
}
4341

4442
@override
45-
String get linkedName => _annotation.element is PropertyAccessorElement
46-
? _packageGraph.getModelForElement(_annotation.element!).linkedName
43+
String get linkedName => _annotation.element2 is PropertyAccessorElement2
44+
? _packageGraph.getModelForElement(_annotation.element2!).linkedName
4745
// TODO(jcollins-g): consider linking to constructor instead of type?
4846
: _modelType.linkedName;
4947

50-
late final ElementType _modelType = switch (_annotation.element) {
51-
ConstructorElement(:var returnType) =>
48+
late final ElementType _modelType = switch (_annotation.element2) {
49+
ConstructorElement2(:var returnType) =>
5250
_packageGraph.getTypeFor(returnType, _library),
53-
PropertyAccessorElement(:var variable2?) =>
54-
(_packageGraph.getModelForElement(variable2) as GetterSetterCombo)
51+
PropertyAccessorElement2(:var variable3?) =>
52+
(_packageGraph.getModelForElement(variable3) as GetterSetterCombo)
5553
.modelType,
5654
_ => throw StateError(
57-
'non-callable element used as annotation?: ${_annotation.element}')
55+
'non-callable element used as annotation?: ${_annotation.element2}')
5856
};
5957

6058
bool get isPublic {

lib/src/model/comment_referable.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,14 @@ mixin CommentReferable implements Nameable {
132132
// First, cache the synthetic variable, so that the
133133
// PropertyAccessorElement getter and/or setter are set (see
134134
// `Field.new` regarding `enclosingCombo`).
135-
packageGraph.getModelForElement2(variable);
135+
packageGraph.getModelForElement(variable);
136136
// Then, use the result for the PropertyAccessorElement.
137-
result = packageGraph.getModelForElement2(resultElement);
137+
result = packageGraph.getModelForElement(resultElement);
138138
} else {
139-
result = packageGraph.getModelForElement2(variable);
139+
result = packageGraph.getModelForElement(variable);
140140
}
141141
} else {
142-
result = packageGraph.getModelForElement2(resultElement);
142+
result = packageGraph.getModelForElement(resultElement);
143143
}
144144
return _recurseChildrenAndFilter(referenceLookup, result, filter: filter);
145145
}

lib/src/model/constructor.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
6464

6565
@override
6666
Container get enclosingElement =>
67-
getModelFor2(element2.enclosingElement2, library) as Container;
67+
getModelFor(element2.enclosingElement2, library) as Container;
6868

6969
@override
7070
String get fileName =>
@@ -136,7 +136,7 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
136136

137137
var parameterElements = parameters.map((parameter) {
138138
var e = dereferenceParameter(parameter.element2);
139-
return e == null ? parameter : getModelForElement2(e);
139+
return e == null ? parameter : getModelForElement(e);
140140
});
141141
return {
142142
for (var e in parameterElements) e.referenceName: e,

lib/src/model/container_member.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ mixin ContainerMember on ModelElement {
2929
@protected
3030
@visibleForTesting
3131
late final Container definingEnclosingContainer =
32-
getModelForElement2(element2.enclosingElement2!) as Container;
32+
getModelForElement(element2.enclosingElement2!) as Container;
3333

3434
@override
3535
Set<Attribute> get attributes => {

lib/src/model/documentation_comment.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ mixin DocumentationComment
5555
if (!hasDocumentationComment && self.overriddenElement != null) {
5656
return self.overriddenElement!.documentationFrom;
5757
} else if (self.isInherited) {
58-
return packageGraph.getModelForElement2(element2).documentationFrom;
58+
return packageGraph.getModelForElement(element2).documentationFrom;
5959
} else {
6060
return [this];
6161
}

lib/src/model/extension.dart

+4-5
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import 'package:meta/meta.dart';
1919
/// Static extension on a given type, containing methods (including getters,
2020
/// setters, operators).
2121
class Extension extends Container {
22-
2322
@override
2423
final ExtensionElement2 element2;
2524

@@ -82,7 +81,7 @@ class Extension extends Container {
8281

8382
@override
8483
late final List<Method> declaredMethods = element2.methods2
85-
.map((e) => getModelFor2(e, library, enclosingContainer: this) as Method)
84+
.map((e) => getModelFor(e, library, enclosingContainer: this) as Method)
8685
.toList(growable: false);
8786

8887
@override
@@ -115,15 +114,15 @@ class Extension extends Container {
115114
setter = ModelElement.for_(fieldSetter, library, packageGraph,
116115
enclosingContainer: this) as ContainerAccessor;
117116
}
118-
return getModelForPropertyInducingElement(field.asElement, library,
117+
return getModelForPropertyInducingElement(field, library,
119118
getter: getter, setter: setter, enclosingContainer: this) as Field;
120119
}).toList(growable: false);
121120

122121
@override
123122
late final List<TypeParameter> typeParameters = element2.typeParameters2
124-
.map((typeParameter) => getModelFor2(
123+
.map((typeParameter) => getModelFor(
125124
typeParameter,
126-
getModelForElement2(typeParameter.enclosingElement2!.library2!)
125+
getModelForElement(typeParameter.enclosingElement2!.library2!)
127126
as Library) as TypeParameter)
128127
.toList(growable: false);
129128

lib/src/model/extension_type.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class ExtensionType extends InheritingContainer with Constructable {
5353
setter = ContainerAccessor(
5454
fieldSetter, library, packageGraph, this);
5555
}
56-
return getModelForPropertyInducingElement2(field, library,
56+
return getModelForPropertyInducingElement(field, library,
5757
getter: getter, setter: setter) as Field;
5858
}).toList(growable: false);
5959

lib/src/model/getter_setter_combo.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ mixin GetterSetterCombo on ModelElement {
8686
var element = _constantInitializer.constructorName.element;
8787
if (element == null) return original;
8888

89-
var target = getModelForElement2(element) as Constructor;
89+
var target = getModelForElement(element) as Constructor;
9090
var enclosingElement = target.enclosingElement;
9191
if (enclosingElement is! Class) return original;
9292

lib/src/model/inheriting_container.dart

+13-13
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import 'package:meta/meta.dart';
2020
/// [hasModifiers] override is not necessary for this mixin.
2121
mixin Constructable implements InheritingContainer {
2222
late final List<Constructor> constructors = element2.constructors2
23-
.map((e) => getModelFor2(e, library) as Constructor)
23+
.map((e) => getModelFor(e, library) as Constructor)
2424
.toList(growable: false);
2525

2626
@override
@@ -111,7 +111,7 @@ abstract class InheritingContainer extends Container {
111111

112112
return [
113113
for (var e in inheritedMethodElements)
114-
getModelFor2(e, library, enclosingContainer: this) as Method,
114+
getModelFor(e, library, enclosingContainer: this) as Method,
115115
];
116116
}
117117

@@ -125,7 +125,7 @@ abstract class InheritingContainer extends Container {
125125

126126
return [
127127
for (var e in inheritedOperatorElements)
128-
getModelFor2(e, library, enclosingContainer: this) as Operator,
128+
getModelFor(e, library, enclosingContainer: this) as Operator,
129129
];
130130
}
131131

@@ -254,14 +254,14 @@ abstract class InheritingContainer extends Container {
254254

255255
@override
256256
late final List<Method> declaredMethods = element2.methods2
257-
.map((e) => getModelFor2(e, library) as Method)
257+
.map((e) => getModelFor(e, library) as Method)
258258
.toList(growable: false);
259259

260260
@override
261261
late final List<TypeParameter> typeParameters = element2.typeParameters2
262-
.map((typeParameter) => getModelFor2(
262+
.map((typeParameter) => getModelFor(
263263
typeParameter,
264-
getModelForElement2(typeParameter.enclosingElement2!.library2!)
264+
getModelForElement(typeParameter.enclosingElement2!.library2!)
265265
as Library) as TypeParameter)
266266
.toList(growable: false);
267267

@@ -292,7 +292,7 @@ abstract class InheritingContainer extends Container {
292292

293293
/// The [InheritingContainer] with the library in which [element] is defined.
294294
InheritingContainer get definingContainer =>
295-
getModelFor2(element2, library) as InheritingContainer;
295+
getModelFor(element2, library) as InheritingContainer;
296296

297297
@override
298298

@@ -347,7 +347,7 @@ abstract class InheritingContainer extends Container {
347347
List<Field> get _extensionInstanceFields => [
348348
for (var extension in potentiallyApplicableExtensionsSorted)
349349
for (var field in extension.instanceFields)
350-
getModelForPropertyInducingElement2(
350+
getModelForPropertyInducingElement(
351351
field.element2,
352352
library,
353353
enclosingContainer: extension,
@@ -371,7 +371,7 @@ abstract class InheritingContainer extends Container {
371371
List<Method> get _extensionInstanceMethods => [
372372
for (var extension in potentiallyApplicableExtensionsSorted)
373373
for (var method in extension.instanceMethods)
374-
getModelFor2(method.element2, library,
374+
getModelFor(method.element2, library,
375375
enclosingContainer: extension) as Method,
376376
];
377377

@@ -388,7 +388,7 @@ abstract class InheritingContainer extends Container {
388388
List<Operator> get _extensionInstanceOperators => [
389389
for (var extension in potentiallyApplicableExtensionsSorted)
390390
for (var operator in extension.instanceOperators)
391-
getModelFor2(operator.element2, library,
391+
getModelFor(operator.element2, library,
392392
enclosingContainer: extension) as Operator,
393393
];
394394

@@ -604,7 +604,7 @@ abstract class InheritingContainer extends Container {
604604
if (element == null) return null;
605605
final enclosingContainer =
606606
inheritedAccessors.contains(element) ? this : null;
607-
return getModelFor2(element, library,
607+
return getModelFor(element, library,
608608
enclosingContainer: enclosingContainer) as ContainerAccessor;
609609
}
610610

@@ -644,14 +644,14 @@ abstract class InheritingContainer extends Container {
644644
if ((getter == null || getter.isInherited) &&
645645
(setter == null || setter.isInherited)) {
646646
// Field is 100% inherited.
647-
return getModelForPropertyInducingElement2(field, library,
647+
return getModelForPropertyInducingElement(field, library,
648648
getter: getter, setter: setter, enclosingContainer: this) as Field;
649649
} else {
650650
// Field is <100% inherited (could be half-inherited).
651651
// TODO(jcollins-g): Navigation is probably still confusing for
652652
// half-inherited fields when traversing the inheritance tree. Make
653653
// this better, somehow.
654-
return getModelForPropertyInducingElement2(field, library,
654+
return getModelForPropertyInducingElement(field, library,
655655
getter: getter, setter: setter) as Field;
656656
}
657657
}

0 commit comments

Comments
 (0)