Skip to content

Commit 814fbec

Browse files
authored
Migrate TypeParameter and Warnings element model (#3983)
1 parent 237cd35 commit 814fbec

File tree

4 files changed

+60
-23
lines changed

4 files changed

+60
-23
lines changed

lib/src/generator/templates.runtime_renderers.dart

+38-2
Original file line numberDiff line numberDiff line change
@@ -20353,7 +20353,7 @@ class _Renderer_Package extends RendererBase<Package> {
2035320353
}
2035420354
}
2035520355

20356-
String renderIndex(PackageTemplateData context, Template template) {
20356+
String renderError(PackageTemplateData context, Template template) {
2035720357
var buffer = StringBuffer();
2035820358
_render_PackageTemplateData(context, template.ast, template, buffer);
2035920359
return buffer.toString();
@@ -20716,7 +20716,7 @@ String renderSearchPage(PackageTemplateData context, Template template) {
2071620716
return buffer.toString();
2071720717
}
2071820718

20719-
String renderError(PackageTemplateData context, Template template) {
20719+
String renderIndex(PackageTemplateData context, Template template) {
2072020720
var buffer = StringBuffer();
2072120721
_render_PackageTemplateData(context, template.ast, template, buffer);
2072220722
return buffer.toString();
@@ -24609,6 +24609,34 @@ class _Renderer_TypeParameter extends RendererBase<TypeParameter> {
2460924609
);
2461024610
},
2461124611
),
24612+
'element2': Property(
24613+
getValue: (CT_ c) => c.element2,
24614+
renderVariable:
24615+
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
24616+
self.renderSimpleVariable(
24617+
c,
24618+
remainingNames,
24619+
'TypeParameterElement2',
24620+
),
24621+
24622+
isNullValue: (CT_ c) => false,
24623+
24624+
renderValue: (
24625+
CT_ c,
24626+
RendererBase<CT_> r,
24627+
List<MustachioNode> ast,
24628+
StringSink sink,
24629+
) {
24630+
renderSimple(
24631+
c.element2,
24632+
ast,
24633+
r.template,
24634+
sink,
24635+
parent: r,
24636+
getters: _invisibleGetters['TypeParameterElement2']!,
24637+
);
24638+
},
24639+
),
2461224640
'enclosingElement': Property(
2461324641
getValue: (CT_ c) => c.enclosingElement,
2461424642
renderVariable: (
@@ -27051,6 +27079,14 @@ const _invisibleGetters = {
2705127079
'name',
2705227080
'runtimeType',
2705327081
},
27082+
'TypeParameterElement2': {
27083+
'baseElement',
27084+
'bound',
27085+
'firstFragment',
27086+
'fragments',
27087+
'hashCode',
27088+
'runtimeType',
27089+
},
2705427090
'int': {
2705527091
'bitLength',
2705627092
'hashCode',

lib/src/model/model_element.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,8 @@ abstract class ModelElement
352352
enclosingContainer: enclosingContainer,
353353
originalMember: originalMember,
354354
),
355-
TypeParameterElement() => TypeParameter(e, library, packageGraph),
355+
TypeParameterElement() =>
356+
TypeParameter(e.asElement2, library, packageGraph),
356357
_ => throw UnimplementedError('Unknown type ${e.runtimeType}'),
357358
};
358359
}

lib/src/model/type_parameter.dart

+19-18
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,29 @@
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 'package:analyzer/dart/element/element.dart';
6+
import 'package:analyzer/dart/element/element2.dart';
7+
// ignore: implementation_imports
8+
import 'package:analyzer/src/dart/element/element.dart';
89
import 'package:dartdoc/src/element_type.dart';
910
import 'package:dartdoc/src/model/comment_referable.dart';
1011
import 'package:dartdoc/src/model/kind.dart';
1112
import 'package:dartdoc/src/model/model.dart';
1213

1314
class TypeParameter extends ModelElement with HasNoPage {
1415
@override
15-
final TypeParameterElement element;
16+
// ignore: analyzer_use_new_elements
17+
TypeParameterElement get element =>
18+
(element2 as TypeParameterElementImpl2).firstFragment;
19+
20+
@override
21+
final TypeParameterElement2 element2;
1622

17-
TypeParameter(this.element, super.library, super.packageGraph);
23+
TypeParameter(this.element2, super.library, super.packageGraph);
1824

1925
@override
2026
ModelElement get enclosingElement =>
21-
getModelFor(element.enclosingElement3!, library);
27+
getModelFor2(element2.enclosingElement2!, library);
2228

2329
/// [TypeParameter]s don't have documentation pages, and don't link to the
2430
/// element on which they are declared.
@@ -31,27 +37,22 @@ class TypeParameter extends ModelElement with HasNoPage {
3137
Kind get kind => Kind.typeParameter;
3238

3339
ElementType? get boundType {
34-
var bound = element.bound;
40+
var bound = element2.bound;
3541
return bound == null ? null : getTypeFor(bound, library);
3642
}
3743

3844
@override
3945
bool get hasParameters => false;
4046

4147
@override
42-
String get name => element.bound != null
43-
? '${element.name} extends ${boundType!.nameWithGenerics}'
44-
: element.name;
45-
46-
String? _linkedName;
48+
String get name => element2.bound != null
49+
? '${element2.name3} extends ${boundType!.nameWithGenerics}'
50+
: element2.name3!;
4751

4852
@override
49-
String get linkedName {
50-
_linkedName ??= element.bound != null
51-
? '${element.name} extends ${boundType!.linkedName}'
52-
: element.name;
53-
return _linkedName!;
54-
}
53+
String get linkedName => element2.bound != null
54+
? '${element2.name3} extends ${boundType!.linkedName}'
55+
: element2.name3!;
5556

5657
@override
5758
late final Map<String, CommentReferable> referenceChildren = () {
@@ -64,7 +65,7 @@ class TypeParameter extends ModelElement with HasNoPage {
6465
Iterable<CommentReferable> get referenceParents => [enclosingElement];
6566

6667
@override
67-
String get referenceName => element.name;
68+
String get referenceName => element2.name3!;
6869
}
6970

7071
/// A mixin for [ModelElement]s which have type parameters.

lib/src/warnings.dart

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
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:io';
86
import 'dart:math' as math;
97

@@ -98,6 +96,7 @@ List<DartdocOption<Object?>> createPackageWarningOptions(
9896
/// Something that package warnings can be reported on. Optionally associated
9997
/// with an analyzer [element].
10098
mixin Warnable implements CommentReferable, Documentable, Locatable {
99+
// ignore: analyzer_use_new_elements
101100
Element? get element;
102101

103102
Element2? get element2;

0 commit comments

Comments
 (0)