2
2
// for details. All rights reserved. Use of this source code is governed by a
3
3
// BSD-style license that can be found in the LICENSE file.
4
4
5
- // ignore_for_file: analyzer_use_new_elements
6
-
7
5
import 'package:analyzer/dart/element/element.dart' ;
8
6
import 'package:analyzer/dart/element/element2.dart' ;
9
7
import 'package:analyzer/source/line_info.dart' ;
@@ -17,7 +15,8 @@ import 'package:dartdoc/src/model_utils.dart';
17
15
18
16
class Constructor extends ModelElement with ContainerMember , TypeParameters {
19
17
@override
20
- ConstructorElement get element => element2.asElement;
18
+ // ignore: analyzer_use_new_elements
19
+ ConstructorElement get element => element2.asElement;
21
20
22
21
@override
23
22
final ConstructorElement2 element2;
@@ -26,7 +25,7 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
26
25
27
26
@override
28
27
CharacterLocation ? get characterLocation {
29
- if (element .isSynthetic) {
28
+ if (element2 .isSynthetic) {
30
29
// Make warnings for a synthetic constructor refer to somewhere reasonable
31
30
// since a synthetic constructor has no definition independent of the
32
31
// parent class.
@@ -39,11 +38,11 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
39
38
bool get isPublic {
40
39
if (! super .isPublic) return false ;
41
40
if (element2.hasPrivateName) return false ;
42
- var class_ = element.enclosingElement3 ;
41
+ var class_ = element2.enclosingElement2 ;
43
42
// Enums cannot be explicitly constructed or extended.
44
- if (class_ is EnumElement ) return false ;
45
- if (class_ is ClassElement ) {
46
- if (element .isFactory) return true ;
43
+ if (class_ is EnumElement2 ) return false ;
44
+ if (class_ is ClassElement2 ) {
45
+ if (element2 .isFactory) return true ;
47
46
if (class_.isSealed ||
48
47
(class_.isAbstract && class_.isFinal) ||
49
48
(class_.isAbstract && class_.isInterface)) {
@@ -62,7 +61,12 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
62
61
63
62
@override
64
63
Container get enclosingElement =>
65
- getModelFor (element.enclosingElement3, library) as Container ;
64
+ getModelFor2 (element2.enclosingElement2, library) as Container ;
65
+
66
+ @override
67
+ String get fileName =>
68
+ // TODO(srawlins): It would be great to use `new.html` as the file name.
69
+ isUnnamedConstructor ? '${enclosingElement .name }.html' : '$name .html' ;
66
70
67
71
@override
68
72
String get aboveSidebarPath => enclosingElement.sidebarPath;
@@ -77,47 +81,40 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
77
81
}
78
82
79
83
@override
80
- String get fullyQualifiedName {
81
- if (isUnnamedConstructor) return super .fullyQualifiedName;
82
- return '${library .name }.$name ' ;
83
- }
84
+ String get fullyQualifiedName => '${library .name }.$name ' ;
84
85
85
86
@override
86
- bool get isConst => element .isConst;
87
+ bool get isConst => element2 .isConst;
87
88
88
- bool get isUnnamedConstructor => name == enclosingElement.name ;
89
+ bool get isUnnamedConstructor => element2.name3 == 'new' ;
89
90
90
- bool get isFactory => element .isFactory;
91
+ bool get isFactory => element2 .isFactory;
91
92
92
93
@override
93
94
Kind get kind => Kind .constructor;
94
95
95
- late final Callable modelType = getTypeFor (element.type, library) as Callable ;
96
+ late final Callable modelType =
97
+ getTypeFor (element2.type, library) as Callable ;
96
98
97
99
@override
98
- String get name {
99
- // TODO(jcollins-g): After the old lookup code is retired, rationalize
100
- // [name] around the conventions used in referenceChildren and replace
101
- // code there and elsewhere with simple references to the name.
102
- var constructorName = element.name;
103
- if (constructorName.isEmpty) {
104
- return enclosingElement.name;
105
- }
106
- return '${enclosingElement .name }.$constructorName ' ;
107
- }
100
+ String get name =>
101
+ // TODO(jcollins-g): After the old lookup code is retired, rationalize
102
+ // [name] around the conventions used in referenceChildren and replace
103
+ // code there and elsewhere with simple references to the name.
104
+ '${enclosingElement .name }.${element2 .name3 }' ;
108
105
109
106
@override
110
107
String get nameWithGenerics {
111
- var constructorName = element.name ;
112
- if (constructorName.isEmpty ) {
108
+ var constructorName = element2.name3 ! ;
109
+ if (constructorName == 'new' ) {
113
110
return '${enclosingElement .name }$genericParameters ' ;
114
111
}
115
112
return '${enclosingElement .name }$genericParameters .$constructorName ' ;
116
113
}
117
114
118
115
String ? get shortName {
119
116
if (name.contains ('.' )) {
120
- return name.substring (element.enclosingElement3.name .length + 1 );
117
+ return name.substring (element2.enclosingElement2.name3 ! .length + 1 );
121
118
} else {
122
119
return name;
123
120
}
@@ -126,17 +123,17 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
126
123
@override
127
124
late final Map <String , CommentReferable > referenceChildren = () {
128
125
// Find the element that [parameter] is _really_ referring to.
129
- Element ? dereferenceParameter (ParameterElement ? parameter) =>
126
+ Element2 ? dereferenceParameter (FormalParameterElement ? parameter) =>
130
127
switch (parameter) {
131
- FieldFormalParameterElement () => parameter.field ,
132
- SuperFormalParameterElement () =>
133
- dereferenceParameter (parameter.superConstructorParameter ),
128
+ FieldFormalParameterElement2 () => parameter.field2 ,
129
+ SuperFormalParameterElement2 () =>
130
+ dereferenceParameter (parameter.superConstructorParameter2 ),
134
131
_ => parameter
135
132
};
136
133
137
134
var parameterElements = parameters.map ((parameter) {
138
- var element = dereferenceParameter (parameter.element );
139
- return element == null ? parameter : getModelForElement (element);
135
+ var element = dereferenceParameter (parameter.element2 );
136
+ return element == null ? parameter : getModelForElement2 (element);
140
137
});
141
138
return {
142
139
for (var element in parameterElements) element.referenceName: element,
@@ -146,5 +143,5 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
146
143
147
144
@override
148
145
String get referenceName =>
149
- isUnnamedConstructor ? enclosingElement.name : element.name ;
146
+ isUnnamedConstructor ? enclosingElement.name : element2.name3 ! ;
150
147
}
0 commit comments