Chromium Code Reviews| 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() { |