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

Side by Side Diff: pkg/analysis_server/lib/src/services/refactoring/rename_class_member.dart

Issue 1310263003: Reformat code to minimize churn (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library services.src.refactoring.rename_class_member; 5 library services.src.refactoring.rename_class_member;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/protocol_server.dart' 9 import 'package:analysis_server/src/protocol_server.dart'
10 hide Element, ElementKind; 10 hide Element, ElementKind;
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 _ClassMemberValidator.forRename(this.searchEngine, Element element, this.name) 145 _ClassMemberValidator.forRename(this.searchEngine, Element element, this.name)
146 : isRename = true, 146 : isRename = true,
147 library = element.library, 147 library = element.library,
148 element = element, 148 element = element,
149 elementClass = element.enclosingElement, 149 elementClass = element.enclosingElement,
150 elementKind = element.kind; 150 elementKind = element.kind;
151 151
152 Future<RefactoringStatus> validate() async { 152 Future<RefactoringStatus> validate() async {
153 // check if there is a member with "newName" in the same ClassElement 153 // check if there is a member with "newName" in the same ClassElement
154 for (Element newNameMember in getChildren(elementClass, name)) { 154 for (Element newNameMember in getChildren(elementClass, name)) {
155 result.addError(format( 155 result.addError(
156 "Class '{0}' already declares {1} with name '{2}'.", 156 format(
157 elementClass.displayName, getElementKindName(newNameMember), 157 "Class '{0}' already declares {1} with name '{2}'.",
158 name), newLocation_fromElement(newNameMember)); 158 elementClass.displayName,
159 getElementKindName(newNameMember),
160 name),
161 newLocation_fromElement(newNameMember));
159 } 162 }
160 // do chained computations 163 // do chained computations
161 Set<ClassElement> superClasses = getSuperClasses(elementClass); 164 Set<ClassElement> superClasses = getSuperClasses(elementClass);
162 await _prepareReferences(); 165 await _prepareReferences();
163 Set<ClassElement> subClasses = 166 Set<ClassElement> subClasses =
164 await getSubClasses(searchEngine, elementClass); 167 await getSubClasses(searchEngine, elementClass);
165 // check shadowing in hierarchy 168 // check shadowing in hierarchy
166 List<SearchMatch> declarations = 169 List<SearchMatch> declarations =
167 await searchEngine.searchElementDeclarations(name); 170 await searchEngine.searchElementDeclarations(name);
168 for (SearchMatch declaration in declarations) { 171 for (SearchMatch declaration in declarations) {
169 Element nameElement = getSyntheticAccessorVariable(declaration.element); 172 Element nameElement = getSyntheticAccessorVariable(declaration.element);
170 Element nameClass = nameElement.enclosingElement; 173 Element nameClass = nameElement.enclosingElement;
171 // renamed Element shadows member of superclass 174 // renamed Element shadows member of superclass
172 if (superClasses.contains(nameClass)) { 175 if (superClasses.contains(nameClass)) {
173 result.addError(format(isRename 176 result.addError(
177 format(
178 isRename
174 ? "Renamed {0} will shadow {1} '{2}'." 179 ? "Renamed {0} will shadow {1} '{2}'."
175 : "Created {0} will shadow {1} '{2}'.", 180 : "Created {0} will shadow {1} '{2}'.",
176 elementKind.displayName, getElementKindName(nameElement), 181 elementKind.displayName,
182 getElementKindName(nameElement),
177 getElementQualifiedName(nameElement)), 183 getElementQualifiedName(nameElement)),
178 newLocation_fromElement(nameElement)); 184 newLocation_fromElement(nameElement));
179 } 185 }
180 // renamed Element is shadowed by member of subclass 186 // renamed Element is shadowed by member of subclass
181 if (isRename && subClasses.contains(nameClass)) { 187 if (isRename && subClasses.contains(nameClass)) {
182 result.addError(format("Renamed {0} will be shadowed by {1} '{2}'.", 188 result.addError(
183 elementKind.displayName, getElementKindName(nameElement), 189 format(
190 "Renamed {0} will be shadowed by {1} '{2}'.",
191 elementKind.displayName,
192 getElementKindName(nameElement),
184 getElementQualifiedName(nameElement)), 193 getElementQualifiedName(nameElement)),
185 newLocation_fromElement(nameElement)); 194 newLocation_fromElement(nameElement));
186 } 195 }
187 // renamed Element is shadowed by local 196 // renamed Element is shadowed by local
188 if (nameElement is LocalElement) { 197 if (nameElement is LocalElement) {
189 LocalElement localElement = nameElement; 198 LocalElement localElement = nameElement;
190 ClassElement enclosingClass = 199 ClassElement enclosingClass =
191 nameElement.getAncestor((element) => element is ClassElement); 200 nameElement.getAncestor((element) => element is ClassElement);
192 if (enclosingClass == elementClass || 201 if (enclosingClass == elementClass ||
193 subClasses.contains(enclosingClass)) { 202 subClasses.contains(enclosingClass)) {
194 for (SearchMatch reference in references) { 203 for (SearchMatch reference in references) {
195 if (isReferenceInLocalRange(localElement, reference)) { 204 if (isReferenceInLocalRange(localElement, reference)) {
196 result.addError(format( 205 result.addError(
197 "Usage of renamed {0} will be shadowed by {1} '{2}'.", 206 format(
198 elementKind.displayName, getElementKindName(localElement), 207 "Usage of renamed {0} will be shadowed by {1} '{2}'.",
199 localElement.displayName), newLocation_fromMatch(reference)); 208 elementKind.displayName,
209 getElementKindName(localElement),
210 localElement.displayName),
211 newLocation_fromMatch(reference));
200 } 212 }
201 } 213 }
202 } 214 }
203 } 215 }
204 } 216 }
205 // visibility 217 // visibility
206 if (isRename) { 218 if (isRename) {
207 _validateWillBeInvisible(); 219 _validateWillBeInvisible();
208 } 220 }
209 // done 221 // done
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 Element refElement = reference.element; 259 Element refElement = reference.element;
248 LibraryElement refLibrary = refElement.library; 260 LibraryElement refLibrary = refElement.library;
249 if (refLibrary != library) { 261 if (refLibrary != library) {
250 String message = format("Renamed {0} will be invisible in '{1}'.", 262 String message = format("Renamed {0} will be invisible in '{1}'.",
251 getElementKindName(element), getElementQualifiedName(refLibrary)); 263 getElementKindName(element), getElementQualifiedName(refLibrary));
252 result.addError(message, newLocation_fromMatch(reference)); 264 result.addError(message, newLocation_fromMatch(reference));
253 } 265 }
254 } 266 }
255 } 267 }
256 } 268 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698