Skip to content

Commit 75d1fd7

Browse files
authored
Elements. Remove 'element' from ModelElement (#3990)
* Elements. Remove 'element' from ModelElement * Fix test failure
1 parent 03a5ecc commit 75d1fd7

30 files changed

+139
-1105
lines changed

lib/src/generator/templates.runtime_renderers.dart

Lines changed: 5 additions & 825 deletions
Large diffs are not rendered by default.

lib/src/model/accessor.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,10 @@
44

55
import 'dart:convert';
66

7-
import 'package:analyzer/dart/element/element.dart';
87
import 'package:analyzer/dart/element/element2.dart';
98
import 'package:analyzer/source/line_info.dart';
109
// ignore: implementation_imports
1110
import 'package:analyzer/src/dart/element/member.dart' show ExecutableMember;
12-
// ignore: implementation_imports
13-
import 'package:analyzer/src/utilities/extensions/element.dart';
1411
import 'package:collection/collection.dart' show IterableExtension;
1512
import 'package:dartdoc/src/element_type.dart';
1613
import 'package:dartdoc/src/model/comment_referable.dart';
@@ -21,9 +18,6 @@ import 'package:dartdoc/src/warnings.dart';
2118

2219
/// Getters and setters.
2320
class Accessor extends ModelElement {
24-
@override
25-
// ignore: analyzer_use_new_elements
26-
PropertyAccessorElement get element => element2.asElement;
2721

2822
@override
2923
final PropertyAccessorElement2 element2;

lib/src/model/canonicalization.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,9 @@ Library? canonicalLibraryCandidate(ModelElement modelElement) {
7070
/// considers this element to be primarily 'from', and therefore, canonical.
7171
/// Still warn if the heuristic isn't very confident.
7272
final class _Canonicalization {
73-
final ModelElement _element;
73+
final ModelElement _modelElement;
7474

75-
_Canonicalization(this._element);
75+
_Canonicalization(this._modelElement);
7676

7777
/// Append an encoded form of the given [component] to the given [buffer].
7878
void _encode(StringBuffer buffer, String component) {
@@ -122,15 +122,15 @@ final class _Canonicalization {
122122
return buffer.toString();
123123
}
124124

125-
/// Calculates a candidate for the canonical library of [_element], among [libraries].
125+
/// Calculates a candidate for the canonical library of [_modelElement], among [libraries].
126126
Library canonicalLibraryCandidate(Iterable<Library> libraries) {
127-
var locationPieces = _getElementLocation(_element.element2)
127+
var locationPieces = _getElementLocation(_modelElement.element2)
128128
.split(_locationSplitter)
129129
.where((s) => s.isNotEmpty)
130130
.toSet();
131131
var scoredCandidates = libraries
132132
.map((library) => _scoreElementWithLibrary(
133-
library, _element.fullyQualifiedName, locationPieces))
133+
library, _modelElement.fullyQualifiedName, locationPieces))
134134
.toList(growable: false)
135135
..sort();
136136

@@ -141,11 +141,11 @@ final class _Canonicalization {
141141
var confidence = highestScore - secondHighestScore;
142142
final canonicalLibrary = librariesByScore.last;
143143

144-
if (confidence < _element.config.ambiguousReexportScorerMinConfidence) {
144+
if (confidence < _modelElement.config.ambiguousReexportScorerMinConfidence) {
145145
var libraryNames = librariesByScore.map((l) => l.name);
146146
var message = '$libraryNames -> ${canonicalLibrary.name} '
147147
'(confidence ${confidence.toStringAsPrecision(4)})';
148-
_element.warn(PackageWarning.ambiguousReexport,
148+
_modelElement.warn(PackageWarning.ambiguousReexport,
149149
message: message, extendedDebug: scoredCandidates.map((s) => '$s'));
150150
}
151151

lib/src/model/category.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +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-
// ignore_for_file: analyzer_use_new_elements
65

7-
import 'package:analyzer/dart/element/element.dart';
86
import 'package:analyzer/dart/element/element2.dart';
97
import 'package:analyzer/file_system/file_system.dart';
108
import 'package:dartdoc/src/dartdoc_options.dart';
@@ -80,8 +78,6 @@ class Category
8078
}
8179
}
8280

83-
@override
84-
Element? get element => null;
8581

8682
@override
8783
Element2? get element2 => null;

lib/src/model/class.dart

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +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';
65
import 'package:analyzer/dart/element/element2.dart';
7-
// ignore: implementation_imports
8-
import 'package:analyzer/src/utilities/extensions/element.dart';
96
import 'package:dartdoc/src/model/kind.dart';
107
import 'package:dartdoc/src/model/model.dart';
118

@@ -18,8 +15,6 @@ import 'package:dartdoc/src/model/model.dart';
1815
/// **inherited**: Filtered getters giving only inherited children.
1916
class Class extends InheritingContainer with Constructable, MixedInTypes {
2017
@override
21-
// ignore: analyzer_use_new_elements
22-
ClassElement get element => element2.asElement;
2318

2419
@override
2520
final ClassElement2 element2;

lib/src/model/constructor.dart

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@
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';
65
import 'package:analyzer/dart/element/element2.dart';
76
import 'package:analyzer/source/line_info.dart';
87
// ignore: implementation_imports
98
import 'package:analyzer/src/dart/element/element.dart';
10-
// ignore: implementation_imports
11-
import 'package:analyzer/src/utilities/extensions/element.dart';
129
import 'package:dartdoc/src/element_type.dart';
1310
import 'package:dartdoc/src/model/comment_referable.dart';
1411
import 'package:dartdoc/src/model/kind.dart';
@@ -17,8 +14,6 @@ import 'package:dartdoc/src/model_utils.dart';
1714

1815
class Constructor extends ModelElement with ContainerMember, TypeParameters {
1916
@override
20-
// ignore: analyzer_use_new_elements
21-
ConstructorElement get element => element2.asElement;
2217

2318
@override
2419
final ConstructorElement2 element2;
@@ -140,11 +135,11 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
140135
};
141136

142137
var parameterElements = parameters.map((parameter) {
143-
var element = dereferenceParameter(parameter.element2);
144-
return element == null ? parameter : getModelForElement2(element);
138+
var e = dereferenceParameter(parameter.element2);
139+
return e == null ? parameter : getModelForElement2(e);
145140
});
146141
return {
147-
for (var element in parameterElements) element.referenceName: element,
142+
for (var e in parameterElements) e.referenceName: e,
148143
for (var tp in typeParameters) tp.referenceName: tp,
149144
};
150145
}();

lib/src/model/container.dart

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@
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';
65
import 'package:analyzer/dart/element/element2.dart';
76
import 'package:analyzer/dart/element/scope.dart';
8-
// ignore: implementation_imports
9-
import 'package:analyzer/src/utilities/extensions/element.dart';
107
import 'package:dartdoc/src/model/comment_referable.dart';
118
import 'package:dartdoc/src/model/model.dart';
129
import 'package:dartdoc/src/model_utils.dart' as model_utils;
@@ -34,10 +31,6 @@ abstract class Container extends ModelElement
3431
with Categorization, TypeParameters {
3532
Container(super.library, super.packageGraph);
3633

37-
@override
38-
// ignore: analyzer_use_new_elements
39-
Element get element => element2.asElement!;
40-
4134
@override
4235
Element2 get element2;
4336

lib/src/model/documentation.dart

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import 'package:dartdoc/src/warnings.dart';
88
import 'package:markdown/markdown.dart' as md;
99

1010
class Documentation {
11-
final Warnable _element;
11+
final Warnable _warnable;
1212

13-
Documentation.forElement(this._element);
13+
Documentation.forElement(this._warnable);
1414

1515
/// The documentation text, rendered with the appropriate
1616
/// [DocumentationRenderer].
@@ -38,10 +38,10 @@ class Documentation {
3838
// set one. We have this awkward check to make sure we set both fields if
3939
// we'll need both fields.
4040
assert(
41-
_element.isCanonical,
42-
"generating docs for non-canonical element: '$_element' "
43-
"('${_element.runtimeType}', ${_element.hashCode}), representing "
44-
"'${_element.element2}'",
41+
_warnable.isCanonical,
42+
"generating docs for non-canonical element: '$_warnable' "
43+
"('${_warnable.runtimeType}', ${_warnable.hashCode}), representing "
44+
"'${_warnable.element2}'",
4545
);
4646
return _asHtml;
4747
}
@@ -55,7 +55,7 @@ class Documentation {
5555
if (_hasOneLinerBeenRendered || _hasHtmlBeenRendered) {
5656
return _asOneLiner;
5757
}
58-
_renderDocumentation(storeFullText: _element.isCanonical);
58+
_renderDocumentation(storeFullText: _warnable.isCanonical);
5959
_hasOneLinerBeenRendered = true;
6060
return _asOneLiner;
6161
}
@@ -65,7 +65,7 @@ class Documentation {
6565

6666
var renderResult = _renderer.render(parseResult,
6767
processFullDocs: storeFullText,
68-
sanitizeHtml: _element.config.sanitizeHtml);
68+
sanitizeHtml: _warnable.config.sanitizeHtml);
6969

7070
if (storeFullText) {
7171
_asHtml = renderResult.asHtml;
@@ -74,12 +74,12 @@ class Documentation {
7474
}
7575

7676
List<md.Node> _parseDocumentation({required bool processFullText}) {
77-
final text = _element.documentation;
77+
final text = _warnable.documentation;
7878
if (text == null || text.isEmpty) {
7979
return const [];
8080
}
81-
showWarningsForGenericsOutsideSquareBracketsBlocks(text, _element);
82-
var document = MarkdownDocument.withElementLinkResolver(_element);
81+
showWarningsForGenericsOutsideSquareBracketsBlocks(text, _warnable);
82+
var document = MarkdownDocument.withElementLinkResolver(_warnable);
8383
return document.parseMarkdownText(text, processFullText: processFullText);
8484
}
8585

lib/src/model/documentation_comment.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -720,8 +720,8 @@ mixin DocumentationComment
720720
firstOfPair.add(results[i]);
721721
}
722722
}
723-
for (var element in firstOfPair) {
724-
final result = element.group(2)!.trim();
723+
for (var e in firstOfPair) {
724+
final result = e.group(2)!.trim();
725725
if (result.isEmpty) {
726726
warn(PackageWarning.missingCodeBlockLanguage,
727727
message:

lib/src/model/dynamic.dart

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,14 @@
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';
65
import 'package:analyzer/dart/element/element2.dart';
7-
// ignore: implementation_imports
8-
import 'package:analyzer/src/utilities/extensions/element.dart';
96
import 'package:dartdoc/src/element_type.dart';
107
import 'package:dartdoc/src/model/comment_referable.dart';
118
import 'package:dartdoc/src/model/kind.dart';
129
import 'package:dartdoc/src/model/model.dart';
1310

1411
class Dynamic extends ModelElement with HasNoPage {
15-
@override
16-
// ignore: analyzer_use_new_elements
17-
Element get element => element2.asElement!;
18-
12+
1913
@override
2014
final Element2 element2;
2115

0 commit comments

Comments
 (0)