Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Unified Diff: pkg/analysis_server/lib/src/search/type_hierarchy.dart

Issue 2233633003: Convert to async/await parts that cause strong mode warnings. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/services/search/hierarchy.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/search/type_hierarchy.dart
diff --git a/pkg/analysis_server/lib/src/search/type_hierarchy.dart b/pkg/analysis_server/lib/src/search/type_hierarchy.dart
index 29af16ef4f4dbd46af2b5c59fe8c46f9fc3fdb27..fad37c46fc27be119290a607a58a4c530c1158c5 100644
--- a/pkg/analysis_server/lib/src/search/type_hierarchy.dart
+++ b/pkg/analysis_server/lib/src/search/type_hierarchy.dart
@@ -76,42 +76,41 @@ class TypeHierarchyComputer {
}
Future _createSubclasses(
- TypeHierarchyItem item, int itemId, InterfaceType type) {
- var future = getDirectSubClasses(_searchEngine, type.element);
- return future.then((Set<ClassElement> subElements) {
- List<int> subItemIds = <int>[];
- for (ClassElement subElement in subElements) {
- // check for recursion
- TypeHierarchyItem subItem = _elementItemMap[subElement];
- if (subItem != null) {
- int id = _items.indexOf(subItem);
- item.subclasses.add(id);
- continue;
- }
- // create a subclass item
- ExecutableElement subMemberElement = _findMemberElement(subElement);
- subItem = new TypeHierarchyItem(convertElement(subElement),
- memberElement: subMemberElement != null
- ? convertElement(subMemberElement)
- : null,
- superclass: itemId);
- int subItemId = _items.length;
- // remember
- _elementItemMap[subElement] = subItem;
- _items.add(subItem);
- _itemClassElements.add(subElement);
- // add to hierarchy
- item.subclasses.add(subItemId);
- subItemIds.add(subItemId);
+ TypeHierarchyItem item, int itemId, InterfaceType type) async {
+ Set<ClassElement> subElements =
+ await getDirectSubClasses(_searchEngine, type.element);
+ List<int> subItemIds = <int>[];
+ for (ClassElement subElement in subElements) {
+ // check for recursion
+ TypeHierarchyItem subItem = _elementItemMap[subElement];
+ if (subItem != null) {
+ int id = _items.indexOf(subItem);
+ item.subclasses.add(id);
+ continue;
}
- // compute subclasses of subclasses
- return Future.forEach(subItemIds, (int subItemId) {
- TypeHierarchyItem subItem = _items[subItemId];
- ClassElement subItemElement = _itemClassElements[subItemId];
- InterfaceType subType = subItemElement.type;
- return _createSubclasses(subItem, subItemId, subType);
- });
- });
+ // create a subclass item
+ ExecutableElement subMemberElement = _findMemberElement(subElement);
+ subItem = new TypeHierarchyItem(convertElement(subElement),
+ memberElement: subMemberElement != null
+ ? convertElement(subMemberElement)
+ : null,
+ superclass: itemId);
+ int subItemId = _items.length;
+ // remember
+ _elementItemMap[subElement] = subItem;
+ _items.add(subItem);
+ _itemClassElements.add(subElement);
+ // add to hierarchy
+ item.subclasses.add(subItemId);
+ subItemIds.add(subItemId);
+ }
+ // compute subclasses of subclasses
+ for (int subItemId in subItemIds) {
+ TypeHierarchyItem subItem = _items[subItemId];
+ ClassElement subItemElement = _itemClassElements[subItemId];
+ InterfaceType subType = subItemElement.type;
+ await _createSubclasses(subItem, subItemId, subType);
+ }
}
int _createSuperItem(InterfaceType type) {
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/services/search/hierarchy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698