diff --git a/lib/src/generator/templates.runtime_renderers.dart b/lib/src/generator/templates.runtime_renderers.dart
index 56776e7560..943c193dd3 100644
--- a/lib/src/generator/templates.runtime_renderers.dart
+++ b/lib/src/generator/templates.runtime_renderers.dart
@@ -1688,6 +1688,34 @@ class _Renderer_Category extends RendererBase {
);
},
),
+ 'element2': Property(
+ getValue: (CT_ c) => c.element2,
+ renderVariable:
+ (CT_ c, Property self, List remainingNames) =>
+ self.renderSimpleVariable(
+ c,
+ remainingNames,
+ 'Element2',
+ ),
+
+ isNullValue: (CT_ c) => c.element2 == null,
+
+ renderValue: (
+ CT_ c,
+ RendererBase r,
+ List ast,
+ StringSink sink,
+ ) {
+ renderSimple(
+ c.element2,
+ ast,
+ r.template,
+ sink,
+ parent: r,
+ getters: _invisibleGetters['Element2']!,
+ );
+ },
+ ),
'enclosingName': Property(
getValue: (CT_ c) => c.enclosingName,
renderVariable: (
@@ -19199,6 +19227,34 @@ class _Renderer_Package extends RendererBase {
);
},
),
+ 'element2': Property(
+ getValue: (CT_ c) => c.element2,
+ renderVariable:
+ (CT_ c, Property self, List remainingNames) =>
+ self.renderSimpleVariable(
+ c,
+ remainingNames,
+ 'Element2',
+ ),
+
+ isNullValue: (CT_ c) => c.element2 == null,
+
+ renderValue: (
+ CT_ c,
+ RendererBase r,
+ List ast,
+ StringSink sink,
+ ) {
+ renderSimple(
+ c.element2,
+ ast,
+ r.template,
+ sink,
+ parent: r,
+ getters: _invisibleGetters['Element2']!,
+ );
+ },
+ ),
'enclosingName': Property(
getValue: (CT_ c) => c.enclosingName,
renderVariable: (
@@ -25594,6 +25650,34 @@ class _Renderer_Warnable extends RendererBase {
);
},
),
+ 'element2': Property(
+ getValue: (CT_ c) => c.element2,
+ renderVariable:
+ (CT_ c, Property self, List remainingNames) =>
+ self.renderSimpleVariable(
+ c,
+ remainingNames,
+ 'Element2',
+ ),
+
+ isNullValue: (CT_ c) => c.element2 == null,
+
+ renderValue: (
+ CT_ c,
+ RendererBase r,
+ List ast,
+ StringSink sink,
+ ) {
+ renderSimple(
+ c.element2,
+ ast,
+ r.template,
+ sink,
+ parent: r,
+ getters: _invisibleGetters['Element2']!,
+ );
+ },
+ ),
},
)
as Map>;
diff --git a/lib/src/model/category.dart b/lib/src/model/category.dart
index 6d903dcc48..0cb982a385 100644
--- a/lib/src/model/category.dart
+++ b/lib/src/model/category.dart
@@ -5,6 +5,7 @@
// ignore_for_file: analyzer_use_new_elements
import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:dartdoc/src/dartdoc_options.dart';
import 'package:dartdoc/src/model/comment_referable.dart';
@@ -82,6 +83,9 @@ class Category
@override
Element? get element => null;
+ @override
+ Element2? get element2 => null;
+
@override
String get name => _categoryDefinition.displayName;
diff --git a/lib/src/model/constructor.dart b/lib/src/model/constructor.dart
index 74b391b2b7..bb3cc963a6 100644
--- a/lib/src/model/constructor.dart
+++ b/lib/src/model/constructor.dart
@@ -32,7 +32,7 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
@override
bool get isPublic {
if (!super.isPublic) return false;
- if (element.hasPrivateName) return false;
+ if (element2.hasPrivateName) return false;
var class_ = element.enclosingElement3;
// Enums cannot be explicitly constructed or extended.
if (class_ is EnumElement) return false;
diff --git a/lib/src/model/library.dart b/lib/src/model/library.dart
index 5f09fe3c55..6bda7b2c99 100644
--- a/lib/src/model/library.dart
+++ b/lib/src/model/library.dart
@@ -30,7 +30,7 @@ class Library extends ModelElement
final LibraryElement element;
@override
- LibraryElement2 get element2 => element.asElement2;
+ LibraryElement2 get element2 => element.asElement2;
/// The set of [Element]s declared directly in this library.
final Set _localElements;
@@ -315,8 +315,8 @@ class Library extends ModelElement
String get packageName => packageMeta?.name ?? '';
/// The real packageMeta, as opposed to the package we are documenting with.
- late final PackageMeta? packageMeta =
- packageGraph.packageMetaProvider.fromElement(element.asElement2, config.sdkDir);
+ late final PackageMeta? packageMeta = packageGraph.packageMetaProvider
+ .fromElement(element.asElement2, config.sdkDir);
late final List classesAndExceptions = [
..._localElementsOfType(),
diff --git a/lib/src/model/model_element.dart b/lib/src/model/model_element.dart
index 35a8f093fb..909c079e8d 100644
--- a/lib/src/model/model_element.dart
+++ b/lib/src/model/model_element.dart
@@ -312,7 +312,8 @@ abstract class ModelElement
TypeAliasElement(aliasedType: FunctionType()) =>
FunctionTypedef(e, library, packageGraph),
TypeAliasElement()
- when e.aliasedType.documentableElement2.asElement is InterfaceElement =>
+ when e.aliasedType.documentableElement2.asElement
+ is InterfaceElement =>
ClassTypedef(e, library, packageGraph),
TypeAliasElement() => GeneralizedTypedef(e, library, packageGraph),
MethodElement(isOperator: true) when enclosingContainer == null =>
@@ -438,7 +439,7 @@ abstract class ModelElement
}
}
- return !element.hasPrivateName && !hasNodoc;
+ return !element2.hasPrivateName && !hasNodoc;
}();
@override
@@ -508,7 +509,7 @@ abstract class ModelElement
/// A public, documented library which exports this [ModelElement], ideally in
/// [library]'s package.
late final Library? canonicalLibrary = () {
- if (element.hasPrivateName) {
+ if (element2.hasPrivateName) {
// Privately named elements can never have a canonical library.
return null;
}
@@ -558,6 +559,7 @@ abstract class ModelElement
@override
Element get element;
+ @override
Element2 get element2 => element.asElement2!;
@override
diff --git a/lib/src/model/nameable.dart b/lib/src/model/nameable.dart
index 8b685156f7..780fa7a9dd 100644
--- a/lib/src/model/nameable.dart
+++ b/lib/src/model/nameable.dart
@@ -69,7 +69,7 @@ mixin Nameable {
enclosingContainer: enclosingContainer,
);
- /// Returns the [ModelElement] for [element], instantiating it if needed.
+ /// Returns the [ModelElement] for [element], instantiating it if needed.
///
/// A convenience method for [ModelElement.for_], see its documentation.
ModelElement getModelFor2(
@@ -91,7 +91,7 @@ mixin Nameable {
ModelElement getModelForElement(Element element) =>
ModelElement.forElement(element, packageGraph);
- /// Returns the [ModelElement] for [element], instantiating it if needed.
+ /// Returns the [ModelElement] for [element], instantiating it if needed.
///
/// A convenience method for [ModelElement.forElement], see its
/// documentation.
diff --git a/lib/src/model/package.dart b/lib/src/model/package.dart
index ca702725be..3ee6ab42a8 100644
--- a/lib/src/model/package.dart
+++ b/lib/src/model/package.dart
@@ -5,6 +5,7 @@
// ignore_for_file: analyzer_use_new_elements
import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/element2.dart';
import 'package:dartdoc/src/dartdoc_options.dart';
import 'package:dartdoc/src/io_utils.dart';
import 'package:dartdoc/src/model/comment_referable.dart';
@@ -378,6 +379,9 @@ class Package extends LibraryContainer
@override
Element? get element => null;
+ @override
+ Element2? get element2 => null;
+
@override
List get containerOrder => config.packageOrder;
diff --git a/lib/src/model_utils.dart b/lib/src/model_utils.dart
index eb1448e949..b772064bc9 100644
--- a/lib/src/model_utils.dart
+++ b/lib/src/model_utils.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:io' show Platform;
-import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/element2.dart';
import 'package:dartdoc/src/failure.dart';
import 'package:dartdoc/src/model/model.dart';
import 'package:glob/glob.dart';
@@ -54,9 +52,9 @@ Iterable filterHasCanonical(
return maybeHasCanonicalItems.where((me) => me.canonicalModelElement != null);
}
-extension ElementExtension on Element {
+extension ElementExtension on Element2 {
bool get hasPrivateName {
- final name = this.name;
+ final name = name3;
if (name == null) return false;
if (name.startsWith('_')) {
@@ -67,8 +65,8 @@ extension ElementExtension on Element {
// GenericFunctionTypeElements have the name we care about in the enclosing
// element.
- if (self is GenericFunctionTypeElement) {
- var enclosingElementName = self.enclosingElement3?.name;
+ if (self is GenericFunctionTypeElement2) {
+ var enclosingElementName = self.enclosingElement2?.name3;
if (enclosingElementName != null &&
enclosingElementName.startsWith('_')) {
return true;
diff --git a/lib/src/type_utils.dart b/lib/src/type_utils.dart
index 90152f78db..ae706b3e2b 100644
--- a/lib/src/type_utils.dart
+++ b/lib/src/type_utils.dart
@@ -6,7 +6,6 @@ import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/dart/element/type.dart';
extension DartTypeExtension on DartType {
-
/// The static element associataed with this type, where documentable, and
/// `null` otherwise.
///
diff --git a/lib/src/warnings.dart b/lib/src/warnings.dart
index 020278c9c4..0ad8e251d2 100644
--- a/lib/src/warnings.dart
+++ b/lib/src/warnings.dart
@@ -10,8 +10,6 @@ import 'dart:math' as math;
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
-import 'package:analyzer/src/utilities/extensions/element.dart';
import 'package:collection/collection.dart';
import 'package:dartdoc/src/dartdoc_options.dart';
import 'package:dartdoc/src/logging.dart';
@@ -102,6 +100,8 @@ List> createPackageWarningOptions(
mixin Warnable implements CommentReferable, Documentable, Locatable {
Element? get element;
+ Element2? get element2;
+
void warn(
PackageWarning kind, {
String? message,
@@ -481,7 +481,7 @@ class PackageWarningOptions {
}
class PackageWarningCounter {
- final Map>> _countedWarnings = {};
+ final Map>> _countedWarnings = {};
final _items = [];
final _displayedWarningCounts = {};
final PackageGraph packageGraph;
@@ -496,17 +496,10 @@ class PackageWarningCounter {
/// The total amount of warnings this package has experienced.
int get warningCount => _warningCount;
- /// An unmodifiable map view of all counted warnings related by their element,
- /// warning type, and message.
- UnmodifiableMapView>>
- get countedWarnings => UnmodifiableMapView(_countedWarnings);
-
/// An unmodifiable map view of all counted warnings related by their element,
/// warning type, and message.
UnmodifiableMapView>>
- get countedWarnings2 => UnmodifiableMapView(_countedWarnings.map((key,
- value) =>
- MapEntry(key?.asElement2, value)));
+ get countedWarnings => UnmodifiableMapView(_countedWarnings);
PackageWarningCounter(this.packageGraph);
@@ -558,7 +551,7 @@ class PackageWarningCounter {
if (element == null) {
return false;
}
- final warning = _countedWarnings[element.element];
+ final warning = _countedWarnings[element.element2];
if (warning != null) {
final messages = warning[kind];
return messages != null &&
@@ -587,7 +580,7 @@ class PackageWarningCounter {
}
var elementName = element == null ? '' : element.fullyQualifiedName;
_countedWarnings
- .putIfAbsent(element?.element, () => {})
+ .putIfAbsent(element?.element2, () => {})
.putIfAbsent(kind, () => {})
.add(message);
_writeWarning(
diff --git a/test/documentation_comment_test.dart b/test/documentation_comment_test.dart
index 0d2f108cf1..ab18892d3e 100644
--- a/test/documentation_comment_test.dart
+++ b/test/documentation_comment_test.dart
@@ -28,7 +28,7 @@ class DocumentationCommentTest extends DartdocTestBase {
late ModelElement libraryModel;
void expectNoWarnings() {
- expect(packageGraph.packageWarningCounter.countedWarnings2, isEmpty);
+ expect(packageGraph.packageWarningCounter.countedWarnings, isEmpty);
expect(packageGraph.packageWarningCounter.hasWarnings, isFalse);
}
@@ -861,7 +861,7 @@ class _HasWarning extends Matcher {
Map
'));
var doAwesomeStuffWarnings = packageGraph.packageWarningCounter
- .countedWarnings[doAwesomeStuff.element] ??
+ .countedWarnings[doAwesomeStuff.element2] ??
{};
expect(
doAwesomeStuffWarnings,
diff --git a/test/mustachio/builder_test_base.dart b/test/mustachio/builder_test_base.dart
index a9b6ab36b6..e77b584ad1 100644
--- a/test/mustachio/builder_test_base.dart
+++ b/test/mustachio/builder_test_base.dart
@@ -97,4 +97,4 @@ Future resolveGeneratedLibrary2(String libraryPath) async {
}
return libraryResult.element2;
-}
\ No newline at end of file
+}
diff --git a/tool/mustachio/builder.dart b/tool/mustachio/builder.dart
index b2f3febe78..c11080e398 100644
--- a/tool/mustachio/builder.dart
+++ b/tool/mustachio/builder.dart
@@ -50,8 +50,7 @@ Future build(
var typeProvider = library.typeProvider;
var typeSystem = library.typeSystem;
var rendererSpecs = {};
- for (var renderer in library.metadata2
- .annotations
+ for (var renderer in library.metadata2.annotations
.where((e) => e.element2!.enclosingElement2!.name3 == 'Renderer')) {
rendererSpecs.add(_buildRendererSpec(renderer));
}
diff --git a/tool/mustachio/codegen_aot_compiler.dart b/tool/mustachio/codegen_aot_compiler.dart
index 114b20cdde..9e890b1721 100644
--- a/tool/mustachio/codegen_aot_compiler.dart
+++ b/tool/mustachio/codegen_aot_compiler.dart
@@ -214,8 +214,8 @@ Future _redirectingMethod(
_AotCompiler compiler, _AotCompiler lubCompiler) async {
var buffer = StringBuffer()..write('String ${compiler._rendererName}');
- buffer.writeTypeParameters(
- compiler._usedContextStack.expand((c) => c.type.element3.typeParameters2));
+ buffer.writeTypeParameters(compiler._usedContextStack
+ .expand((c) => c.type.element3.typeParameters2));
buffer.write('(');
for (var context in compiler._usedContextStack) {
diff --git a/tool/mustachio/codegen_runtime_renderer.dart b/tool/mustachio/codegen_runtime_renderer.dart
index ac8fdbbf8c..b2acdd56a7 100644
--- a/tool/mustachio/codegen_runtime_renderer.dart
+++ b/tool/mustachio/codegen_runtime_renderer.dart
@@ -10,6 +10,7 @@ library;
import 'dart:collection';
import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/element2.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/dart/element/type_provider.dart';
@@ -30,7 +31,7 @@ String buildRuntimeRenderers(Set specs, Uri sourceUri,
var visibleElements = specs
.map((spec) => spec.visibleTypes)
.reduce((value, element) => value.union(element))
- .map((type) => type.documentableElement2.asElement!)
+ .map((type) => type.documentableElement2!)
.toSet();
var raw = RuntimeRenderersBuilder(
sourceUri, typeProvider, typeSystem, visibleElements,
@@ -63,7 +64,7 @@ class RuntimeRenderersBuilder {
final TypeProvider _typeProvider;
final TypeSystem _typeSystem;
- final Set _allVisibleElements;
+ final Set _allVisibleElements;
/// Whether renderer classes are public. This should only be true for testing.
final bool _rendererClassesArePublic;
@@ -326,7 +327,7 @@ import '${path.basename(_sourceUri.path)}';
/// Returns whether [element] or any of its supertypes are "visible" to
/// Mustache.
bool _isVisibleToMustache(InterfaceElement element) {
- if (_allVisibleElements.contains(element)) {
+ if (_allVisibleElements.contains(element.asElement2)) {
return true;
}
var supertype = element.supertype;