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

Unified Diff: pkg/analysis_server/lib/src/services/refactoring/rename_unit_member.dart

Issue 913903002: Use async/await in refactorings. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 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 | « pkg/analysis_server/lib/src/services/refactoring/rename_import.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/services/refactoring/rename_unit_member.dart
diff --git a/pkg/analysis_server/lib/src/services/refactoring/rename_unit_member.dart b/pkg/analysis_server/lib/src/services/refactoring/rename_unit_member.dart
index 9a9d65e0483adaf913d3acafbf9e36d75b74294a..188092805b7ab8e85b319b868cf30b9ec1b2dc9b 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/rename_unit_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/rename_unit_member.dart
@@ -140,16 +140,13 @@ class _RenameUnitMemberValidator {
elementKind = element.kind;
}
- Future<RefactoringStatus> validate() {
+ Future<RefactoringStatus> validate() async {
_validateWillConflict();
- List<Future> futures = <Future>[];
if (isRename) {
- futures.add(_validateWillBeShadowed());
+ await _validateWillBeShadowed();
}
- futures.add(_validateWillShadow());
- return Future.wait(futures).then((_) {
- return result;
- });
+ await _validateWillShadow();
+ return result;
}
/**
@@ -179,29 +176,27 @@ class _RenameUnitMemberValidator {
/**
* Validates if any usage of [element] renamed to [name] will be shadowed.
*/
- Future _validateWillBeShadowed() {
+ Future _validateWillBeShadowed() async {
if (!isRename) {
- return new Future.value();
+ return;
}
- return searchEngine.searchReferences(element).then((references) {
- for (SearchMatch reference in references) {
- Element refElement = reference.element;
- ClassElement refClass =
- refElement.getAncestor((e) => e is ClassElement);
- if (refClass != null) {
- visitChildren(refClass, (shadow) {
- if (hasDisplayName(shadow, name)) {
- String message = format(
- "Reference to renamed {0} will be shadowed by {1} '{2}'.",
- getElementKindName(element),
- getElementKindName(shadow),
- getElementQualifiedName(shadow));
- result.addError(message, newLocation_fromElement(shadow));
- }
- });
- }
+ List<SearchMatch> references = await searchEngine.searchReferences(element);
+ for (SearchMatch reference in references) {
+ Element refElement = reference.element;
+ ClassElement refClass = refElement.getAncestor((e) => e is ClassElement);
+ if (refClass != null) {
+ visitChildren(refClass, (shadow) {
+ if (hasDisplayName(shadow, name)) {
+ String message = format(
+ "Reference to renamed {0} will be shadowed by {1} '{2}'.",
+ getElementKindName(element),
+ getElementKindName(shadow),
+ getElementQualifiedName(shadow));
+ result.addError(message, newLocation_fromElement(shadow));
+ }
+ });
}
- });
+ }
}
/**
@@ -223,40 +218,40 @@ class _RenameUnitMemberValidator {
/**
* Validates if renamed [element] will shadow any [Element] named [name].
*/
- Future _validateWillShadow() {
- return searchEngine.searchMemberDeclarations(name).then((declarations) {
- return Future.forEach(declarations, (SearchMatch declaration) {
- Element member = declaration.element;
- ClassElement declaringClass = member.enclosingElement;
- return searchEngine.searchReferences(member).then((memberReferences) {
- for (SearchMatch memberReference in memberReferences) {
- Element refElement = memberReference.element;
- // cannot be shadowed if qualified
- if (memberReference.isQualified) {
- continue;
- }
- // cannot be shadowed if declared in the same class as reference
- ClassElement refClass =
- refElement.getAncestor((e) => e is ClassElement);
- if (refClass == declaringClass) {
- continue;
- }
- // ignore if not visible
- if (!_isVisibleAt(element, memberReference)) {
- continue;
- }
- // OK, reference will be shadowed be the element being renamed
- String message = format(
- isRename ?
- "Renamed {0} will shadow {1} '{2}'." :
- "Created {0} will shadow {1} '{2}'.",
- elementKind.displayName,
- getElementKindName(member),
- getElementQualifiedName(member));
- result.addError(message, newLocation_fromMatch(memberReference));
- }
- });
- });
- });
+ Future _validateWillShadow() async {
+ List<SearchMatch> declarations =
+ await searchEngine.searchMemberDeclarations(name);
+ for (SearchMatch declaration in declarations) {
+ Element member = declaration.element;
+ ClassElement declaringClass = member.enclosingElement;
+ List<SearchMatch> memberReferences =
+ await searchEngine.searchReferences(member);
+ for (SearchMatch memberReference in memberReferences) {
+ Element refElement = memberReference.element;
+ // cannot be shadowed if qualified
+ if (memberReference.isQualified) {
+ continue;
+ }
+ // cannot be shadowed if declared in the same class as reference
+ ClassElement refClass =
+ refElement.getAncestor((e) => e is ClassElement);
+ if (refClass == declaringClass) {
+ continue;
+ }
+ // ignore if not visible
+ if (!_isVisibleAt(element, memberReference)) {
+ continue;
+ }
+ // OK, reference will be shadowed be the element being renamed
+ String message = format(
+ isRename ?
+ "Renamed {0} will shadow {1} '{2}'." :
+ "Created {0} will shadow {1} '{2}'.",
+ elementKind.displayName,
+ getElementKindName(member),
+ getElementQualifiedName(member));
+ result.addError(message, newLocation_fromMatch(memberReference));
+ }
+ }
}
}
« no previous file with comments | « pkg/analysis_server/lib/src/services/refactoring/rename_import.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698