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.
diff --git a/lib/src/element_type.dart b/lib/src/element_type.dart
index a7eb044..7b7cabf 100644
--- a/lib/src/element_type.dart
+++ b/lib/src/element_type.dart
@@ -40,7 +40,7 @@
fElement.kind == ElementKind.NEVER) {
return UndefinedElementType._from(type, library, packageGraph);
}
- var modelElement = packageGraph.getModelForElement2(fElement);
+ var modelElement = packageGraph.getModelForElement(fElement);
return DefinedElementType._from(type, modelElement, library, packageGraph);
}
@@ -137,7 +137,7 @@
: super._();
List<TypeParameter> get typeFormals => type.typeParameters
- .map((p) => getModelFor2(p, library) as TypeParameter)
+ .map((p) => getModelFor(p, library) as TypeParameter)
.toList(growable: false);
@override
@@ -329,7 +329,7 @@
/// unless it is an alias reference.
mixin Callable on ElementType {
List<Parameter> get parameters => type.formalParameters
- .map((p) => getModelFor2(p, library) as Parameter)
+ .map((p) => getModelFor(p, library) as Parameter)
.toList(growable: false);
late final ElementType returnType = getTypeFor(type.returnType, library);
diff --git a/lib/src/generator/templates.runtime_renderers.dart b/lib/src/generator/templates.runtime_renderers.dart
index e0a6f33..6bcfefc 100644
--- a/lib/src/generator/templates.runtime_renderers.dart
+++ b/lib/src/generator/templates.runtime_renderers.dart
@@ -8,8 +8,6 @@
// ignore_for_file: unused_import
// ignore_for_file: use_super_parameters
-// ignore_for_file: analyzer_use_new_elements
-
import 'package:dartdoc/src/element_type.dart';
import 'package:dartdoc/src/generator/template_data.dart';
import 'package:dartdoc/src/model/annotation.dart';
diff --git a/lib/src/model/accessor.dart b/lib/src/model/accessor.dart
index 46f6622..594c71d 100644
--- a/lib/src/model/accessor.dart
+++ b/lib/src/model/accessor.dart
@@ -49,7 +49,7 @@
/// The [enclosingCombo] where this element was defined.
late final GetterSetterCombo definingCombo =
- getModelForElement2(element2.variable3!) as GetterSetterCombo;
+ getModelForElement(element2.variable3!) as GetterSetterCombo;
String get _sourceCode {
if (!isSynthetic) {
@@ -119,8 +119,8 @@
@override
ModelElement get enclosingElement => switch (element2.enclosingElement2) {
LibraryFragment enclosingCompilationUnit =>
- getModelForElement2(enclosingCompilationUnit.element),
- _ => getModelFor2(element2.enclosingElement2, library)
+ getModelForElement(enclosingCompilationUnit.element),
+ _ => getModelFor(element2.enclosingElement2, library)
};
@override
@@ -223,7 +223,7 @@
continue;
}
final parentContainer =
- getModelForElement2(supertype.element3) as InheritingContainer;
+ getModelForElement(supertype.element3) as InheritingContainer;
final possibleFields =
parentContainer.declaredFields.where((f) => !f.isStatic);
final fieldName = accessor.lookupName?.replaceFirst('=', '');
diff --git a/lib/src/model/annotation.dart b/lib/src/model/annotation.dart
index c1fab31..0897184 100644
--- a/lib/src/model/annotation.dart
+++ b/lib/src/model/annotation.dart
@@ -2,11 +2,9 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// ignore_for_file: analyzer_use_new_elements
-
import 'dart:convert';
-import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/element2.dart';
import 'package:dartdoc/src/element_type.dart';
import 'package:dartdoc/src/model/attribute.dart';
import 'package:dartdoc/src/model/class.dart';
@@ -24,7 +22,7 @@
final PackageGraph _packageGraph;
Annotation(this._annotation, this._library, this._packageGraph)
- : super(_annotation.element!.name!);
+ : super(_annotation.element2!.name3!);
@override
String get linkedNameWithParameters {
@@ -42,19 +40,19 @@
}
@override
- String get linkedName => _annotation.element is PropertyAccessorElement
- ? _packageGraph.getModelForElement(_annotation.element!).linkedName
+ String get linkedName => _annotation.element2 is PropertyAccessorElement2
+ ? _packageGraph.getModelForElement(_annotation.element2!).linkedName
// TODO(jcollins-g): consider linking to constructor instead of type?
: _modelType.linkedName;
- late final ElementType _modelType = switch (_annotation.element) {
- ConstructorElement(:var returnType) =>
+ late final ElementType _modelType = switch (_annotation.element2) {
+ ConstructorElement2(:var returnType) =>
_packageGraph.getTypeFor(returnType, _library),
- PropertyAccessorElement(:var variable2?) =>
- (_packageGraph.getModelForElement(variable2) as GetterSetterCombo)
+ PropertyAccessorElement2(:var variable3?) =>
+ (_packageGraph.getModelForElement(variable3) as GetterSetterCombo)
.modelType,
_ => throw StateError(
- 'non-callable element used as annotation?: ${_annotation.element}')
+ 'non-callable element used as annotation?: ${_annotation.element2}')
};
bool get isPublic {
diff --git a/lib/src/model/comment_referable.dart b/lib/src/model/comment_referable.dart
index 9404d3b..39c0e48 100644
--- a/lib/src/model/comment_referable.dart
+++ b/lib/src/model/comment_referable.dart
@@ -132,14 +132,14 @@
// First, cache the synthetic variable, so that the
// PropertyAccessorElement getter and/or setter are set (see
// `Field.new` regarding `enclosingCombo`).
- packageGraph.getModelForElement2(variable);
+ packageGraph.getModelForElement(variable);
// Then, use the result for the PropertyAccessorElement.
- result = packageGraph.getModelForElement2(resultElement);
+ result = packageGraph.getModelForElement(resultElement);
} else {
- result = packageGraph.getModelForElement2(variable);
+ result = packageGraph.getModelForElement(variable);
}
} else {
- result = packageGraph.getModelForElement2(resultElement);
+ result = packageGraph.getModelForElement(resultElement);
}
return _recurseChildrenAndFilter(referenceLookup, result, filter: filter);
}
diff --git a/lib/src/model/constructor.dart b/lib/src/model/constructor.dart
index 77a7dfd..b369b0b 100644
--- a/lib/src/model/constructor.dart
+++ b/lib/src/model/constructor.dart
@@ -64,7 +64,7 @@
@override
Container get enclosingElement =>
- getModelFor2(element2.enclosingElement2, library) as Container;
+ getModelFor(element2.enclosingElement2, library) as Container;
@override
String get fileName =>
@@ -136,7 +136,7 @@
var parameterElements = parameters.map((parameter) {
var e = dereferenceParameter(parameter.element2);
- return e == null ? parameter : getModelForElement2(e);
+ return e == null ? parameter : getModelForElement(e);
});
return {
for (var e in parameterElements) e.referenceName: e,
diff --git a/lib/src/model/container_member.dart b/lib/src/model/container_member.dart
index 08f39fa..7f6580a 100644
--- a/lib/src/model/container_member.dart
+++ b/lib/src/model/container_member.dart
@@ -29,7 +29,7 @@
@protected
@visibleForTesting
late final Container definingEnclosingContainer =
- getModelForElement2(element2.enclosingElement2!) as Container;
+ getModelForElement(element2.enclosingElement2!) as Container;
@override
Set<Attribute> get attributes => {
diff --git a/lib/src/model/documentation_comment.dart b/lib/src/model/documentation_comment.dart
index 93e3a60..174ffb6 100644
--- a/lib/src/model/documentation_comment.dart
+++ b/lib/src/model/documentation_comment.dart
@@ -55,7 +55,7 @@
if (!hasDocumentationComment && self.overriddenElement != null) {
return self.overriddenElement!.documentationFrom;
} else if (self.isInherited) {
- return packageGraph.getModelForElement2(element2).documentationFrom;
+ return packageGraph.getModelForElement(element2).documentationFrom;
} else {
return [this];
}
diff --git a/lib/src/model/extension.dart b/lib/src/model/extension.dart
index eeaec5a..b8bf241 100644
--- a/lib/src/model/extension.dart
+++ b/lib/src/model/extension.dart
@@ -19,7 +19,6 @@
/// Static extension on a given type, containing methods (including getters,
/// setters, operators).
class Extension extends Container {
-
@override
final ExtensionElement2 element2;
@@ -82,7 +81,7 @@
@override
late final List<Method> declaredMethods = element2.methods2
- .map((e) => getModelFor2(e, library, enclosingContainer: this) as Method)
+ .map((e) => getModelFor(e, library, enclosingContainer: this) as Method)
.toList(growable: false);
@override
@@ -115,15 +114,15 @@
setter = ModelElement.for_(fieldSetter, library, packageGraph,
enclosingContainer: this) as ContainerAccessor;
}
- return getModelForPropertyInducingElement(field.asElement, library,
+ return getModelForPropertyInducingElement(field, library,
getter: getter, setter: setter, enclosingContainer: this) as Field;
}).toList(growable: false);
@override
late final List<TypeParameter> typeParameters = element2.typeParameters2
- .map((typeParameter) => getModelFor2(
+ .map((typeParameter) => getModelFor(
typeParameter,
- getModelForElement2(typeParameter.enclosingElement2!.library2!)
+ getModelForElement(typeParameter.enclosingElement2!.library2!)
as Library) as TypeParameter)
.toList(growable: false);
diff --git a/lib/src/model/extension_type.dart b/lib/src/model/extension_type.dart
index bb06912..623f810 100644
--- a/lib/src/model/extension_type.dart
+++ b/lib/src/model/extension_type.dart
@@ -53,7 +53,7 @@
setter = ContainerAccessor(
fieldSetter, library, packageGraph, this);
}
- return getModelForPropertyInducingElement2(field, library,
+ return getModelForPropertyInducingElement(field, library,
getter: getter, setter: setter) as Field;
}).toList(growable: false);
diff --git a/lib/src/model/getter_setter_combo.dart b/lib/src/model/getter_setter_combo.dart
index 0475c1d..e5e4fe3 100644
--- a/lib/src/model/getter_setter_combo.dart
+++ b/lib/src/model/getter_setter_combo.dart
@@ -86,7 +86,7 @@
var element = _constantInitializer.constructorName.element;
if (element == null) return original;
- var target = getModelForElement2(element) as Constructor;
+ var target = getModelForElement(element) as Constructor;
var enclosingElement = target.enclosingElement;
if (enclosingElement is! Class) return original;
diff --git a/lib/src/model/inheriting_container.dart b/lib/src/model/inheriting_container.dart
index 0fdbdf3..1b669a7 100644
--- a/lib/src/model/inheriting_container.dart
+++ b/lib/src/model/inheriting_container.dart
@@ -20,7 +20,7 @@
/// [hasModifiers] override is not necessary for this mixin.
mixin Constructable implements InheritingContainer {
late final List<Constructor> constructors = element2.constructors2
- .map((e) => getModelFor2(e, library) as Constructor)
+ .map((e) => getModelFor(e, library) as Constructor)
.toList(growable: false);
@override
@@ -111,7 +111,7 @@
return [
for (var e in inheritedMethodElements)
- getModelFor2(e, library, enclosingContainer: this) as Method,
+ getModelFor(e, library, enclosingContainer: this) as Method,
];
}
@@ -125,7 +125,7 @@
return [
for (var e in inheritedOperatorElements)
- getModelFor2(e, library, enclosingContainer: this) as Operator,
+ getModelFor(e, library, enclosingContainer: this) as Operator,
];
}
@@ -254,14 +254,14 @@
@override
late final List<Method> declaredMethods = element2.methods2
- .map((e) => getModelFor2(e, library) as Method)
+ .map((e) => getModelFor(e, library) as Method)
.toList(growable: false);
@override
late final List<TypeParameter> typeParameters = element2.typeParameters2
- .map((typeParameter) => getModelFor2(
+ .map((typeParameter) => getModelFor(
typeParameter,
- getModelForElement2(typeParameter.enclosingElement2!.library2!)
+ getModelForElement(typeParameter.enclosingElement2!.library2!)
as Library) as TypeParameter)
.toList(growable: false);
@@ -292,7 +292,7 @@
/// The [InheritingContainer] with the library in which [element] is defined.
InheritingContainer get definingContainer =>
- getModelFor2(element2, library) as InheritingContainer;
+ getModelFor(element2, library) as InheritingContainer;
@override
@@ -347,7 +347,7 @@
List<Field> get _extensionInstanceFields => [
for (var extension in potentiallyApplicableExtensionsSorted)
for (var field in extension.instanceFields)
- getModelForPropertyInducingElement2(
+ getModelForPropertyInducingElement(
field.element2,
library,
enclosingContainer: extension,
@@ -371,7 +371,7 @@
List<Method> get _extensionInstanceMethods => [
for (var extension in potentiallyApplicableExtensionsSorted)
for (var method in extension.instanceMethods)
- getModelFor2(method.element2, library,
+ getModelFor(method.element2, library,
enclosingContainer: extension) as Method,
];
@@ -388,7 +388,7 @@
List<Operator> get _extensionInstanceOperators => [
for (var extension in potentiallyApplicableExtensionsSorted)
for (var operator in extension.instanceOperators)
- getModelFor2(operator.element2, library,
+ getModelFor(operator.element2, library,
enclosingContainer: extension) as Operator,
];
@@ -604,7 +604,7 @@
if (element == null) return null;
final enclosingContainer =
inheritedAccessors.contains(element) ? this : null;
- return getModelFor2(element, library,
+ return getModelFor(element, library,
enclosingContainer: enclosingContainer) as ContainerAccessor;
}
@@ -644,14 +644,14 @@
if ((getter == null || getter.isInherited) &&
(setter == null || setter.isInherited)) {
// Field is 100% inherited.
- return getModelForPropertyInducingElement2(field, library,
+ return getModelForPropertyInducingElement(field, library,
getter: getter, setter: setter, enclosingContainer: this) as Field;
} else {
// Field is <100% inherited (could be half-inherited).
// TODO(jcollins-g): Navigation is probably still confusing for
// half-inherited fields when traversing the inheritance tree. Make
// this better, somehow.
- return getModelForPropertyInducingElement2(field, library,
+ return getModelForPropertyInducingElement(field, library,
getter: getter, setter: setter) as Field;
}
}
diff --git a/lib/src/model/library.dart b/lib/src/model/library.dart
index d1029aa..50ae6e2 100644
--- a/lib/src/model/library.dart
+++ b/lib/src/model/library.dart
@@ -70,8 +70,9 @@
...libraryElement.firstFragment.topLevelVariables2.map((v) => v.element),
...libraryElement.firstFragment.typeAliases2.map((a) => a.element),
};
- var exportedElements = {...libraryElement.exportNamespace.definedNames2.values}
- .difference(localElements);
+ var exportedElements = {
+ ...libraryElement.exportNamespace.definedNames2.values
+ }.difference(localElements);
var library = Library._(
libraryElement,
packageGraph,
@@ -140,7 +141,7 @@
if (importedLibrary != null) {
prefixToLibrary
.putIfAbsent(prefixName, () => {})
- .add(getModelFor2(importedLibrary, library) as Library);
+ .add(getModelFor(importedLibrary, library) as Library);
}
}
return prefixToLibrary;
@@ -362,7 +363,7 @@
_localElementsOfType<T extends Element2, U extends ModelElement>() =>
_localElements
.whereType<T>()
- .map((e) => packageGraph.getModelFor2(e, this) as U);
+ .map((e) => packageGraph.getModelFor(e, this) as U);
Iterable<U>
_exportedElementsOfType<T extends Element2, U extends ModelElement>() =>
@@ -371,9 +372,9 @@
if (library == null) {
throw StateError("The library of '$e' is null!");
}
- return packageGraph.getModelFor2(
+ return packageGraph.getModelFor(
e,
- packageGraph.getModelForElement2(library) as Library,
+ packageGraph.getModelForElement(library) as Library,
) as U;
});
@@ -395,18 +396,19 @@
}.map(_topLevelVariableFor);
}
- TopLevelVariable _topLevelVariableFor(TopLevelVariableElement2 topLevelVariableElement) {
+ TopLevelVariable _topLevelVariableFor(
+ TopLevelVariableElement2 topLevelVariableElement) {
Accessor? getter;
var elementGetter = topLevelVariableElement.getter2;
if (elementGetter != null) {
- getter = packageGraph.getModelFor2(elementGetter, this) as Accessor;
+ getter = packageGraph.getModelFor(elementGetter, this) as Accessor;
}
Accessor? setter;
var elementSetter = topLevelVariableElement.setter2;
if (elementSetter != null) {
- setter = packageGraph.getModelFor2(elementSetter, this) as Accessor;
+ setter = packageGraph.getModelFor(elementSetter, this) as Accessor;
}
- return getModelForPropertyInducingElement2(topLevelVariableElement, this,
+ return getModelForPropertyInducingElement(topLevelVariableElement, this,
getter: getter, setter: setter) as TopLevelVariable;
}
@@ -436,7 +438,7 @@
Map<String, CommentReferable> get referenceChildren {
var referenceChildrenBuilder = <String, CommentReferable>{};
var definedNamesModelElements =
- element2.exportNamespace.definedNames2.values.map(getModelForElement2);
+ element2.exportNamespace.definedNames2.values.map(getModelForElement);
referenceChildrenBuilder
.addAll(definedNamesModelElements.whereNotType<Accessor>().asMapByName);
// TODO(jcollins-g): warn and get rid of this case where it shows up.
@@ -500,19 +502,19 @@
];
return libraryMembers.map((member) {
if (member is! GetterSetterCombo) {
- return getModelForElement2(member.element2).fullyQualifiedName;
+ return getModelForElement(member.element2).fullyQualifiedName;
}
var getter = switch (member.getter) {
- Accessor accessor => getModelForElement2(accessor.element2) as Accessor,
+ Accessor accessor => getModelForElement(accessor.element2) as Accessor,
_ => null,
};
var setter = switch (member.setter) {
- Accessor accessor => getModelForElement2(accessor.element2) as Accessor,
+ Accessor accessor => getModelForElement(accessor.element2) as Accessor,
_ => null,
};
- return getModelForPropertyInducingElement2(
+ return getModelForPropertyInducingElement(
member.element2 as TopLevelVariableElement2,
- getModelForElement2(member.element2.library2!) as Library,
+ getModelForElement(member.element2.library2!) as Library,
getter: getter,
setter: setter,
).fullyQualifiedName;
diff --git a/lib/src/model/method.dart b/lib/src/model/method.dart
index 31f68a0..4c20a44 100644
--- a/lib/src/model/method.dart
+++ b/lib/src/model/method.dart
@@ -49,7 +49,7 @@
void _calcTypeParameters() {
typeParameters = element2.typeParameters2.map((f) {
- return getModelFor2(f, library) as TypeParameter;
+ return getModelFor(f, library) as TypeParameter;
}).toList(growable: false);
}
@@ -68,7 +68,7 @@
@override
Container get enclosingElement => _enclosingContainer ??=
- getModelFor2(element2.enclosingElement2!, library) as Container;
+ getModelFor(element2.enclosingElement2!, library) as Container;
@override
String get aboveSidebarPath => enclosingElement.sidebarPath;
@@ -134,7 +134,7 @@
'Expected "${e.enclosingElement2?.name3}" to be a InterfaceElement, '
'but was ${e.enclosingElement2.runtimeType}',
);
- return getModelForElement2(e) as Method?;
+ return getModelForElement(e) as Method?;
}
}
return null;
diff --git a/lib/src/model/model_element.dart b/lib/src/model/model_element.dart
index 122a967..8d20576 100644
--- a/lib/src/model/model_element.dart
+++ b/lib/src/model/model_element.dart
@@ -803,7 +803,7 @@
@override
CommentReferable get definingCommentReferable {
var element = element2;
- return getModelForElement2(element);
+ return getModelForElement(element);
}
String get linkedObjectType => _packageGraph.dartCoreObject;
diff --git a/lib/src/model/model_function.dart b/lib/src/model/model_function.dart
index 3e1958b..ec930e2 100644
--- a/lib/src/model/model_function.dart
+++ b/lib/src/model/model_function.dart
@@ -10,8 +10,8 @@
/// A [ModelElement] for a [TopLevelFunctionElement] that isn't part of a type definition.
class ModelFunction extends ModelFunctionTyped with Categorization {
- ModelFunction(
- TopLevelFunctionElement super.element2, super.library, super.packageGraph);
+ ModelFunction(TopLevelFunctionElement super.element2, super.library,
+ super.packageGraph);
bool get isStatic => element2.isStatic;
@@ -19,7 +19,8 @@
String get name => element2.name3 ?? '';
@override
- TopLevelFunctionElement get element2 => super.element2 as TopLevelFunctionElement;
+ TopLevelFunctionElement get element2 =>
+ super.element2 as TopLevelFunctionElement;
bool get isAsynchronous => element2.firstFragment.isAsynchronous;
}
@@ -34,14 +35,13 @@
}
class ModelFunctionTyped extends ModelElement with TypeParameters {
-
@override
final FunctionTypedElement2 element2;
@override
late final List<TypeParameter> typeParameters = [
for (var p in element2.typeParameters2)
- getModelFor2(p, library) as TypeParameter,
+ getModelFor(p, library) as TypeParameter,
];
ModelFunctionTyped(this.element2, super.library, super.packageGraph);
@@ -82,7 +82,8 @@
@override
Iterable<CommentReferable> get referenceParents => [library];
- late final Callable modelType = getTypeFor(element2.type, library) as Callable;
+ late final Callable modelType =
+ getTypeFor(element2.type, library) as Callable;
// For use in templates.
bool get isProvidedByExtension => false;
diff --git a/lib/src/model/nameable.dart b/lib/src/model/nameable.dart
index 423948f..b3fa84f 100644
--- a/lib/src/model/nameable.dart
+++ b/lib/src/model/nameable.dart
@@ -2,13 +2,8 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// ignore_for_file: analyzer_use_new_elements
-
-import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/dart/element/type.dart' show DartType;
-// ignore: implementation_imports
-import 'package:analyzer/src/utilities/extensions/element.dart';
import 'package:collection/collection.dart';
import 'package:dartdoc/src/element_type.dart';
import 'package:dartdoc/src/model/accessor.dart';
@@ -59,21 +54,6 @@
///
/// A convenience method for [ModelElement.for_], see its documentation.
ModelElement getModelFor(
- Element element,
- Library library, {
- Container? enclosingContainer,
- }) =>
- ModelElement.for_(
- element.asElement2!,
- library,
- packageGraph,
- enclosingContainer: enclosingContainer,
- );
-
- /// Returns the [ModelElement] for [element], instantiating it if needed.
- ///
- /// A convenience method for [ModelElement.for_], see its documentation.
- ModelElement getModelFor2(
Element2 element,
Library library, {
Container? enclosingContainer,
@@ -89,14 +69,7 @@
///
/// A convenience method for [ModelElement.forElement], see its
/// documentation.
- ModelElement getModelForElement(Element element) =>
- ModelElement.forElement(element.asElement2!, packageGraph);
-
- /// Returns the [ModelElement] for [element], instantiating it if needed.
- ///
- /// A convenience method for [ModelElement.forElement], see its
- /// documentation.
- ModelElement getModelForElement2(Element2 element) =>
+ ModelElement getModelForElement(Element2 element) =>
ModelElement.forElement(element, packageGraph);
/// Returns the [ModelElement] for [element], instantiating it if needed.
@@ -107,29 +80,6 @@
// immediately before calling this method, and I imagine could instead just
// call `getModelFor`.
ModelElement getModelForPropertyInducingElement(
- PropertyInducingElement element,
- Library library, {
- required Accessor? getter,
- required Accessor? setter,
- Container? enclosingContainer,
- }) =>
- ModelElement.forPropertyInducingElement(
- element.asElement2 as PropertyInducingElement2,
- library,
- packageGraph,
- getter: getter,
- setter: setter,
- enclosingContainer: enclosingContainer,
- );
-
- /// Returns the [ModelElement] for [element], instantiating it if needed.
- ///
- /// A convenience method for [ModelElement.forPropertyInducingElement], see
- /// its documentation.
- // TODO(srawlins): Most callers seem to determine `getter` and `setter`
- // immediately before calling this method, and I imagine could instead just
- // call `getModelFor`.
- ModelElement getModelForPropertyInducingElement2(
PropertyInducingElement2 element,
Library library, {
required Accessor? getter,
diff --git a/lib/src/model/package.dart b/lib/src/model/package.dart
index 73c96fa..1367667 100644
--- a/lib/src/model/package.dart
+++ b/lib/src/model/package.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// ignore_for_file: analyzer_use_new_elements
-
import 'package:analyzer/dart/element/element2.dart';
import 'package:dartdoc/src/dartdoc_options.dart';
import 'package:dartdoc/src/io_utils.dart';
diff --git a/lib/src/model/package_builder.dart b/lib/src/model/package_builder.dart
index bbcac66..0d4be22 100644
--- a/lib/src/model/package_builder.dart
+++ b/lib/src/model/package_builder.dart
@@ -2,15 +2,12 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// ignore_for_file: analyzer_use_new_elements
-
import 'dart:async';
import 'package:analyzer/dart/analysis/analysis_context.dart';
import 'package:analyzer/dart/analysis/context_root.dart';
import 'package:analyzer/dart/analysis/results.dart';
import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/file_system/file_system.dart';
// ignore: implementation_imports
@@ -19,7 +16,6 @@
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart'
show AnalysisContextCollectionImpl;
// ignore: implementation_imports
-import 'package:analyzer/src/dart/element/element.dart';
// ignore: implementation_imports
import 'package:analyzer/src/dart/sdk/sdk.dart'
show EmbedderSdk, FolderBasedDartSdk;
@@ -225,10 +221,10 @@
/// Discovers and resolves libraries, invoking [addLibrary] with each result.
///
/// Uses [processedLibraries] to prevent calling [addLibrary] more than once
- /// with the same [LibraryElement]. Adds each [LibraryElement] found to
+ /// with the same [LibraryElement2]. Adds each [LibraryElement2] found to
/// [processedLibraries].
Future<void> _discoverLibraries(PackageGraph uninitializedPackageGraph,
- Set<LibraryElement> processedLibraries, Set<String> files) async {
+ Set<LibraryElement2> processedLibraries, Set<String> files) async {
files = {...files};
// Discover Dart libraries in a loop. In each iteration of the loop, we take
// a set of files (starting with the ones passed into the function), resolve
@@ -276,15 +272,15 @@
_knownParts.add(file);
continue;
}
- newFiles.addFilesReferencedBy(resolvedLibrary.element);
+ newFiles.addFilesReferencedBy(resolvedLibrary.element2);
for (var unit in resolvedLibrary.units) {
- newFiles.addFilesReferencedBy(unit.declaredElement);
+ newFiles.addFilesReferencedByFragment(unit.declaredFragment);
}
- if (processedLibraries.contains(resolvedLibrary.element)) {
+ if (processedLibraries.contains(resolvedLibrary.element2)) {
continue;
}
uninitializedPackageGraph.addLibraryToGraph(resolvedLibrary);
- processedLibraries.add(resolvedLibrary.element);
+ processedLibraries.add(resolvedLibrary.element2);
}
files.addAll(newFiles);
var externals = _includedExternalsFrom(newFiles);
@@ -472,7 +468,7 @@
var files = await _getFilesToDocument();
logInfo('Discovering libraries...');
- var foundLibraries = <LibraryElement>{};
+ var foundLibraries = <LibraryElement2>{};
await _discoverLibraries(
uninitializedPackageGraph,
foundLibraries,
@@ -484,9 +480,9 @@
/// Throws an exception if any configured-to-be-included files were not found
/// while gathering libraries.
- void _checkForMissingIncludedFiles(Set<LibraryElement> foundLibraries) {
+ void _checkForMissingIncludedFiles(Set<LibraryElement2> foundLibraries) {
if (_config.include.isNotEmpty) {
- var knownLibraryNames = foundLibraries.map((l) => l.name);
+ var knownLibraryNames = foundLibraries.map((l) => l.name3);
var notFound = _config.include
.difference(Set.of(knownLibraryNames))
.difference(_config.exclude);
@@ -519,12 +515,11 @@
/// Contains the [ResolvedLibraryResult] and any additional information about
/// the library.
class DartDocResolvedLibrary {
- final LibraryElement element;
- LibraryElement2 get element2 => element as LibraryElementImpl;
+ final LibraryElement2 element2;
final List<CompilationUnit> units;
DartDocResolvedLibrary(ResolvedLibraryResult result)
- : element = result.element,
+ : element2 = result.element2,
units = result.units.map((unit) => unit.unit).toList();
}
@@ -532,35 +527,28 @@
/// Adds [element]'s path and all of its part files' paths to `this`, and
/// recursively adds the paths of all imported and exported libraries.
///
- /// [element] must be a [LibraryElement] or [CompilationUnitElement].
- void addFilesReferencedBy(Element? element) {
+ /// [element] must be a [LibraryElement2].
+ void addFilesReferencedBy(LibraryElement2? element) {
if (element == null) return;
- var path = element.source?.fullName;
- if (path == null) return;
+ for (var fragment in element.fragments) {
+ addFilesReferencedByFragment(fragment);
+ }
+ }
+
+ void addFilesReferencedByFragment(LibraryFragment? fragment) {
+ if (fragment == null) return;
+
+ var path = fragment.source.fullName;
if (add(path)) {
- var libraryImports = switch (element) {
- LibraryElement() => element.definingCompilationUnit.libraryImports,
- CompilationUnitElement(:var libraryImports) => libraryImports,
- _ => const <LibraryImportElement>[],
- };
+ var libraryImports = fragment.libraryImports2;
for (var import in libraryImports) {
- addFilesReferencedBy(import.importedLibrary);
+ addFilesReferencedBy(import.importedLibrary2);
}
-
- var libraryExports = switch (element) {
- LibraryElement() => element.definingCompilationUnit.libraryExports,
- CompilationUnitElement(:var libraryExports) => libraryExports,
- _ => const <LibraryExportElement>[],
- };
+ var libraryExports = fragment.libraryExports2;
for (var export in libraryExports) {
- addFilesReferencedBy(export.exportedLibrary);
- }
- if (element is LibraryElement) {
- for (var unit in element.units) {
- addFilesReferencedBy(unit);
- }
+ addFilesReferencedBy(export.exportedLibrary2);
}
}
}
diff --git a/lib/src/model/package_graph.dart b/lib/src/model/package_graph.dart
index 84d96cc..71bece3 100644
--- a/lib/src/model/package_graph.dart
+++ b/lib/src/model/package_graph.dart
@@ -748,11 +748,11 @@
// For elements defined in extensions, they are canonical.
var enclosingElement = e.enclosingElement2;
if (enclosingElement is ExtensionElement2) {
- library ??= getModelForElement2(enclosingElement.library2) as Library?;
+ library ??= getModelForElement(enclosingElement.library2) as Library?;
// TODO(keertip): Find a better way to exclude members of extensions
// when libraries are specified using the "--include" flag.
if (library != null && library.isDocumented) {
- return getModelFor2(e, library,
+ return getModelFor(e, library,
enclosingContainer: preferredClass);
}
}
@@ -764,7 +764,7 @@
e is MethodElement2 ||
e is FieldElement2 ||
e is PropertyAccessorElement2) {
- var declarationModelElement = getModelForElement2(declaration);
+ var declarationModelElement = getModelForElement(declaration);
e = declarationModelElement.element2;
canonicalModelElement = _findCanonicalModelElementForAmbiguous(
declarationModelElement, library,
@@ -774,15 +774,15 @@
if (e case PropertyInducingElement2(:var getter2, :var setter2)) {
var getterElement = getter2 == null
? null
- : getModelFor2(getter2, library) as Accessor;
+ : getModelFor(getter2, library) as Accessor;
var setterElement = setter2 == null
? null
- : getModelFor2(setter2, library) as Accessor;
- canonicalModelElement = getModelForPropertyInducingElement2(
+ : getModelFor(setter2, library) as Accessor;
+ canonicalModelElement = getModelForPropertyInducingElement(
e, library,
getter: getterElement, setter: setterElement);
} else {
- canonicalModelElement = getModelFor2(e, library);
+ canonicalModelElement = getModelFor(e, library);
}
}
assert(canonicalModelElement is! Inheritable);
diff --git a/lib/src/model/parameter.dart b/lib/src/model/parameter.dart
index 3f1cc1c..846683f 100644
--- a/lib/src/model/parameter.dart
+++ b/lib/src/model/parameter.dart
@@ -26,7 +26,7 @@
final enclosingElement = element2.enclosingElement2;
return enclosingElement == null
? null
- : getModelFor2(enclosingElement, library);
+ : getModelFor(enclosingElement, library);
}
bool get hasDefaultValue {
diff --git a/lib/src/model/prefix.dart b/lib/src/model/prefix.dart
index d3acf04..7c2e9aa 100644
--- a/lib/src/model/prefix.dart
+++ b/lib/src/model/prefix.dart
@@ -27,7 +27,7 @@
// TODO(jcollins-g): consider connecting PrefixElement to the imported library
// in analyzer?
late final Library associatedLibrary =
- getModelForElement2(_getImportedLibraryElement()!) as Library;
+ getModelForElement(_getImportedLibraryElement()!) as Library;
LibraryElement2? _getImportedLibraryElement() {
final importLists =
diff --git a/lib/src/model/type_parameter.dart b/lib/src/model/type_parameter.dart
index 00ead52..0d7ee63 100644
--- a/lib/src/model/type_parameter.dart
+++ b/lib/src/model/type_parameter.dart
@@ -17,7 +17,7 @@
@override
ModelElement get enclosingElement =>
- getModelFor2(element2.enclosingElement2!, library);
+ getModelFor(element2.enclosingElement2!, library);
/// [TypeParameter]s don't have documentation pages, and don't link to the
/// element on which they are declared.
diff --git a/lib/src/model/typedef.dart b/lib/src/model/typedef.dart
index d6c465f..27f5222 100644
--- a/lib/src/model/typedef.dart
+++ b/lib/src/model/typedef.dart
@@ -63,7 +63,7 @@
@override
List<TypeParameter> get typeParameters => element2.typeParameters2
- .map((f) => getModelFor2(f, library) as TypeParameter)
+ .map((f) => getModelFor(f, library) as TypeParameter)
.toList(growable: false);
@override
diff --git a/test/end2end/model_test.dart b/test/end2end/model_test.dart
index a1fe60a..9729e5d 100644
--- a/test/end2end/model_test.dart
+++ b/test/end2end/model_test.dart
@@ -926,7 +926,7 @@
.whereType<DirectiveUriWithLibrary>()
.map((uri) => uri.library2)
})
- packageGraph.getModelForElement2(l) as Library
+ packageGraph.getModelForElement(l) as Library
};
expect(fakeLibraryImportedExported.any((l) => l.name == 'import_unusual'),
isTrue);
diff --git a/test/mustachio/foo.runtime_renderers.dart b/test/mustachio/foo.runtime_renderers.dart
index fa39c48..76db488 100644
--- a/test/mustachio/foo.runtime_renderers.dart
+++ b/test/mustachio/foo.runtime_renderers.dart
@@ -8,8 +8,6 @@
// ignore_for_file: unused_import
// ignore_for_file: use_super_parameters
-// ignore_for_file: analyzer_use_new_elements
-
import 'package:dartdoc/src/element_type.dart';
import 'package:dartdoc/src/generator/template_data.dart';
import 'package:dartdoc/src/model/annotation.dart';
diff --git a/tool/mustachio/codegen_runtime_renderer.dart b/tool/mustachio/codegen_runtime_renderer.dart
index 33db1b9..c54d375 100644
--- a/tool/mustachio/codegen_runtime_renderer.dart
+++ b/tool/mustachio/codegen_runtime_renderer.dart
@@ -89,8 +89,6 @@
// ignore_for_file: unused_import
// ignore_for_file: use_super_parameters
-// ignore_for_file: analyzer_use_new_elements
-
import 'package:dartdoc/src/element_type.dart';
import 'package:dartdoc/src/generator/template_data.dart';
import 'package:dartdoc/src/model/annotation.dart';