55import 'dart:collection' ;
66
77import 'package:analysis_server/src/protocol_server.dart'
8- show TypeHierarchyItem, convertElement ;
8+ show TypeHierarchyItem, convertElement2 ;
99import 'package:analysis_server/src/services/search/hierarchy.dart' ;
1010import 'package:analysis_server/src/services/search/search_engine.dart' ;
11- import 'package:analyzer/dart/element/element .dart' ;
11+ import 'package:analyzer/dart/element/element2 .dart' ;
1212import 'package:analyzer/dart/element/type.dart' ;
13- import 'package:analyzer/src/utilities/extensions/element.dart' ;
1413
15- /// A computer for a type hierarchy of an [Element ] .
14+ /// A computer for a type hierarchy of an [Element2 ] .
1615class TypeHierarchyComputer {
1716 final SearchEngine _searchEngine;
1817 final TypeHierarchyComputerHelper helper;
1918
2019 final List <TypeHierarchyItem > _items = < TypeHierarchyItem > [];
21- final List <InterfaceElement > _itemClassElements = [];
22- final Map <Element , TypeHierarchyItem > _elementItemMap =
23- HashMap <Element , TypeHierarchyItem >();
20+ final List <InterfaceElement2 > _itemClassElements = [];
21+ final Map <Element2 , TypeHierarchyItem > _elementItemMap =
22+ HashMap <Element2 , TypeHierarchyItem >();
2423
25- TypeHierarchyComputer (this ._searchEngine, Element pivotElement)
24+ TypeHierarchyComputer (this ._searchEngine, Element2 pivotElement)
2625 : helper = TypeHierarchyComputerHelper .fromElement (pivotElement);
2726
2827 /// Returns the computed type hierarchy, maybe `null` .
@@ -50,39 +49,39 @@ class TypeHierarchyComputer {
5049 Future <void > _createSubclasses (
5150 TypeHierarchyItem item,
5251 int itemId,
53- InterfaceElement classElement,
52+ InterfaceElement2 classElement,
5453 SearchEngineCache searchEngineCache,
5554 ) async {
5655 var subElements = await getDirectSubClasses (
5756 _searchEngine,
58- classElement.asElement2 ,
57+ classElement,
5958 searchEngineCache,
6059 );
6160 var subItemIds = < int > [];
6261 for (var subElement in subElements) {
6362 // check for recursion
64- var subItem = _elementItemMap[subElement.asElement ];
63+ var subItem = _elementItemMap[subElement];
6564 if (subItem != null ) {
6665 var id = _items.indexOf (subItem);
6766 item.subclasses.add (id);
6867 continue ;
6968 }
7069 // create a subclass item
71- var subMemberElement = helper.findMemberElement (subElement.asElement );
72- var subMemberElementDeclared = subMemberElement? .nonSynthetic ;
70+ var subMemberElement = helper.findMemberElement (subElement);
71+ var subMemberElementDeclared = subMemberElement? .nonSynthetic2 ;
7372 subItem = TypeHierarchyItem (
74- convertElement (subElement.asElement ),
73+ convertElement2 (subElement),
7574 memberElement:
7675 subMemberElementDeclared != null
77- ? convertElement (subMemberElementDeclared)
76+ ? convertElement2 (subMemberElementDeclared)
7877 : null ,
7978 superclass: itemId,
8079 );
8180 var subItemId = _items.length;
8281 // remember
83- _elementItemMap[subElement.asElement ] = subItem;
82+ _elementItemMap[subElement] = subItem;
8483 _items.add (subItem);
85- _itemClassElements.add (subElement.asElement );
84+ _itemClassElements.add (subElement);
8685 // add to hierarchy
8786 item.subclasses.add (subItemId);
8887 subItemIds.add (subItemId);
@@ -101,7 +100,7 @@ class TypeHierarchyComputer {
101100 }
102101
103102 int _createSuperItem (
104- InterfaceElement classElement,
103+ InterfaceElement2 classElement,
105104 List <DartType >? typeArguments,
106105 ) {
107106 // check for recursion
@@ -121,13 +120,13 @@ class TypeHierarchyComputer {
121120 displayName = '${classElement .displayName }<$typeArgumentsStr >' ;
122121 }
123122 var memberElement = helper.findMemberElement (classElement);
124- var memberElementDeclared = memberElement? .nonSynthetic ;
123+ var memberElementDeclared = memberElement? .nonSynthetic2 ;
125124 item = TypeHierarchyItem (
126- convertElement (classElement),
125+ convertElement2 (classElement),
127126 displayName: displayName,
128127 memberElement:
129128 memberElementDeclared != null
130- ? convertElement (memberElementDeclared)
129+ ? convertElement2 (memberElementDeclared)
131130 : null ,
132131 );
133132 _elementItemMap[classElement] = item;
@@ -140,19 +139,19 @@ class TypeHierarchyComputer {
140139 var superType = classElement.supertype;
141140 if (superType != null ) {
142141 item.superclass = _createSuperItem (
143- superType.element ,
142+ superType.element3 ,
144143 superType.typeArguments,
145144 );
146145 }
147146 }
148147 // mixins
149148 for (var type in classElement.mixins) {
150- var id = _createSuperItem (type.element , type.typeArguments);
149+ var id = _createSuperItem (type.element3 , type.typeArguments);
151150 item.mixins.add (id);
152151 }
153152 // interfaces
154153 for (var type in classElement.interfaces) {
155- var id = _createSuperItem (type.element , type.typeArguments);
154+ var id = _createSuperItem (type.element3 , type.typeArguments);
156155 item.interfaces.add (id);
157156 }
158157 // done
@@ -161,12 +160,12 @@ class TypeHierarchyComputer {
161160}
162161
163162class TypeHierarchyComputerHelper {
164- final Element pivotElement;
165- final LibraryElement pivotLibrary;
163+ final Element2 pivotElement;
164+ final LibraryElement2 pivotLibrary;
166165 final ElementKind pivotKind;
167166 final String ? pivotName;
168167 final bool pivotFieldFinal;
169- final InterfaceElement ? pivotClass;
168+ final InterfaceElement2 ? pivotClass;
170169
171170 TypeHierarchyComputerHelper (
172171 this .pivotElement,
@@ -177,85 +176,85 @@ class TypeHierarchyComputerHelper {
177176 this .pivotClass,
178177 );
179178
180- factory TypeHierarchyComputerHelper .fromElement (Element pivotElement) {
179+ factory TypeHierarchyComputerHelper .fromElement (Element2 pivotElement) {
181180 // try to find enclosing ClassElement
182- Element ? element = pivotElement;
181+ Element2 ? element = pivotElement;
183182 bool pivotFieldFinal = false ;
184- if (pivotElement is FieldElement ) {
183+ if (pivotElement is FieldElement2 ) {
185184 pivotFieldFinal = pivotElement.isFinal;
186- element = pivotElement.enclosingElement3 ;
185+ element = pivotElement.enclosingElement2 ;
187186 }
188- if (pivotElement is ExecutableElement ) {
189- element = pivotElement.enclosingElement3 ;
187+ if (pivotElement is ExecutableElement2 ) {
188+ element = pivotElement.enclosingElement2 ;
190189 }
191- InterfaceElement ? pivotClass;
192- if (element is InterfaceElement ) {
190+ InterfaceElement2 ? pivotClass;
191+ if (element is InterfaceElement2 ) {
193192 pivotClass = element;
194193 }
195194
196195 return TypeHierarchyComputerHelper (
197196 pivotElement,
198- pivotElement.library ! ,
197+ pivotElement.library2 ! ,
199198 pivotElement.kind,
200- pivotElement.name ,
199+ pivotElement.name3 ,
201200 pivotFieldFinal,
202201 pivotClass,
203202 );
204203 }
205204
206- ExecutableElement ? findMemberElement (InterfaceElement clazz) {
205+ ExecutableElement2 ? findMemberElement (InterfaceElement2 clazz) {
207206 // Members of extension types don't override anything.
208207 // They redeclare, and resolved statically.
209- if (pivotClass is ExtensionTypeElement || clazz is ExtensionTypeElement ) {
208+ if (pivotClass is ExtensionTypeElement2 || clazz is ExtensionTypeElement2 ) {
210209 return null ;
211210 }
212211
213212 var pivotName = this .pivotName;
214213 if (pivotName == null ) {
215214 return null ;
216215 }
217- ExecutableElement ? result;
216+ ExecutableElement2 ? result;
218217 // try to find in the class itself
219218 if (pivotKind == ElementKind .METHOD ) {
220- result = clazz.getMethod (pivotName);
219+ result = clazz.getMethod2 (pivotName);
221220 } else if (pivotKind == ElementKind .GETTER ) {
222- result = clazz.getGetter (pivotName);
221+ result = clazz.getGetter2 (pivotName);
223222 } else if (pivotKind == ElementKind .SETTER ) {
224- result = clazz.getSetter (pivotName);
223+ result = clazz.getSetter2 (pivotName);
225224 } else if (pivotKind == ElementKind .FIELD ) {
226- result = clazz.getGetter (pivotName);
225+ result = clazz.getGetter2 (pivotName);
227226 if (result == null && ! pivotFieldFinal) {
228- result = clazz.getSetter (pivotName);
227+ result = clazz.getSetter2 (pivotName);
229228 }
230229 }
231- if (result != null && result.isAccessibleIn (pivotLibrary)) {
230+ if (result != null && result.isAccessibleIn2 (pivotLibrary)) {
232231 return result;
233232 }
234233 // try to find in the class mixin
235234 for (var mixin in clazz.mixins.reversed) {
236- var mixinElement = mixin .element ;
235+ var mixinElement = mixin .element3 ;
237236 if (pivotKind == ElementKind .METHOD ) {
238- result = mixinElement.augmented . lookUpMethod (
237+ result = mixinElement.lookUpMethod2 (
239238 name: pivotName,
240239 library: pivotLibrary,
241240 );
242241 } else if (pivotKind == ElementKind .GETTER ) {
243- result = mixinElement.augmented . lookUpGetter (
242+ result = mixinElement.lookUpGetter2 (
244243 name: pivotName,
245244 library: pivotLibrary,
246245 );
247246 } else if (pivotKind == ElementKind .SETTER ) {
248- result = mixinElement.augmented . lookUpSetter (
247+ result = mixinElement.lookUpSetter2 (
249248 name: pivotName,
250249 library: pivotLibrary,
251250 );
252251 } else if (pivotKind == ElementKind .FIELD ) {
253- result = mixinElement.augmented . lookUpGetter (
252+ result = mixinElement.lookUpGetter2 (
254253 name: pivotName,
255254 library: pivotLibrary,
256255 );
257256 if (result == null && ! pivotFieldFinal) {
258- result = mixinElement.augmented . lookUpSetter (
257+ result = mixinElement.lookUpSetter2 (
259258 name: pivotName,
260259 library: pivotLibrary,
261260 );
0 commit comments