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-
75import 'package:analyzer/dart/element/element.dart' ;
86import 'package:analyzer/dart/element/element2.dart' ;
97import 'package:analyzer/source/line_info.dart' ;
@@ -17,7 +15,8 @@ import 'package:dartdoc/src/model_utils.dart';
1715
1816class Constructor extends ModelElement with ContainerMember , TypeParameters {
1917 @override
20- ConstructorElement get element => element2.asElement;
18+ // ignore: analyzer_use_new_elements
19+ ConstructorElement get element => element2.asElement;
2120
2221 @override
2322 final ConstructorElement2 element2;
@@ -26,7 +25,7 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
2625
2726 @override
2827 CharacterLocation ? get characterLocation {
29- if (element .isSynthetic) {
28+ if (element2 .isSynthetic) {
3029 // Make warnings for a synthetic constructor refer to somewhere reasonable
3130 // since a synthetic constructor has no definition independent of the
3231 // parent class.
@@ -39,11 +38,11 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
3938 bool get isPublic {
4039 if (! super .isPublic) return false ;
4140 if (element2.hasPrivateName) return false ;
42- var class_ = element.enclosingElement3 ;
41+ var class_ = element2.enclosingElement2 ;
4342 // 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 ;
4746 if (class_.isSealed ||
4847 (class_.isAbstract && class_.isFinal) ||
4948 (class_.isAbstract && class_.isInterface)) {
@@ -62,7 +61,12 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
6261
6362 @override
6463 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' ;
6670
6771 @override
6872 String get aboveSidebarPath => enclosingElement.sidebarPath;
@@ -77,47 +81,40 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
7781 }
7882
7983 @override
80- String get fullyQualifiedName {
81- if (isUnnamedConstructor) return super .fullyQualifiedName;
82- return '${library .name }.$name ' ;
83- }
84+ String get fullyQualifiedName => '${library .name }.$name ' ;
8485
8586 @override
86- bool get isConst => element .isConst;
87+ bool get isConst => element2 .isConst;
8788
88- bool get isUnnamedConstructor => name == enclosingElement.name ;
89+ bool get isUnnamedConstructor => element2.name3 == 'new' ;
8990
90- bool get isFactory => element .isFactory;
91+ bool get isFactory => element2 .isFactory;
9192
9293 @override
9394 Kind get kind => Kind .constructor;
9495
95- late final Callable modelType = getTypeFor (element.type, library) as Callable ;
96+ late final Callable modelType =
97+ getTypeFor (element2.type, library) as Callable ;
9698
9799 @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 }' ;
108105
109106 @override
110107 String get nameWithGenerics {
111- var constructorName = element.name ;
112- if (constructorName.isEmpty ) {
108+ var constructorName = element2.name3 ! ;
109+ if (constructorName == 'new' ) {
113110 return '${enclosingElement .name }$genericParameters ' ;
114111 }
115112 return '${enclosingElement .name }$genericParameters .$constructorName ' ;
116113 }
117114
118115 String ? get shortName {
119116 if (name.contains ('.' )) {
120- return name.substring (element.enclosingElement3.name .length + 1 );
117+ return name.substring (element2.enclosingElement2.name3 ! .length + 1 );
121118 } else {
122119 return name;
123120 }
@@ -126,17 +123,17 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
126123 @override
127124 late final Map <String , CommentReferable > referenceChildren = () {
128125 // Find the element that [parameter] is _really_ referring to.
129- Element ? dereferenceParameter (ParameterElement ? parameter) =>
126+ Element2 ? dereferenceParameter (FormalParameterElement ? parameter) =>
130127 switch (parameter) {
131- FieldFormalParameterElement () => parameter.field ,
132- SuperFormalParameterElement () =>
133- dereferenceParameter (parameter.superConstructorParameter ),
128+ FieldFormalParameterElement2 () => parameter.field2 ,
129+ SuperFormalParameterElement2 () =>
130+ dereferenceParameter (parameter.superConstructorParameter2 ),
134131 _ => parameter
135132 };
136133
137134 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);
140137 });
141138 return {
142139 for (var element in parameterElements) element.referenceName: element,
@@ -146,5 +143,5 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
146143
147144 @override
148145 String get referenceName =>
149- isUnnamedConstructor ? enclosingElement.name : element.name ;
146+ isUnnamedConstructor ? enclosingElement.name : element2.name3 ! ;
150147}
0 commit comments