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

Unified Diff: pkg/analysis_server/test/services/refactoring/extract_method_test.dart

Issue 1053323002: Issue 22988. Improve checking for conflicts between parameters and local elements during extracting… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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
Index: pkg/analysis_server/test/services/refactoring/extract_method_test.dart
diff --git a/pkg/analysis_server/test/services/refactoring/extract_method_test.dart b/pkg/analysis_server/test/services/refactoring/extract_method_test.dart
index bec57bd0ada21e4e92346f8ed7261eb9ba881b41..431843f7b1ccd3dadfef4d7dc447866cefd0c3ad 100644
--- a/pkg/analysis_server/test/services/refactoring/extract_method_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/extract_method_test.dart
@@ -384,7 +384,31 @@ main() {
return _assertFinalConditionsError("Parameter 'dup' already exists");
}
- test_bad_parameterName_inUse() async {
+ test_bad_parameterName_inUse_function() async {
+ indexTestUnit('''
+main() {
+ int v1 = 1;
+ int v2 = 2;
+// start
+ f(v1, v2);
+// end
+}
+f(a, b) {}
+''');
+ _createRefactoringForStartEndComments();
+ // update parameters
+ await refactoring.checkInitialConditions();
+ {
+ List<RefactoringMethodParameter> parameters = _getParametersCopy();
+ expect(parameters, hasLength(2));
+ parameters[0].name = 'f';
+ refactoring.parameters = parameters;
+ }
+ return _assertFinalConditionsError(
+ "'f' is already used as a name in the selected code");
+ }
+
+ test_bad_parameterName_inUse_localVariable() async {
indexTestUnit('''
main() {
int v1 = 1;
@@ -407,6 +431,32 @@ main() {
"'a' is already used as a name in the selected code");
}
+ test_bad_parameterName_inUse_method() async {
+ indexTestUnit('''
+class A {
+ main() {
+ int v1 = 1;
+ int v2 = 2;
+ // start
+ m(v1, v2);
+ // end
+ }
+ m(a, b) {}
+}
+''');
+ _createRefactoringForStartEndComments();
+ // update parameters
+ await refactoring.checkInitialConditions();
+ {
+ List<RefactoringMethodParameter> parameters = _getParametersCopy();
+ expect(parameters, hasLength(2));
+ parameters[0].name = 'm';
+ refactoring.parameters = parameters;
+ }
+ return _assertFinalConditionsError(
+ "'m' is already used as a name in the selected code");
+ }
+
test_bad_selectionEndsInSomeNode() {
indexTestUnit('''
main() {
@@ -2213,6 +2263,25 @@ void res(Future<int> v) {
''');
}
+ test_statements_parameters_noLocalVariableConflict() async {
+ // TODO
Brian Wilkerson 2015/04/03 21:00:41 ditto
+ indexTestUnit('''
+int f(int x) {
+ int y = x + 1;
+// start
+ if (y % 2 == 0) {
+ int y = x + 2;
+ return y;
+ } else {
+ return y;
+ }
+// end
+}
+''');
+ _createRefactoringForStartEndComments();
+ await assertRefactoringConditionsOK();
+ }
+
test_statements_return_last() {
indexTestUnit('''
main() {

Powered by Google App Engine
This is Rietveld 408576698