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' ;
6+ import 'package:analyzer/dart/element/element2.dart' ;
87import 'package:analyzer/source/line_info.dart' ;
98import 'package:dartdoc/src/element_type.dart' ;
109import 'package:dartdoc/src/model/comment_referable.dart' ;
@@ -14,13 +13,19 @@ import 'package:dartdoc/src/model_utils.dart';
1413
1514class Constructor extends ModelElement with ContainerMember , TypeParameters {
1615 @override
17- final ConstructorElement element;
16+ // ignore: analyzer_use_new_elements
17+ ConstructorElement get element =>
18+ // ignore: analyzer_use_new_elements
19+ element2.firstFragment as ConstructorElement ;
20+
21+ @override
22+ final ConstructorElement2 element2;
1823
19- Constructor (this .element , super .library, super .packageGraph);
24+ Constructor (this .element2 , super .library, super .packageGraph);
2025
2126 @override
2227 CharacterLocation ? get characterLocation {
23- if (element .isSynthetic) {
28+ if (element2 .isSynthetic) {
2429 // Make warnings for a synthetic constructor refer to somewhere reasonable
2530 // since a synthetic constructor has no definition independent of the
2631 // parent class.
@@ -33,11 +38,11 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
3338 bool get isPublic {
3439 if (! super .isPublic) return false ;
3540 if (element2.hasPrivateName) return false ;
36- var class_ = element.enclosingElement3 ;
41+ var class_ = element2.enclosingElement2 ;
3742 // Enums cannot be explicitly constructed or extended.
38- if (class_ is EnumElement ) return false ;
39- if (class_ is ClassElement ) {
40- if (element .isFactory) return true ;
43+ if (class_ is EnumElement2 ) return false ;
44+ if (class_ is ClassElement2 ) {
45+ if (element2 .isFactory) return true ;
4146 if (class_.isSealed ||
4247 (class_.isAbstract && class_.isFinal) ||
4348 (class_.isAbstract && class_.isInterface)) {
@@ -56,7 +61,12 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
5661
5762 @override
5863 Container get enclosingElement =>
59- 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' ;
6070
6171 @override
6272 String get aboveSidebarPath => enclosingElement.sidebarPath;
@@ -71,47 +81,40 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
7181 }
7282
7383 @override
74- String get fullyQualifiedName {
75- if (isUnnamedConstructor) return super .fullyQualifiedName;
76- return '${library .name }.$name ' ;
77- }
84+ String get fullyQualifiedName => '${library .name }.$name ' ;
7885
7986 @override
80- bool get isConst => element .isConst;
87+ bool get isConst => element2 .isConst;
8188
82- bool get isUnnamedConstructor => name == enclosingElement.name ;
89+ bool get isUnnamedConstructor => element2.name3 == 'new' ;
8390
84- bool get isFactory => element .isFactory;
91+ bool get isFactory => element2 .isFactory;
8592
8693 @override
8794 Kind get kind => Kind .constructor;
8895
89- late final Callable modelType = getTypeFor (element.type, library) as Callable ;
96+ late final Callable modelType =
97+ getTypeFor (element2.type, library) as Callable ;
9098
9199 @override
92- String get name {
93- // TODO(jcollins-g): After the old lookup code is retired, rationalize
94- // [name] around the conventions used in referenceChildren and replace
95- // code there and elsewhere with simple references to the name.
96- var constructorName = element.name;
97- if (constructorName.isEmpty) {
98- return enclosingElement.name;
99- }
100- return '${enclosingElement .name }.$constructorName ' ;
101- }
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 }' ;
102105
103106 @override
104107 String get nameWithGenerics {
105- var constructorName = element.name ;
106- if (constructorName.isEmpty ) {
108+ var constructorName = element2.name3 ! ;
109+ if (constructorName == 'new' ) {
107110 return '${enclosingElement .name }$genericParameters ' ;
108111 }
109112 return '${enclosingElement .name }$genericParameters .$constructorName ' ;
110113 }
111114
112115 String ? get shortName {
113116 if (name.contains ('.' )) {
114- return name.substring (element.enclosingElement3.name .length + 1 );
117+ return name.substring (element2.enclosingElement2.name3 ! .length + 1 );
115118 } else {
116119 return name;
117120 }
@@ -120,17 +123,17 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
120123 @override
121124 late final Map <String , CommentReferable > referenceChildren = () {
122125 // Find the element that [parameter] is _really_ referring to.
123- Element ? dereferenceParameter (ParameterElement ? parameter) =>
126+ Element2 ? dereferenceParameter (FormalParameterElement ? parameter) =>
124127 switch (parameter) {
125- FieldFormalParameterElement () => parameter.field ,
126- SuperFormalParameterElement () =>
127- dereferenceParameter (parameter.superConstructorParameter ),
128+ FieldFormalParameterElement2 () => parameter.field2 ,
129+ SuperFormalParameterElement2 () =>
130+ dereferenceParameter (parameter.superConstructorParameter2 ),
128131 _ => parameter
129132 };
130133
131134 var parameterElements = parameters.map ((parameter) {
132- var element = dereferenceParameter (parameter.element );
133- return element == null ? parameter : getModelForElement (element);
135+ var element = dereferenceParameter (parameter.element2 );
136+ return element == null ? parameter : getModelForElement2 (element);
134137 });
135138 return {
136139 for (var element in parameterElements) element.referenceName: element,
@@ -140,5 +143,5 @@ class Constructor extends ModelElement with ContainerMember, TypeParameters {
140143
141144 @override
142145 String get referenceName =>
143- isUnnamedConstructor ? enclosingElement.name : element.name ;
146+ isUnnamedConstructor ? enclosingElement.name : element2.name3 ! ;
144147}
0 commit comments