| OLD | NEW |
| 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 test.services.correction.assist; | 5 library test.services.correction.assist; |
| 6 | 6 |
| 7 import 'dart:async'; |
| 8 |
| 7 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; | 9 import 'package:analysis_server/plugin/edit/assist/assist_core.dart'; |
| 8 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 10 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 9 import 'package:analysis_server/src/plugin/server_plugin.dart'; | 11 import 'package:analysis_server/src/plugin/server_plugin.dart'; |
| 10 import 'package:analysis_server/src/services/correction/assist.dart'; | 12 import 'package:analysis_server/src/services/correction/assist.dart'; |
| 11 import 'package:analyzer/src/generated/source.dart'; | 13 import 'package:analyzer/src/generated/source.dart'; |
| 12 import 'package:plugin/manager.dart'; | 14 import 'package:plugin/manager.dart'; |
| 13 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 15 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 14 import 'package:unittest/unittest.dart'; | 16 import 'package:unittest/unittest.dart'; |
| 15 | 17 |
| 16 import '../../abstract_single_unit.dart'; | 18 import '../../abstract_single_unit.dart'; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 29 ServerPlugin plugin; | 31 ServerPlugin plugin; |
| 30 Assist assist; | 32 Assist assist; |
| 31 SourceChange change; | 33 SourceChange change; |
| 32 String resultCode; | 34 String resultCode; |
| 33 LinkedEditGroup linkedPositionGroup; | 35 LinkedEditGroup linkedPositionGroup; |
| 34 | 36 |
| 35 /** | 37 /** |
| 36 * Asserts that there is an [Assist] of the given [kind] at [offset] which | 38 * Asserts that there is an [Assist] of the given [kind] at [offset] which |
| 37 * produces the [expected] code when applied to [testCode]. | 39 * produces the [expected] code when applied to [testCode]. |
| 38 */ | 40 */ |
| 39 void assertHasAssist(AssistKind kind, String expected) { | 41 assertHasAssist(AssistKind kind, String expected) async { |
| 40 assist = _assertHasAssist(kind); | 42 assist = await _assertHasAssist(kind); |
| 41 change = assist.change; | 43 change = assist.change; |
| 42 // apply to "file" | 44 // apply to "file" |
| 43 List<SourceFileEdit> fileEdits = change.edits; | 45 List<SourceFileEdit> fileEdits = change.edits; |
| 44 expect(fileEdits, hasLength(1)); | 46 expect(fileEdits, hasLength(1)); |
| 45 resultCode = SourceEdit.applySequence(testCode, change.edits[0].edits); | 47 resultCode = SourceEdit.applySequence(testCode, change.edits[0].edits); |
| 46 // verify | 48 // verify |
| 47 expect(resultCode, expected); | 49 expect(resultCode, expected); |
| 48 } | 50 } |
| 49 | 51 |
| 50 /** | 52 /** |
| 51 * Calls [assertHasAssist] at the offset of [offsetSearch] in [testCode]. | 53 * Calls [assertHasAssist] at the offset of [offsetSearch] in [testCode]. |
| 52 */ | 54 */ |
| 53 void assertHasAssistAt( | 55 assertHasAssistAt( |
| 54 String offsetSearch, AssistKind kind, String expected) { | 56 String offsetSearch, AssistKind kind, String expected) async { |
| 55 offset = findOffset(offsetSearch); | 57 offset = findOffset(offsetSearch); |
| 56 assertHasAssist(kind, expected); | 58 await assertHasAssist(kind, expected); |
| 57 } | 59 } |
| 58 | 60 |
| 59 /** | 61 /** |
| 60 * Asserts that there is no [Assist] of the given [kind] at [offset]. | 62 * Asserts that there is no [Assist] of the given [kind] at [offset]. |
| 61 */ | 63 */ |
| 62 void assertNoAssist(AssistKind kind) { | 64 assertNoAssist(AssistKind kind) async { |
| 63 List<Assist> assists = computeAssists( | 65 List<Assist> assists = await computeAssists( |
| 64 plugin, context, testUnit.element.source, offset, length); | 66 plugin, context, testUnit.element.source, offset, length); |
| 65 for (Assist assist in assists) { | 67 for (Assist assist in assists) { |
| 66 if (assist.kind == kind) { | 68 if (assist.kind == kind) { |
| 67 throw fail('Unexpected assist $kind in\n${assists.join('\n')}'); | 69 throw fail('Unexpected assist $kind in\n${assists.join('\n')}'); |
| 68 } | 70 } |
| 69 } | 71 } |
| 70 } | 72 } |
| 71 | 73 |
| 72 /** | 74 /** |
| 73 * Calls [assertNoAssist] at the offset of [offsetSearch] in [testCode]. | 75 * Calls [assertNoAssist] at the offset of [offsetSearch] in [testCode]. |
| 74 */ | 76 */ |
| 75 void assertNoAssistAt(String offsetSearch, AssistKind kind) { | 77 assertNoAssistAt(String offsetSearch, AssistKind kind) async { |
| 76 offset = findOffset(offsetSearch); | 78 offset = findOffset(offsetSearch); |
| 77 assertNoAssist(kind); | 79 await assertNoAssist(kind); |
| 78 } | 80 } |
| 79 | 81 |
| 80 Position expectedPosition(String search) { | 82 Position expectedPosition(String search) { |
| 81 int offset = resultCode.indexOf(search); | 83 int offset = resultCode.indexOf(search); |
| 82 return new Position(testFile, offset); | 84 return new Position(testFile, offset); |
| 83 } | 85 } |
| 84 | 86 |
| 85 List<Position> expectedPositions(List<String> patterns) { | 87 List<Position> expectedPositions(List<String> patterns) { |
| 86 List<Position> positions = <Position>[]; | 88 List<Position> positions = <Position>[]; |
| 87 patterns.forEach((String search) { | 89 patterns.forEach((String search) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 99 | 101 |
| 100 void setUp() { | 102 void setUp() { |
| 101 super.setUp(); | 103 super.setUp(); |
| 102 offset = 0; | 104 offset = 0; |
| 103 length = 0; | 105 length = 0; |
| 104 ExtensionManager manager = new ExtensionManager(); | 106 ExtensionManager manager = new ExtensionManager(); |
| 105 plugin = new ServerPlugin(); | 107 plugin = new ServerPlugin(); |
| 106 manager.processPlugins([plugin]); | 108 manager.processPlugins([plugin]); |
| 107 } | 109 } |
| 108 | 110 |
| 109 void test_addTypeAnnotation_BAD_privateType_closureParameter() { | 111 test_addTypeAnnotation_BAD_privateType_closureParameter() async { |
| 110 addSource( | 112 addSource( |
| 111 '/my_lib.dart', | 113 '/my_lib.dart', |
| 112 ''' | 114 ''' |
| 113 library my_lib; | 115 library my_lib; |
| 114 class A {} | 116 class A {} |
| 115 class _B extends A {} | 117 class _B extends A {} |
| 116 foo(f(_B p)) {} | 118 foo(f(_B p)) {} |
| 117 '''); | 119 '''); |
| 118 resolveTestUnit(''' | 120 resolveTestUnit(''' |
| 119 import 'my_lib.dart'; | 121 import 'my_lib.dart'; |
| 120 main() { | 122 main() { |
| 121 foo((test) {}); | 123 foo((test) {}); |
| 122 } | 124 } |
| 123 '''); | 125 '''); |
| 124 assertNoAssistAt('test)', DartAssistKind.ADD_TYPE_ANNOTATION); | 126 await assertNoAssistAt('test)', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 125 } | 127 } |
| 126 | 128 |
| 127 void test_addTypeAnnotation_BAD_privateType_declaredIdentifier() { | 129 test_addTypeAnnotation_BAD_privateType_declaredIdentifier() async { |
| 128 addSource( | 130 addSource( |
| 129 '/my_lib.dart', | 131 '/my_lib.dart', |
| 130 ''' | 132 ''' |
| 131 library my_lib; | 133 library my_lib; |
| 132 class A {} | 134 class A {} |
| 133 class _B extends A {} | 135 class _B extends A {} |
| 134 List<_B> getValues() => []; | 136 List<_B> getValues() => []; |
| 135 '''); | 137 '''); |
| 136 resolveTestUnit(''' | 138 resolveTestUnit(''' |
| 137 import 'my_lib.dart'; | 139 import 'my_lib.dart'; |
| 138 class A<T> { | 140 class A<T> { |
| 139 main() { | 141 main() { |
| 140 for (var item in getValues()) { | 142 for (var item in getValues()) { |
| 141 } | 143 } |
| 142 } | 144 } |
| 143 } | 145 } |
| 144 '''); | 146 '''); |
| 145 assertNoAssistAt('var item', DartAssistKind.ADD_TYPE_ANNOTATION); | 147 await assertNoAssistAt('var item', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 146 } | 148 } |
| 147 | 149 |
| 148 void test_addTypeAnnotation_BAD_privateType_list() { | 150 test_addTypeAnnotation_BAD_privateType_list() async { |
| 149 addSource( | 151 addSource( |
| 150 '/my_lib.dart', | 152 '/my_lib.dart', |
| 151 ''' | 153 ''' |
| 152 library my_lib; | 154 library my_lib; |
| 153 class A {} | 155 class A {} |
| 154 class _B extends A {} | 156 class _B extends A {} |
| 155 List<_B> getValues() => []; | 157 List<_B> getValues() => []; |
| 156 '''); | 158 '''); |
| 157 resolveTestUnit(''' | 159 resolveTestUnit(''' |
| 158 import 'my_lib.dart'; | 160 import 'my_lib.dart'; |
| 159 main() { | 161 main() { |
| 160 var v = getValues(); | 162 var v = getValues(); |
| 161 } | 163 } |
| 162 '''); | 164 '''); |
| 163 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); | 165 await assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 164 } | 166 } |
| 165 | 167 |
| 166 void test_addTypeAnnotation_BAD_privateType_variable() { | 168 test_addTypeAnnotation_BAD_privateType_variable() async { |
| 167 addSource( | 169 addSource( |
| 168 '/my_lib.dart', | 170 '/my_lib.dart', |
| 169 ''' | 171 ''' |
| 170 library my_lib; | 172 library my_lib; |
| 171 class A {} | 173 class A {} |
| 172 class _B extends A {} | 174 class _B extends A {} |
| 173 _B getValue() => new _B(); | 175 _B getValue() => new _B(); |
| 174 '''); | 176 '''); |
| 175 resolveTestUnit(''' | 177 resolveTestUnit(''' |
| 176 import 'my_lib.dart'; | 178 import 'my_lib.dart'; |
| 177 main() { | 179 main() { |
| 178 var v = getValue(); | 180 var v = getValue(); |
| 179 } | 181 } |
| 180 '''); | 182 '''); |
| 181 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); | 183 await assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 182 } | 184 } |
| 183 | 185 |
| 184 void test_addTypeAnnotation_classField_OK_final() { | 186 test_addTypeAnnotation_classField_OK_final() async { |
| 185 resolveTestUnit(''' | 187 resolveTestUnit(''' |
| 186 class A { | 188 class A { |
| 187 final f = 0; | 189 final f = 0; |
| 188 } | 190 } |
| 189 '''); | 191 '''); |
| 190 assertHasAssistAt( | 192 await assertHasAssistAt( |
| 191 'final ', | 193 'final ', |
| 192 DartAssistKind.ADD_TYPE_ANNOTATION, | 194 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 193 ''' | 195 ''' |
| 194 class A { | 196 class A { |
| 195 final int f = 0; | 197 final int f = 0; |
| 196 } | 198 } |
| 197 '''); | 199 '''); |
| 198 } | 200 } |
| 199 | 201 |
| 200 void test_addTypeAnnotation_classField_OK_int() { | 202 test_addTypeAnnotation_classField_OK_int() async { |
| 201 resolveTestUnit(''' | 203 resolveTestUnit(''' |
| 202 class A { | 204 class A { |
| 203 var f = 0; | 205 var f = 0; |
| 204 } | 206 } |
| 205 '''); | 207 '''); |
| 206 assertHasAssistAt( | 208 await await assertHasAssistAt( |
| 207 'var ', | 209 'var ', |
| 208 DartAssistKind.ADD_TYPE_ANNOTATION, | 210 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 209 ''' | 211 ''' |
| 210 class A { | 212 class A { |
| 211 int f = 0; | 213 int f = 0; |
| 212 } | 214 } |
| 213 '''); | 215 '''); |
| 214 } | 216 } |
| 215 | 217 |
| 216 void test_addTypeAnnotation_declaredIdentifier_BAD_hasTypeAnnotation() { | 218 test_addTypeAnnotation_declaredIdentifier_BAD_hasTypeAnnotation() async { |
| 217 resolveTestUnit(''' | 219 resolveTestUnit(''' |
| 218 main(List<String> items) { | 220 main(List<String> items) { |
| 219 for (String item in items) { | 221 for (String item in items) { |
| 220 } | 222 } |
| 221 } | 223 } |
| 222 '''); | 224 '''); |
| 223 assertNoAssistAt('item in', DartAssistKind.ADD_TYPE_ANNOTATION); | 225 await assertNoAssistAt('item in', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 224 } | 226 } |
| 225 | 227 |
| 226 void test_addTypeAnnotation_declaredIdentifier_BAD_inForEachBody() { | 228 test_addTypeAnnotation_declaredIdentifier_BAD_inForEachBody() async { |
| 227 resolveTestUnit(''' | 229 resolveTestUnit(''' |
| 228 main(List<String> items) { | 230 main(List<String> items) { |
| 229 for (var item in items) { | 231 for (var item in items) { |
| 230 42; | 232 42; |
| 231 } | 233 } |
| 232 } | 234 } |
| 233 '''); | 235 '''); |
| 234 assertNoAssistAt('42;', DartAssistKind.ADD_TYPE_ANNOTATION); | 236 await assertNoAssistAt('42;', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 235 } | 237 } |
| 236 | 238 |
| 237 void test_addTypeAnnotation_declaredIdentifier_BAD_unknownType() { | 239 test_addTypeAnnotation_declaredIdentifier_BAD_unknownType() async { |
| 238 verifyNoTestUnitErrors = false; | 240 verifyNoTestUnitErrors = false; |
| 239 resolveTestUnit(''' | 241 resolveTestUnit(''' |
| 240 main() { | 242 main() { |
| 241 for (var item in unknownList) { | 243 for (var item in unknownList) { |
| 242 } | 244 } |
| 243 } | 245 } |
| 244 '''); | 246 '''); |
| 245 assertNoAssistAt('item in', DartAssistKind.ADD_TYPE_ANNOTATION); | 247 await assertNoAssistAt('item in', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 246 } | 248 } |
| 247 | 249 |
| 248 void test_addTypeAnnotation_declaredIdentifier_generic_OK() { | 250 test_addTypeAnnotation_declaredIdentifier_generic_OK() async { |
| 249 resolveTestUnit(''' | 251 resolveTestUnit(''' |
| 250 class A<T> { | 252 class A<T> { |
| 251 main(List<List<T>> items) { | 253 main(List<List<T>> items) { |
| 252 for (var item in items) { | 254 for (var item in items) { |
| 253 } | 255 } |
| 254 } | 256 } |
| 255 } | 257 } |
| 256 '''); | 258 '''); |
| 257 assertHasAssistAt( | 259 await assertHasAssistAt( |
| 258 'item in', | 260 'item in', |
| 259 DartAssistKind.ADD_TYPE_ANNOTATION, | 261 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 260 ''' | 262 ''' |
| 261 class A<T> { | 263 class A<T> { |
| 262 main(List<List<T>> items) { | 264 main(List<List<T>> items) { |
| 263 for (List<T> item in items) { | 265 for (List<T> item in items) { |
| 264 } | 266 } |
| 265 } | 267 } |
| 266 } | 268 } |
| 267 '''); | 269 '''); |
| 268 } | 270 } |
| 269 | 271 |
| 270 void test_addTypeAnnotation_declaredIdentifier_OK() { | 272 test_addTypeAnnotation_declaredIdentifier_OK() async { |
| 271 resolveTestUnit(''' | 273 resolveTestUnit(''' |
| 272 main(List<String> items) { | 274 main(List<String> items) { |
| 273 for (var item in items) { | 275 for (var item in items) { |
| 274 } | 276 } |
| 275 } | 277 } |
| 276 '''); | 278 '''); |
| 277 // on identifier | 279 // on identifier |
| 278 assertHasAssistAt( | 280 await assertHasAssistAt( |
| 279 'item in', | 281 'item in', |
| 280 DartAssistKind.ADD_TYPE_ANNOTATION, | 282 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 281 ''' | 283 ''' |
| 282 main(List<String> items) { | 284 main(List<String> items) { |
| 283 for (String item in items) { | 285 for (String item in items) { |
| 284 } | 286 } |
| 285 } | 287 } |
| 286 '''); | 288 '''); |
| 287 // on "for" | 289 // on "for" |
| 288 assertHasAssistAt( | 290 await assertHasAssistAt( |
| 289 'for (', | 291 'for (', |
| 290 DartAssistKind.ADD_TYPE_ANNOTATION, | 292 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 291 ''' | 293 ''' |
| 292 main(List<String> items) { | 294 main(List<String> items) { |
| 293 for (String item in items) { | 295 for (String item in items) { |
| 294 } | 296 } |
| 295 } | 297 } |
| 296 '''); | 298 '''); |
| 297 } | 299 } |
| 298 | 300 |
| 299 void test_addTypeAnnotation_declaredIdentifier_OK_addImport_dartUri() { | 301 test_addTypeAnnotation_declaredIdentifier_OK_addImport_dartUri() async { |
| 300 addSource( | 302 addSource( |
| 301 '/my_lib.dart', | 303 '/my_lib.dart', |
| 302 r''' | 304 r''' |
| 303 import 'dart:async'; | 305 import 'dart:async'; |
| 304 List<Future<int>> getFutures() => null; | 306 List<Future<int>> getFutures() => null; |
| 305 '''); | 307 '''); |
| 306 resolveTestUnit(''' | 308 resolveTestUnit(''' |
| 307 import 'my_lib.dart'; | 309 import 'my_lib.dart'; |
| 308 main() { | 310 main() { |
| 309 for (var future in getFutures()) { | 311 for (var future in getFutures()) { |
| 310 } | 312 } |
| 311 } | 313 } |
| 312 '''); | 314 '''); |
| 313 assertHasAssistAt( | 315 await assertHasAssistAt( |
| 314 'future in', | 316 'future in', |
| 315 DartAssistKind.ADD_TYPE_ANNOTATION, | 317 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 316 ''' | 318 ''' |
| 317 import 'my_lib.dart'; | 319 import 'my_lib.dart'; |
| 318 import 'dart:async'; | 320 import 'dart:async'; |
| 319 main() { | 321 main() { |
| 320 for (Future<int> future in getFutures()) { | 322 for (Future<int> future in getFutures()) { |
| 321 } | 323 } |
| 322 } | 324 } |
| 323 '''); | 325 '''); |
| 324 } | 326 } |
| 325 | 327 |
| 326 void test_addTypeAnnotation_declaredIdentifier_OK_final() { | 328 test_addTypeAnnotation_declaredIdentifier_OK_final() async { |
| 327 resolveTestUnit(''' | 329 resolveTestUnit(''' |
| 328 main(List<String> items) { | 330 main(List<String> items) { |
| 329 for (final item in items) { | 331 for (final item in items) { |
| 330 } | 332 } |
| 331 } | 333 } |
| 332 '''); | 334 '''); |
| 333 assertHasAssistAt( | 335 await assertHasAssistAt( |
| 334 'item in', | 336 'item in', |
| 335 DartAssistKind.ADD_TYPE_ANNOTATION, | 337 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 336 ''' | 338 ''' |
| 337 main(List<String> items) { | 339 main(List<String> items) { |
| 338 for (final String item in items) { | 340 for (final String item in items) { |
| 339 } | 341 } |
| 340 } | 342 } |
| 341 '''); | 343 '''); |
| 342 } | 344 } |
| 343 | 345 |
| 344 void test_addTypeAnnotation_local_generic_OK_literal() { | 346 test_addTypeAnnotation_local_generic_OK_literal() async { |
| 345 resolveTestUnit(''' | 347 resolveTestUnit(''' |
| 346 class A { | 348 class A { |
| 347 main(List<int> items) { | 349 main(List<int> items) { |
| 348 var v = items; | 350 var v = items; |
| 349 } | 351 } |
| 350 } | 352 } |
| 351 '''); | 353 '''); |
| 352 assertHasAssistAt( | 354 await assertHasAssistAt( |
| 353 'v =', | 355 'v =', |
| 354 DartAssistKind.ADD_TYPE_ANNOTATION, | 356 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 355 ''' | 357 ''' |
| 356 class A { | 358 class A { |
| 357 main(List<int> items) { | 359 main(List<int> items) { |
| 358 List<int> v = items; | 360 List<int> v = items; |
| 359 } | 361 } |
| 360 } | 362 } |
| 361 '''); | 363 '''); |
| 362 } | 364 } |
| 363 | 365 |
| 364 void test_addTypeAnnotation_local_generic_OK_local() { | 366 test_addTypeAnnotation_local_generic_OK_local() async { |
| 365 resolveTestUnit(''' | 367 resolveTestUnit(''' |
| 366 class A<T> { | 368 class A<T> { |
| 367 main(List<T> items) { | 369 main(List<T> items) { |
| 368 var v = items; | 370 var v = items; |
| 369 } | 371 } |
| 370 } | 372 } |
| 371 '''); | 373 '''); |
| 372 assertHasAssistAt( | 374 await assertHasAssistAt( |
| 373 'v =', | 375 'v =', |
| 374 DartAssistKind.ADD_TYPE_ANNOTATION, | 376 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 375 ''' | 377 ''' |
| 376 class A<T> { | 378 class A<T> { |
| 377 main(List<T> items) { | 379 main(List<T> items) { |
| 378 List<T> v = items; | 380 List<T> v = items; |
| 379 } | 381 } |
| 380 } | 382 } |
| 381 '''); | 383 '''); |
| 382 } | 384 } |
| 383 | 385 |
| 384 void test_addTypeAnnotation_local_OK_addImport_dartUri() { | 386 test_addTypeAnnotation_local_OK_addImport_dartUri() async { |
| 385 addSource( | 387 addSource( |
| 386 '/my_lib.dart', | 388 '/my_lib.dart', |
| 387 r''' | 389 r''' |
| 388 import 'dart:async'; | 390 import 'dart:async'; |
| 389 Future<int> getFutureInt() => null; | 391 Future<int> getFutureInt() => null; |
| 390 '''); | 392 '''); |
| 391 resolveTestUnit(''' | 393 resolveTestUnit(''' |
| 392 import 'my_lib.dart'; | 394 import 'my_lib.dart'; |
| 393 main() { | 395 main() { |
| 394 var v = getFutureInt(); | 396 var v = getFutureInt(); |
| 395 } | 397 } |
| 396 '''); | 398 '''); |
| 397 assertHasAssistAt( | 399 await assertHasAssistAt( |
| 398 'v =', | 400 'v =', |
| 399 DartAssistKind.ADD_TYPE_ANNOTATION, | 401 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 400 ''' | 402 ''' |
| 401 import 'my_lib.dart'; | 403 import 'my_lib.dart'; |
| 402 import 'dart:async'; | 404 import 'dart:async'; |
| 403 main() { | 405 main() { |
| 404 Future<int> v = getFutureInt(); | 406 Future<int> v = getFutureInt(); |
| 405 } | 407 } |
| 406 '''); | 408 '''); |
| 407 } | 409 } |
| 408 | 410 |
| 409 void test_addTypeAnnotation_local_OK_addImport_notLibraryUnit() { | 411 test_addTypeAnnotation_local_OK_addImport_notLibraryUnit() async { |
| 410 // prepare library | 412 // prepare library |
| 411 addSource( | 413 addSource( |
| 412 '/my_lib.dart', | 414 '/my_lib.dart', |
| 413 r''' | 415 r''' |
| 414 import 'dart:async'; | 416 import 'dart:async'; |
| 415 Future<int> getFutureInt() => null; | 417 Future<int> getFutureInt() => null; |
| 416 '''); | 418 '''); |
| 417 // prepare code | 419 // prepare code |
| 418 String appCode = r''' | 420 String appCode = r''' |
| 419 library my_app; | 421 library my_app; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 430 Source appSource = addSource('/app.dart', appCode); | 432 Source appSource = addSource('/app.dart', appCode); |
| 431 testSource = addSource('/test.dart', testCode); | 433 testSource = addSource('/test.dart', testCode); |
| 432 // resolve | 434 // resolve |
| 433 context.resolveCompilationUnit2(appSource, appSource); | 435 context.resolveCompilationUnit2(appSource, appSource); |
| 434 testUnit = context.resolveCompilationUnit2(testSource, appSource); | 436 testUnit = context.resolveCompilationUnit2(testSource, appSource); |
| 435 assertNoErrorsInSource(testSource); | 437 assertNoErrorsInSource(testSource); |
| 436 testUnitElement = testUnit.element; | 438 testUnitElement = testUnit.element; |
| 437 testLibraryElement = testUnitElement.library; | 439 testLibraryElement = testUnitElement.library; |
| 438 // prepare the assist | 440 // prepare the assist |
| 439 offset = findOffset('v = '); | 441 offset = findOffset('v = '); |
| 440 assist = _assertHasAssist(DartAssistKind.ADD_TYPE_ANNOTATION); | 442 assist = await _assertHasAssist(DartAssistKind.ADD_TYPE_ANNOTATION); |
| 441 change = assist.change; | 443 change = assist.change; |
| 442 // verify | 444 // verify |
| 443 { | 445 { |
| 444 var testFileEdit = change.getFileEdit('/app.dart'); | 446 var testFileEdit = change.getFileEdit('/app.dart'); |
| 445 var resultCode = SourceEdit.applySequence(appCode, testFileEdit.edits); | 447 var resultCode = SourceEdit.applySequence(appCode, testFileEdit.edits); |
| 446 expect( | 448 expect( |
| 447 resultCode, | 449 resultCode, |
| 448 ''' | 450 ''' |
| 449 library my_app; | 451 library my_app; |
| 450 import 'my_lib.dart'; | 452 import 'my_lib.dart'; |
| 451 import 'dart:async'; | 453 import 'dart:async'; |
| 452 part 'test.dart'; | 454 part 'test.dart'; |
| 453 '''); | 455 '''); |
| 454 } | 456 } |
| 455 { | 457 { |
| 456 var testFileEdit = change.getFileEdit('/test.dart'); | 458 var testFileEdit = change.getFileEdit('/test.dart'); |
| 457 var resultCode = SourceEdit.applySequence(testCode, testFileEdit.edits); | 459 var resultCode = SourceEdit.applySequence(testCode, testFileEdit.edits); |
| 458 expect( | 460 expect( |
| 459 resultCode, | 461 resultCode, |
| 460 ''' | 462 ''' |
| 461 part of my_app; | 463 part of my_app; |
| 462 main() { | 464 main() { |
| 463 Future<int> v = getFutureInt(); | 465 Future<int> v = getFutureInt(); |
| 464 } | 466 } |
| 465 '''); | 467 '''); |
| 466 } | 468 } |
| 467 } | 469 } |
| 468 | 470 |
| 469 void test_addTypeAnnotation_local_OK_addImport_relUri() { | 471 test_addTypeAnnotation_local_OK_addImport_relUri() async { |
| 470 addSource( | 472 addSource( |
| 471 '/aa/bbb/lib_a.dart', | 473 '/aa/bbb/lib_a.dart', |
| 472 r''' | 474 r''' |
| 473 class MyClass {} | 475 class MyClass {} |
| 474 '''); | 476 '''); |
| 475 addSource( | 477 addSource( |
| 476 '/ccc/lib_b.dart', | 478 '/ccc/lib_b.dart', |
| 477 r''' | 479 r''' |
| 478 import '../aa/bbb/lib_a.dart'; | 480 import '../aa/bbb/lib_a.dart'; |
| 479 MyClass newMyClass() => null; | 481 MyClass newMyClass() => null; |
| 480 '''); | 482 '''); |
| 481 resolveTestUnit(''' | 483 resolveTestUnit(''' |
| 482 import 'ccc/lib_b.dart'; | 484 import 'ccc/lib_b.dart'; |
| 483 main() { | 485 main() { |
| 484 var v = newMyClass(); | 486 var v = newMyClass(); |
| 485 } | 487 } |
| 486 '''); | 488 '''); |
| 487 assertHasAssistAt( | 489 await assertHasAssistAt( |
| 488 'v =', | 490 'v =', |
| 489 DartAssistKind.ADD_TYPE_ANNOTATION, | 491 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 490 ''' | 492 ''' |
| 491 import 'ccc/lib_b.dart'; | 493 import 'ccc/lib_b.dart'; |
| 492 import 'aa/bbb/lib_a.dart'; | 494 import 'aa/bbb/lib_a.dart'; |
| 493 main() { | 495 main() { |
| 494 MyClass v = newMyClass(); | 496 MyClass v = newMyClass(); |
| 495 } | 497 } |
| 496 '''); | 498 '''); |
| 497 } | 499 } |
| 498 | 500 |
| 499 void test_addTypeAnnotation_local_OK_Function() { | 501 test_addTypeAnnotation_local_OK_Function() async { |
| 500 resolveTestUnit(''' | 502 resolveTestUnit(''' |
| 501 main() { | 503 main() { |
| 502 var v = () => 1; | 504 var v = () => 1; |
| 503 } | 505 } |
| 504 '''); | 506 '''); |
| 505 assertHasAssistAt( | 507 await assertHasAssistAt( |
| 506 'v =', | 508 'v =', |
| 507 DartAssistKind.ADD_TYPE_ANNOTATION, | 509 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 508 ''' | 510 ''' |
| 509 main() { | 511 main() { |
| 510 Function v = () => 1; | 512 Function v = () => 1; |
| 511 } | 513 } |
| 512 '''); | 514 '''); |
| 513 } | 515 } |
| 514 | 516 |
| 515 void test_addTypeAnnotation_local_OK_int() { | 517 test_addTypeAnnotation_local_OK_int() async { |
| 516 resolveTestUnit(''' | 518 resolveTestUnit(''' |
| 517 main() { | 519 main() { |
| 518 var v = 0; | 520 var v = 0; |
| 519 } | 521 } |
| 520 '''); | 522 '''); |
| 521 assertHasAssistAt( | 523 await assertHasAssistAt( |
| 522 'v =', | 524 'v =', |
| 523 DartAssistKind.ADD_TYPE_ANNOTATION, | 525 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 524 ''' | 526 ''' |
| 525 main() { | 527 main() { |
| 526 int v = 0; | 528 int v = 0; |
| 527 } | 529 } |
| 528 '''); | 530 '''); |
| 529 } | 531 } |
| 530 | 532 |
| 531 void test_addTypeAnnotation_local_OK_List() { | 533 test_addTypeAnnotation_local_OK_List() async { |
| 532 resolveTestUnit(''' | 534 resolveTestUnit(''' |
| 533 main() { | 535 main() { |
| 534 var v = <String>[]; | 536 var v = <String>[]; |
| 535 } | 537 } |
| 536 '''); | 538 '''); |
| 537 assertHasAssistAt( | 539 await assertHasAssistAt( |
| 538 'v =', | 540 'v =', |
| 539 DartAssistKind.ADD_TYPE_ANNOTATION, | 541 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 540 ''' | 542 ''' |
| 541 main() { | 543 main() { |
| 542 List<String> v = <String>[]; | 544 List<String> v = <String>[]; |
| 543 } | 545 } |
| 544 '''); | 546 '''); |
| 545 } | 547 } |
| 546 | 548 |
| 547 void test_addTypeAnnotation_local_OK_localType() { | 549 test_addTypeAnnotation_local_OK_localType() async { |
| 548 resolveTestUnit(''' | 550 resolveTestUnit(''' |
| 549 class C {} | 551 class C {} |
| 550 C f() => null; | 552 C f() => null; |
| 551 main() { | 553 main() { |
| 552 var x = f(); | 554 var x = f(); |
| 553 } | 555 } |
| 554 '''); | 556 '''); |
| 555 assertHasAssistAt( | 557 await assertHasAssistAt( |
| 556 'x =', | 558 'x =', |
| 557 DartAssistKind.ADD_TYPE_ANNOTATION, | 559 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 558 ''' | 560 ''' |
| 559 class C {} | 561 class C {} |
| 560 C f() => null; | 562 C f() => null; |
| 561 main() { | 563 main() { |
| 562 C x = f(); | 564 C x = f(); |
| 563 } | 565 } |
| 564 '''); | 566 '''); |
| 565 } | 567 } |
| 566 | 568 |
| 567 void test_addTypeAnnotation_local_OK_onInitializer() { | 569 test_addTypeAnnotation_local_OK_onInitializer() async { |
| 568 resolveTestUnit(''' | 570 resolveTestUnit(''' |
| 569 main() { | 571 main() { |
| 570 var v = 123; | 572 var v = 123; |
| 571 } | 573 } |
| 572 '''); | 574 '''); |
| 573 assertHasAssistAt( | 575 await assertHasAssistAt( |
| 574 '23', | 576 '23', |
| 575 DartAssistKind.ADD_TYPE_ANNOTATION, | 577 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 576 ''' | 578 ''' |
| 577 main() { | 579 main() { |
| 578 int v = 123; | 580 int v = 123; |
| 579 } | 581 } |
| 580 '''); | 582 '''); |
| 581 } | 583 } |
| 582 | 584 |
| 583 void test_addTypeAnnotation_local_OK_onName() { | 585 test_addTypeAnnotation_local_OK_onName() async { |
| 584 resolveTestUnit(''' | 586 resolveTestUnit(''' |
| 585 main() { | 587 main() { |
| 586 var abc = 0; | 588 var abc = 0; |
| 587 } | 589 } |
| 588 '''); | 590 '''); |
| 589 assertHasAssistAt( | 591 await assertHasAssistAt( |
| 590 'bc', | 592 'bc', |
| 591 DartAssistKind.ADD_TYPE_ANNOTATION, | 593 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 592 ''' | 594 ''' |
| 593 main() { | 595 main() { |
| 594 int abc = 0; | 596 int abc = 0; |
| 595 } | 597 } |
| 596 '''); | 598 '''); |
| 597 } | 599 } |
| 598 | 600 |
| 599 void test_addTypeAnnotation_local_OK_onVar() { | 601 test_addTypeAnnotation_local_OK_onVar() async { |
| 600 resolveTestUnit(''' | 602 resolveTestUnit(''' |
| 601 main() { | 603 main() { |
| 602 var v = 0; | 604 var v = 0; |
| 603 } | 605 } |
| 604 '''); | 606 '''); |
| 605 assertHasAssistAt( | 607 await assertHasAssistAt( |
| 606 'var ', | 608 'var ', |
| 607 DartAssistKind.ADD_TYPE_ANNOTATION, | 609 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 608 ''' | 610 ''' |
| 609 main() { | 611 main() { |
| 610 int v = 0; | 612 int v = 0; |
| 611 } | 613 } |
| 612 '''); | 614 '''); |
| 613 } | 615 } |
| 614 | 616 |
| 615 void test_addTypeAnnotation_local_OK_onVariableDeclarationStatement() { | 617 test_addTypeAnnotation_local_OK_onVariableDeclarationStatement() async { |
| 616 resolveTestUnit(''' | 618 resolveTestUnit(''' |
| 617 main() { | 619 main() { |
| 618 var v = 123; // marker | 620 var v = 123; // marker |
| 619 } | 621 } |
| 620 '''); | 622 '''); |
| 621 assertHasAssistAt( | 623 await assertHasAssistAt( |
| 622 ' // marker', | 624 ' // marker', |
| 623 DartAssistKind.ADD_TYPE_ANNOTATION, | 625 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 624 ''' | 626 ''' |
| 625 main() { | 627 main() { |
| 626 int v = 123; // marker | 628 int v = 123; // marker |
| 627 } | 629 } |
| 628 '''); | 630 '''); |
| 629 } | 631 } |
| 630 | 632 |
| 631 void test_addTypeAnnotation_local_wrong_hasTypeAnnotation() { | 633 test_addTypeAnnotation_local_wrong_hasTypeAnnotation() async { |
| 632 resolveTestUnit(''' | 634 resolveTestUnit(''' |
| 633 main() { | 635 main() { |
| 634 int v = 42; | 636 int v = 42; |
| 635 } | 637 } |
| 636 '''); | 638 '''); |
| 637 assertNoAssistAt(' = 42', DartAssistKind.ADD_TYPE_ANNOTATION); | 639 await assertNoAssistAt(' = 42', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 638 } | 640 } |
| 639 | 641 |
| 640 void test_addTypeAnnotation_local_wrong_multiple() { | 642 test_addTypeAnnotation_local_wrong_multiple() async { |
| 641 resolveTestUnit(''' | 643 resolveTestUnit(''' |
| 642 main() { | 644 main() { |
| 643 var a = 1, b = ''; | 645 var a = 1, b = ''; |
| 644 } | 646 } |
| 645 '''); | 647 '''); |
| 646 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); | 648 await assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 647 } | 649 } |
| 648 | 650 |
| 649 void test_addTypeAnnotation_local_wrong_noValue() { | 651 test_addTypeAnnotation_local_wrong_noValue() async { |
| 650 verifyNoTestUnitErrors = false; | 652 verifyNoTestUnitErrors = false; |
| 651 resolveTestUnit(''' | 653 resolveTestUnit(''' |
| 652 main() { | 654 main() { |
| 653 var v; | 655 var v; |
| 654 } | 656 } |
| 655 '''); | 657 '''); |
| 656 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); | 658 await assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 657 } | 659 } |
| 658 | 660 |
| 659 void test_addTypeAnnotation_local_wrong_null() { | 661 test_addTypeAnnotation_local_wrong_null() async { |
| 660 resolveTestUnit(''' | 662 resolveTestUnit(''' |
| 661 main() { | 663 main() { |
| 662 var v = null; | 664 var v = null; |
| 663 } | 665 } |
| 664 '''); | 666 '''); |
| 665 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); | 667 await assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 666 } | 668 } |
| 667 | 669 |
| 668 void test_addTypeAnnotation_local_wrong_unknown() { | 670 test_addTypeAnnotation_local_wrong_unknown() async { |
| 669 verifyNoTestUnitErrors = false; | 671 verifyNoTestUnitErrors = false; |
| 670 resolveTestUnit(''' | 672 resolveTestUnit(''' |
| 671 main() { | 673 main() { |
| 672 var v = unknownVar; | 674 var v = unknownVar; |
| 673 } | 675 } |
| 674 '''); | 676 '''); |
| 675 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); | 677 await assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 676 } | 678 } |
| 677 | 679 |
| 678 void test_addTypeAnnotation_OK_privateType_sameLibrary() { | 680 test_addTypeAnnotation_OK_privateType_sameLibrary() async { |
| 679 resolveTestUnit(''' | 681 resolveTestUnit(''' |
| 680 class _A {} | 682 class _A {} |
| 681 _A getValue() => new _A(); | 683 _A getValue() => new _A(); |
| 682 main() { | 684 main() { |
| 683 var v = getValue(); | 685 var v = getValue(); |
| 684 } | 686 } |
| 685 '''); | 687 '''); |
| 686 assertHasAssistAt( | 688 await assertHasAssistAt( |
| 687 'var ', | 689 'var ', |
| 688 DartAssistKind.ADD_TYPE_ANNOTATION, | 690 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 689 ''' | 691 ''' |
| 690 class _A {} | 692 class _A {} |
| 691 _A getValue() => new _A(); | 693 _A getValue() => new _A(); |
| 692 main() { | 694 main() { |
| 693 _A v = getValue(); | 695 _A v = getValue(); |
| 694 } | 696 } |
| 695 '''); | 697 '''); |
| 696 } | 698 } |
| 697 | 699 |
| 698 void test_addTypeAnnotation_parameter_BAD_hasExplicitType() { | 700 test_addTypeAnnotation_parameter_BAD_hasExplicitType() async { |
| 699 resolveTestUnit(''' | 701 resolveTestUnit(''' |
| 700 foo(f(int p)) {} | 702 foo(f(int p)) {} |
| 701 main() { | 703 main() { |
| 702 foo((num test) {}); | 704 foo((num test) {}); |
| 703 } | 705 } |
| 704 '''); | 706 '''); |
| 705 assertNoAssistAt('test', DartAssistKind.ADD_TYPE_ANNOTATION); | 707 await assertNoAssistAt('test', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 706 } | 708 } |
| 707 | 709 |
| 708 void test_addTypeAnnotation_parameter_BAD_noPropagatedType() { | 710 test_addTypeAnnotation_parameter_BAD_noPropagatedType() async { |
| 709 resolveTestUnit(''' | 711 resolveTestUnit(''' |
| 710 foo(f(p)) {} | 712 foo(f(p)) {} |
| 711 main() { | 713 main() { |
| 712 foo((test) {}); | 714 foo((test) {}); |
| 713 } | 715 } |
| 714 '''); | 716 '''); |
| 715 assertNoAssistAt('test', DartAssistKind.ADD_TYPE_ANNOTATION); | 717 await assertNoAssistAt('test', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 716 } | 718 } |
| 717 | 719 |
| 718 void test_addTypeAnnotation_parameter_OK() { | 720 test_addTypeAnnotation_parameter_OK() async { |
| 719 resolveTestUnit(''' | 721 resolveTestUnit(''' |
| 720 foo(f(int p)) {} | 722 foo(f(int p)) {} |
| 721 main() { | 723 main() { |
| 722 foo((test) {}); | 724 foo((test) {}); |
| 723 } | 725 } |
| 724 '''); | 726 '''); |
| 725 assertHasAssistAt( | 727 await assertHasAssistAt( |
| 726 'test', | 728 'test', |
| 727 DartAssistKind.ADD_TYPE_ANNOTATION, | 729 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 728 ''' | 730 ''' |
| 729 foo(f(int p)) {} | 731 foo(f(int p)) {} |
| 730 main() { | 732 main() { |
| 731 foo((int test) {}); | 733 foo((int test) {}); |
| 732 } | 734 } |
| 733 '''); | 735 '''); |
| 734 } | 736 } |
| 735 | 737 |
| 736 void test_addTypeAnnotation_topLevelField_OK_int() { | 738 test_addTypeAnnotation_topLevelField_OK_int() async { |
| 737 resolveTestUnit(''' | 739 resolveTestUnit(''' |
| 738 var V = 0; | 740 var V = 0; |
| 739 '''); | 741 '''); |
| 740 assertHasAssistAt( | 742 await assertHasAssistAt( |
| 741 'var ', | 743 'var ', |
| 742 DartAssistKind.ADD_TYPE_ANNOTATION, | 744 DartAssistKind.ADD_TYPE_ANNOTATION, |
| 743 ''' | 745 ''' |
| 744 int V = 0; | 746 int V = 0; |
| 745 '''); | 747 '''); |
| 746 } | 748 } |
| 747 | 749 |
| 748 void test_addTypeAnnotation_topLevelField_wrong_multiple() { | 750 test_addTypeAnnotation_topLevelField_wrong_multiple() async { |
| 749 resolveTestUnit(''' | 751 resolveTestUnit(''' |
| 750 var A = 1, V = ''; | 752 var A = 1, V = ''; |
| 751 '''); | 753 '''); |
| 752 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); | 754 await assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 753 } | 755 } |
| 754 | 756 |
| 755 void test_addTypeAnnotation_topLevelField_wrong_noValue() { | 757 test_addTypeAnnotation_topLevelField_wrong_noValue() async { |
| 756 resolveTestUnit(''' | 758 resolveTestUnit(''' |
| 757 var V; | 759 var V; |
| 758 '''); | 760 '''); |
| 759 assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); | 761 await assertNoAssistAt('var ', DartAssistKind.ADD_TYPE_ANNOTATION); |
| 760 } | 762 } |
| 761 | 763 |
| 762 void test_assignToLocalVariable() { | 764 test_assignToLocalVariable() async { |
| 763 resolveTestUnit(''' | 765 resolveTestUnit(''' |
| 764 main() { | 766 main() { |
| 765 List<int> bytes; | 767 List<int> bytes; |
| 766 readBytes(); | 768 readBytes(); |
| 767 } | 769 } |
| 768 List<int> readBytes() => <int>[]; | 770 List<int> readBytes() => <int>[]; |
| 769 '''); | 771 '''); |
| 770 assertHasAssistAt( | 772 await assertHasAssistAt( |
| 771 'readBytes();', | 773 'readBytes();', |
| 772 DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE, | 774 DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE, |
| 773 ''' | 775 ''' |
| 774 main() { | 776 main() { |
| 775 List<int> bytes; | 777 List<int> bytes; |
| 776 var readBytes = readBytes(); | 778 var readBytes = readBytes(); |
| 777 } | 779 } |
| 778 List<int> readBytes() => <int>[]; | 780 List<int> readBytes() => <int>[]; |
| 779 '''); | 781 '''); |
| 780 _assertLinkedGroup( | 782 _assertLinkedGroup( |
| 781 change.linkedEditGroups[0], | 783 change.linkedEditGroups[0], |
| 782 ['readBytes = '], | 784 ['readBytes = '], |
| 783 expectedSuggestions(LinkedEditSuggestionKind.VARIABLE, | 785 expectedSuggestions(LinkedEditSuggestionKind.VARIABLE, |
| 784 ['list', 'bytes2', 'readBytes'])); | 786 ['list', 'bytes2', 'readBytes'])); |
| 785 } | 787 } |
| 786 | 788 |
| 787 void test_assignToLocalVariable_alreadyAssignment() { | 789 test_assignToLocalVariable_alreadyAssignment() async { |
| 788 resolveTestUnit(''' | 790 resolveTestUnit(''' |
| 789 main() { | 791 main() { |
| 790 var vvv; | 792 var vvv; |
| 791 vvv = 42; | 793 vvv = 42; |
| 792 } | 794 } |
| 793 '''); | 795 '''); |
| 794 assertNoAssistAt('vvv =', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE); | 796 await assertNoAssistAt('vvv =', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE); |
| 795 } | 797 } |
| 796 | 798 |
| 797 void test_assignToLocalVariable_inClosure() { | 799 test_assignToLocalVariable_inClosure() async { |
| 798 resolveTestUnit(r''' | 800 resolveTestUnit(r''' |
| 799 main() { | 801 main() { |
| 800 print(() { | 802 print(() { |
| 801 12345; | 803 12345; |
| 802 }); | 804 }); |
| 803 } | 805 } |
| 804 '''); | 806 '''); |
| 805 assertHasAssistAt( | 807 await assertHasAssistAt( |
| 806 '345', | 808 '345', |
| 807 DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE, | 809 DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE, |
| 808 ''' | 810 ''' |
| 809 main() { | 811 main() { |
| 810 print(() { | 812 print(() { |
| 811 var i = 12345; | 813 var i = 12345; |
| 812 }); | 814 }); |
| 813 } | 815 } |
| 814 '''); | 816 '''); |
| 815 } | 817 } |
| 816 | 818 |
| 817 void test_assignToLocalVariable_invocationArgument() { | 819 test_assignToLocalVariable_invocationArgument() async { |
| 818 resolveTestUnit(r''' | 820 resolveTestUnit(r''' |
| 819 main() { | 821 main() { |
| 820 f(12345); | 822 f(12345); |
| 821 } | 823 } |
| 822 int f(p) {} | 824 int f(p) {} |
| 823 '''); | 825 '''); |
| 824 assertNoAssistAt('345', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE); | 826 await assertNoAssistAt('345', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE); |
| 825 } | 827 } |
| 826 | 828 |
| 827 void test_assignToLocalVariable_throw() { | 829 test_assignToLocalVariable_throw() async { |
| 828 resolveTestUnit(''' | 830 resolveTestUnit(''' |
| 829 main() { | 831 main() { |
| 830 throw 42; | 832 throw 42; |
| 831 } | 833 } |
| 832 '''); | 834 '''); |
| 833 assertNoAssistAt('throw ', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE); | 835 await assertNoAssistAt('throw ', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE); |
| 834 } | 836 } |
| 835 | 837 |
| 836 void test_assignToLocalVariable_void() { | 838 test_assignToLocalVariable_void() async { |
| 837 resolveTestUnit(''' | 839 resolveTestUnit(''' |
| 838 main() { | 840 main() { |
| 839 f(); | 841 f(); |
| 840 } | 842 } |
| 841 void f() {} | 843 void f() {} |
| 842 '''); | 844 '''); |
| 843 assertNoAssistAt('f();', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE); | 845 await assertNoAssistAt('f();', DartAssistKind.ASSIGN_TO_LOCAL_VARIABLE); |
| 844 } | 846 } |
| 845 | 847 |
| 846 void test_convertIntoBlockDocumentationComment_BAD_alreadyBlock() { | 848 test_convertIntoBlockDocumentationComment_BAD_alreadyBlock() async { |
| 847 resolveTestUnit(''' | 849 resolveTestUnit(''' |
| 848 /** | 850 /** |
| 849 * AAAAAAA | 851 * AAAAAAA |
| 850 */ | 852 */ |
| 851 class A {} | 853 class A {} |
| 852 '''); | 854 '''); |
| 853 assertNoAssistAt('AAA', DartAssistKind.CONVERT_DOCUMENTATION_INTO_BLOCK); | 855 await assertNoAssistAt( |
| 856 'AAA', DartAssistKind.CONVERT_DOCUMENTATION_INTO_BLOCK); |
| 854 } | 857 } |
| 855 | 858 |
| 856 void test_convertIntoBlockDocumentationComment_BAD_notDocumentation() { | 859 test_convertIntoBlockDocumentationComment_BAD_notDocumentation() async { |
| 857 resolveTestUnit(''' | 860 resolveTestUnit(''' |
| 858 // AAAA | 861 // AAAA |
| 859 class A {} | 862 class A {} |
| 860 '''); | 863 '''); |
| 861 assertNoAssistAt('AAA', DartAssistKind.CONVERT_DOCUMENTATION_INTO_BLOCK); | 864 await assertNoAssistAt( |
| 865 'AAA', DartAssistKind.CONVERT_DOCUMENTATION_INTO_BLOCK); |
| 862 } | 866 } |
| 863 | 867 |
| 864 void test_convertIntoBlockDocumentationComment_OK_onReference() { | 868 test_convertIntoBlockDocumentationComment_OK_onReference() async { |
| 865 resolveTestUnit(''' | 869 resolveTestUnit(''' |
| 866 /// AAAAAAA [int] AAAAAAA | 870 /// AAAAAAA [int] AAAAAAA |
| 867 class A {} | 871 class A {} |
| 868 '''); | 872 '''); |
| 869 assertHasAssistAt( | 873 await assertHasAssistAt( |
| 870 'nt]', | 874 'nt]', |
| 871 DartAssistKind.CONVERT_DOCUMENTATION_INTO_BLOCK, | 875 DartAssistKind.CONVERT_DOCUMENTATION_INTO_BLOCK, |
| 872 ''' | 876 ''' |
| 873 /** | 877 /** |
| 874 * AAAAAAA [int] AAAAAAA | 878 * AAAAAAA [int] AAAAAAA |
| 875 */ | 879 */ |
| 876 class A {} | 880 class A {} |
| 877 '''); | 881 '''); |
| 878 } | 882 } |
| 879 | 883 |
| 880 void test_convertIntoBlockDocumentationComment_OK_onText() { | 884 test_convertIntoBlockDocumentationComment_OK_onText() async { |
| 881 resolveTestUnit(''' | 885 resolveTestUnit(''' |
| 882 class A { | 886 class A { |
| 883 /// AAAAAAA [int] AAAAAAA | 887 /// AAAAAAA [int] AAAAAAA |
| 884 /// BBBBBBBB BBBB BBBB | 888 /// BBBBBBBB BBBB BBBB |
| 885 /// CCC [A] CCCCCCCCCCC | 889 /// CCC [A] CCCCCCCCCCC |
| 886 mmm() {} | 890 mmm() {} |
| 887 } | 891 } |
| 888 '''); | 892 '''); |
| 889 assertHasAssistAt( | 893 await assertHasAssistAt( |
| 890 'AAA [', | 894 'AAA [', |
| 891 DartAssistKind.CONVERT_DOCUMENTATION_INTO_BLOCK, | 895 DartAssistKind.CONVERT_DOCUMENTATION_INTO_BLOCK, |
| 892 ''' | 896 ''' |
| 893 class A { | 897 class A { |
| 894 /** | 898 /** |
| 895 * AAAAAAA [int] AAAAAAA | 899 * AAAAAAA [int] AAAAAAA |
| 896 * BBBBBBBB BBBB BBBB | 900 * BBBBBBBB BBBB BBBB |
| 897 * CCC [A] CCCCCCCCCCC | 901 * CCC [A] CCCCCCCCCCC |
| 898 */ | 902 */ |
| 899 mmm() {} | 903 mmm() {} |
| 900 } | 904 } |
| 901 '''); | 905 '''); |
| 902 } | 906 } |
| 903 | 907 |
| 904 void test_convertToBlockBody_OK_async() { | 908 test_convertToBlockBody_OK_async() async { |
| 905 resolveTestUnit(''' | 909 resolveTestUnit(''' |
| 906 class A { | 910 class A { |
| 907 mmm() async => 123; | 911 mmm() async => 123; |
| 908 } | 912 } |
| 909 '''); | 913 '''); |
| 910 assertHasAssistAt( | 914 await assertHasAssistAt( |
| 911 'mmm()', | 915 'mmm()', |
| 912 DartAssistKind.CONVERT_INTO_BLOCK_BODY, | 916 DartAssistKind.CONVERT_INTO_BLOCK_BODY, |
| 913 ''' | 917 ''' |
| 914 class A { | 918 class A { |
| 915 mmm() async { | 919 mmm() async { |
| 916 return 123; | 920 return 123; |
| 917 } | 921 } |
| 918 } | 922 } |
| 919 '''); | 923 '''); |
| 920 } | 924 } |
| 921 | 925 |
| 922 void test_convertToBlockBody_OK_closure() { | 926 test_convertToBlockBody_OK_closure() async { |
| 923 resolveTestUnit(''' | 927 resolveTestUnit(''' |
| 924 setup(x) {} | 928 setup(x) {} |
| 925 main() { | 929 main() { |
| 926 setup(() => 42); | 930 setup(() => 42); |
| 927 } | 931 } |
| 928 '''); | 932 '''); |
| 929 assertHasAssistAt( | 933 await assertHasAssistAt( |
| 930 '() => 42', | 934 '() => 42', |
| 931 DartAssistKind.CONVERT_INTO_BLOCK_BODY, | 935 DartAssistKind.CONVERT_INTO_BLOCK_BODY, |
| 932 ''' | 936 ''' |
| 933 setup(x) {} | 937 setup(x) {} |
| 934 main() { | 938 main() { |
| 935 setup(() { | 939 setup(() { |
| 936 return 42; | 940 return 42; |
| 937 }); | 941 }); |
| 938 } | 942 } |
| 939 '''); | 943 '''); |
| 940 { | 944 { |
| 941 Position exitPos = change.selection; | 945 Position exitPos = change.selection; |
| 942 expect(exitPos, isNotNull); | 946 expect(exitPos, isNotNull); |
| 943 expect(exitPos.file, testFile); | 947 expect(exitPos.file, testFile); |
| 944 expect(exitPos.offset - 3, resultCode.indexOf('42;')); | 948 expect(exitPos.offset - 3, resultCode.indexOf('42;')); |
| 945 } | 949 } |
| 946 } | 950 } |
| 947 | 951 |
| 948 void test_convertToBlockBody_OK_closure_voidExpression() { | 952 test_convertToBlockBody_OK_closure_voidExpression() async { |
| 949 resolveTestUnit(''' | 953 resolveTestUnit(''' |
| 950 setup(x) {} | 954 setup(x) {} |
| 951 main() { | 955 main() { |
| 952 setup(() => print('done')); | 956 setup(() => print('done')); |
| 953 } | 957 } |
| 954 '''); | 958 '''); |
| 955 assertHasAssistAt( | 959 await assertHasAssistAt( |
| 956 '() => print', | 960 '() => print', |
| 957 DartAssistKind.CONVERT_INTO_BLOCK_BODY, | 961 DartAssistKind.CONVERT_INTO_BLOCK_BODY, |
| 958 ''' | 962 ''' |
| 959 setup(x) {} | 963 setup(x) {} |
| 960 main() { | 964 main() { |
| 961 setup(() { | 965 setup(() { |
| 962 print('done'); | 966 print('done'); |
| 963 }); | 967 }); |
| 964 } | 968 } |
| 965 '''); | 969 '''); |
| 966 { | 970 { |
| 967 Position exitPos = change.selection; | 971 Position exitPos = change.selection; |
| 968 expect(exitPos, isNotNull); | 972 expect(exitPos, isNotNull); |
| 969 expect(exitPos.file, testFile); | 973 expect(exitPos.file, testFile); |
| 970 expect(exitPos.offset - 3, resultCode.indexOf("');")); | 974 expect(exitPos.offset - 3, resultCode.indexOf("');")); |
| 971 } | 975 } |
| 972 } | 976 } |
| 973 | 977 |
| 974 void test_convertToBlockBody_OK_constructor() { | 978 test_convertToBlockBody_OK_constructor() async { |
| 975 resolveTestUnit(''' | 979 resolveTestUnit(''' |
| 976 class A { | 980 class A { |
| 977 factory A() => null; | 981 factory A() => null; |
| 978 } | 982 } |
| 979 '''); | 983 '''); |
| 980 assertHasAssistAt( | 984 await assertHasAssistAt( |
| 981 'A()', | 985 'A()', |
| 982 DartAssistKind.CONVERT_INTO_BLOCK_BODY, | 986 DartAssistKind.CONVERT_INTO_BLOCK_BODY, |
| 983 ''' | 987 ''' |
| 984 class A { | 988 class A { |
| 985 factory A() { | 989 factory A() { |
| 986 return null; | 990 return null; |
| 987 } | 991 } |
| 988 } | 992 } |
| 989 '''); | 993 '''); |
| 990 } | 994 } |
| 991 | 995 |
| 992 void test_convertToBlockBody_OK_method() { | 996 test_convertToBlockBody_OK_method() async { |
| 993 resolveTestUnit(''' | 997 resolveTestUnit(''' |
| 994 class A { | 998 class A { |
| 995 mmm() => 123; | 999 mmm() => 123; |
| 996 } | 1000 } |
| 997 '''); | 1001 '''); |
| 998 assertHasAssistAt( | 1002 await assertHasAssistAt( |
| 999 'mmm()', | 1003 'mmm()', |
| 1000 DartAssistKind.CONVERT_INTO_BLOCK_BODY, | 1004 DartAssistKind.CONVERT_INTO_BLOCK_BODY, |
| 1001 ''' | 1005 ''' |
| 1002 class A { | 1006 class A { |
| 1003 mmm() { | 1007 mmm() { |
| 1004 return 123; | 1008 return 123; |
| 1005 } | 1009 } |
| 1006 } | 1010 } |
| 1007 '''); | 1011 '''); |
| 1008 } | 1012 } |
| 1009 | 1013 |
| 1010 void test_convertToBlockBody_OK_onName() { | 1014 test_convertToBlockBody_OK_onName() async { |
| 1011 resolveTestUnit(''' | 1015 resolveTestUnit(''' |
| 1012 fff() => 123; | 1016 fff() => 123; |
| 1013 '''); | 1017 '''); |
| 1014 assertHasAssistAt( | 1018 await assertHasAssistAt( |
| 1015 'fff()', | 1019 'fff()', |
| 1016 DartAssistKind.CONVERT_INTO_BLOCK_BODY, | 1020 DartAssistKind.CONVERT_INTO_BLOCK_BODY, |
| 1017 ''' | 1021 ''' |
| 1018 fff() { | 1022 fff() { |
| 1019 return 123; | 1023 return 123; |
| 1020 } | 1024 } |
| 1021 '''); | 1025 '''); |
| 1022 } | 1026 } |
| 1023 | 1027 |
| 1024 void test_convertToBlockBody_OK_onValue() { | 1028 test_convertToBlockBody_OK_onValue() async { |
| 1025 resolveTestUnit(''' | 1029 resolveTestUnit(''' |
| 1026 fff() => 123; | 1030 fff() => 123; |
| 1027 '''); | 1031 '''); |
| 1028 assertHasAssistAt( | 1032 await assertHasAssistAt( |
| 1029 '23;', | 1033 '23;', |
| 1030 DartAssistKind.CONVERT_INTO_BLOCK_BODY, | 1034 DartAssistKind.CONVERT_INTO_BLOCK_BODY, |
| 1031 ''' | 1035 ''' |
| 1032 fff() { | 1036 fff() { |
| 1033 return 123; | 1037 return 123; |
| 1034 } | 1038 } |
| 1035 '''); | 1039 '''); |
| 1036 } | 1040 } |
| 1037 | 1041 |
| 1038 void test_convertToBlockBody_wrong_noEnclosingFunction() { | 1042 test_convertToBlockBody_wrong_noEnclosingFunction() async { |
| 1039 resolveTestUnit(''' | 1043 resolveTestUnit(''' |
| 1040 var v = 123; | 1044 var v = 123; |
| 1041 '''); | 1045 '''); |
| 1042 assertNoAssistAt('v =', DartAssistKind.CONVERT_INTO_BLOCK_BODY); | 1046 await assertNoAssistAt('v =', DartAssistKind.CONVERT_INTO_BLOCK_BODY); |
| 1043 } | 1047 } |
| 1044 | 1048 |
| 1045 void test_convertToBlockBody_wrong_notExpressionBlock() { | 1049 test_convertToBlockBody_wrong_notExpressionBlock() async { |
| 1046 resolveTestUnit(''' | 1050 resolveTestUnit(''' |
| 1047 fff() { | 1051 fff() { |
| 1048 return 123; | 1052 return 123; |
| 1049 } | 1053 } |
| 1050 '''); | 1054 '''); |
| 1051 assertNoAssistAt('fff() {', DartAssistKind.CONVERT_INTO_BLOCK_BODY); | 1055 await assertNoAssistAt('fff() {', DartAssistKind.CONVERT_INTO_BLOCK_BODY); |
| 1052 } | 1056 } |
| 1053 | 1057 |
| 1054 void test_convertToExpressionBody_OK_async() { | 1058 test_convertToExpressionBody_OK_async() async { |
| 1055 resolveTestUnit(''' | 1059 resolveTestUnit(''' |
| 1056 class A { | 1060 class A { |
| 1057 mmm() async { | 1061 mmm() async { |
| 1058 return 42; | 1062 return 42; |
| 1059 } | 1063 } |
| 1060 } | 1064 } |
| 1061 '''); | 1065 '''); |
| 1062 assertHasAssistAt( | 1066 await assertHasAssistAt( |
| 1063 'mmm', | 1067 'mmm', |
| 1064 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, | 1068 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, |
| 1065 ''' | 1069 ''' |
| 1066 class A { | 1070 class A { |
| 1067 mmm() async => 42; | 1071 mmm() async => 42; |
| 1068 } | 1072 } |
| 1069 '''); | 1073 '''); |
| 1070 } | 1074 } |
| 1071 | 1075 |
| 1072 void test_convertToExpressionBody_OK_closure() { | 1076 test_convertToExpressionBody_OK_closure() async { |
| 1073 resolveTestUnit(''' | 1077 resolveTestUnit(''' |
| 1074 setup(x) {} | 1078 setup(x) {} |
| 1075 main() { | 1079 main() { |
| 1076 setup(() { | 1080 setup(() { |
| 1077 return 42; | 1081 return 42; |
| 1078 }); | 1082 }); |
| 1079 } | 1083 } |
| 1080 '''); | 1084 '''); |
| 1081 assertHasAssistAt( | 1085 await assertHasAssistAt( |
| 1082 '42;', | 1086 '42;', |
| 1083 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, | 1087 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, |
| 1084 ''' | 1088 ''' |
| 1085 setup(x) {} | 1089 setup(x) {} |
| 1086 main() { | 1090 main() { |
| 1087 setup(() => 42); | 1091 setup(() => 42); |
| 1088 } | 1092 } |
| 1089 '''); | 1093 '''); |
| 1090 } | 1094 } |
| 1091 | 1095 |
| 1092 void test_convertToExpressionBody_OK_closure_voidExpression() { | 1096 test_convertToExpressionBody_OK_closure_voidExpression() async { |
| 1093 resolveTestUnit(''' | 1097 resolveTestUnit(''' |
| 1094 setup(x) {} | 1098 setup(x) {} |
| 1095 main() { | 1099 main() { |
| 1096 setup(() { | 1100 setup(() { |
| 1097 print('test'); | 1101 print('test'); |
| 1098 }); | 1102 }); |
| 1099 } | 1103 } |
| 1100 '''); | 1104 '''); |
| 1101 assertHasAssistAt( | 1105 await assertHasAssistAt( |
| 1102 'print(', | 1106 'print(', |
| 1103 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, | 1107 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, |
| 1104 ''' | 1108 ''' |
| 1105 setup(x) {} | 1109 setup(x) {} |
| 1106 main() { | 1110 main() { |
| 1107 setup(() => print('test')); | 1111 setup(() => print('test')); |
| 1108 } | 1112 } |
| 1109 '''); | 1113 '''); |
| 1110 } | 1114 } |
| 1111 | 1115 |
| 1112 void test_convertToExpressionBody_OK_constructor() { | 1116 test_convertToExpressionBody_OK_constructor() async { |
| 1113 resolveTestUnit(''' | 1117 resolveTestUnit(''' |
| 1114 class A { | 1118 class A { |
| 1115 factory A() { | 1119 factory A() { |
| 1116 return null; | 1120 return null; |
| 1117 } | 1121 } |
| 1118 } | 1122 } |
| 1119 '''); | 1123 '''); |
| 1120 assertHasAssistAt( | 1124 await assertHasAssistAt( |
| 1121 'A()', | 1125 'A()', |
| 1122 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, | 1126 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, |
| 1123 ''' | 1127 ''' |
| 1124 class A { | 1128 class A { |
| 1125 factory A() => null; | 1129 factory A() => null; |
| 1126 } | 1130 } |
| 1127 '''); | 1131 '''); |
| 1128 } | 1132 } |
| 1129 | 1133 |
| 1130 void test_convertToExpressionBody_OK_function_onBlock() { | 1134 test_convertToExpressionBody_OK_function_onBlock() async { |
| 1131 resolveTestUnit(''' | 1135 resolveTestUnit(''' |
| 1132 fff() { | 1136 fff() { |
| 1133 return 42; | 1137 return 42; |
| 1134 } | 1138 } |
| 1135 '''); | 1139 '''); |
| 1136 assertHasAssistAt( | 1140 await assertHasAssistAt( |
| 1137 '{', | 1141 '{', |
| 1138 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, | 1142 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, |
| 1139 ''' | 1143 ''' |
| 1140 fff() => 42; | 1144 fff() => 42; |
| 1141 '''); | 1145 '''); |
| 1142 } | 1146 } |
| 1143 | 1147 |
| 1144 void test_convertToExpressionBody_OK_function_onName() { | 1148 test_convertToExpressionBody_OK_function_onName() async { |
| 1145 resolveTestUnit(''' | 1149 resolveTestUnit(''' |
| 1146 fff() { | 1150 fff() { |
| 1147 return 42; | 1151 return 42; |
| 1148 } | 1152 } |
| 1149 '''); | 1153 '''); |
| 1150 assertHasAssistAt( | 1154 await assertHasAssistAt( |
| 1151 'ff()', | 1155 'ff()', |
| 1152 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, | 1156 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, |
| 1153 ''' | 1157 ''' |
| 1154 fff() => 42; | 1158 fff() => 42; |
| 1155 '''); | 1159 '''); |
| 1156 } | 1160 } |
| 1157 | 1161 |
| 1158 void test_convertToExpressionBody_OK_method_onBlock() { | 1162 test_convertToExpressionBody_OK_method_onBlock() async { |
| 1159 resolveTestUnit(''' | 1163 resolveTestUnit(''' |
| 1160 class A { | 1164 class A { |
| 1161 m() { // marker | 1165 m() { // marker |
| 1162 return 42; | 1166 return 42; |
| 1163 } | 1167 } |
| 1164 } | 1168 } |
| 1165 '''); | 1169 '''); |
| 1166 assertHasAssistAt( | 1170 await assertHasAssistAt( |
| 1167 '{ // marker', | 1171 '{ // marker', |
| 1168 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, | 1172 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, |
| 1169 ''' | 1173 ''' |
| 1170 class A { | 1174 class A { |
| 1171 m() => 42; | 1175 m() => 42; |
| 1172 } | 1176 } |
| 1173 '''); | 1177 '''); |
| 1174 } | 1178 } |
| 1175 | 1179 |
| 1176 void test_convertToExpressionBody_OK_topFunction_onReturnStatement() { | 1180 test_convertToExpressionBody_OK_topFunction_onReturnStatement() async { |
| 1177 resolveTestUnit(''' | 1181 resolveTestUnit(''' |
| 1178 fff() { | 1182 fff() { |
| 1179 return 42; | 1183 return 42; |
| 1180 } | 1184 } |
| 1181 '''); | 1185 '''); |
| 1182 assertHasAssistAt( | 1186 await assertHasAssistAt( |
| 1183 'return', | 1187 'return', |
| 1184 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, | 1188 DartAssistKind.CONVERT_INTO_EXPRESSION_BODY, |
| 1185 ''' | 1189 ''' |
| 1186 fff() => 42; | 1190 fff() => 42; |
| 1187 '''); | 1191 '''); |
| 1188 } | 1192 } |
| 1189 | 1193 |
| 1190 void test_convertToExpressionBody_wrong_already() { | 1194 test_convertToExpressionBody_wrong_already() async { |
| 1191 resolveTestUnit(''' | 1195 resolveTestUnit(''' |
| 1192 fff() => 42; | 1196 fff() => 42; |
| 1193 '''); | 1197 '''); |
| 1194 assertNoAssistAt('fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); | 1198 await assertNoAssistAt( |
| 1199 'fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); |
| 1195 } | 1200 } |
| 1196 | 1201 |
| 1197 void test_convertToExpressionBody_wrong_moreThanOneStatement() { | 1202 test_convertToExpressionBody_wrong_moreThanOneStatement() async { |
| 1198 resolveTestUnit(''' | 1203 resolveTestUnit(''' |
| 1199 fff() { | 1204 fff() { |
| 1200 var v = 42; | 1205 var v = 42; |
| 1201 return v; | 1206 return v; |
| 1202 } | 1207 } |
| 1203 '''); | 1208 '''); |
| 1204 assertNoAssistAt('fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); | 1209 await assertNoAssistAt( |
| 1210 'fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); |
| 1205 } | 1211 } |
| 1206 | 1212 |
| 1207 void test_convertToExpressionBody_wrong_noEnclosingFunction() { | 1213 test_convertToExpressionBody_wrong_noEnclosingFunction() async { |
| 1208 resolveTestUnit(''' | 1214 resolveTestUnit(''' |
| 1209 var V = 42; | 1215 var V = 42; |
| 1210 '''); | 1216 '''); |
| 1211 assertNoAssistAt('V = ', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); | 1217 await assertNoAssistAt('V = ', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); |
| 1212 } | 1218 } |
| 1213 | 1219 |
| 1214 void test_convertToExpressionBody_wrong_noReturn() { | 1220 test_convertToExpressionBody_wrong_noReturn() async { |
| 1215 resolveTestUnit(''' | 1221 resolveTestUnit(''' |
| 1216 fff() { | 1222 fff() { |
| 1217 var v = 42; | 1223 var v = 42; |
| 1218 } | 1224 } |
| 1219 '''); | 1225 '''); |
| 1220 assertNoAssistAt('fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); | 1226 await assertNoAssistAt( |
| 1227 'fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); |
| 1221 } | 1228 } |
| 1222 | 1229 |
| 1223 void test_convertToExpressionBody_wrong_noReturnValue() { | 1230 test_convertToExpressionBody_wrong_noReturnValue() async { |
| 1224 resolveTestUnit(''' | 1231 resolveTestUnit(''' |
| 1225 fff() { | 1232 fff() { |
| 1226 return; | 1233 return; |
| 1227 } | 1234 } |
| 1228 '''); | 1235 '''); |
| 1229 assertNoAssistAt('fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); | 1236 await assertNoAssistAt( |
| 1237 'fff()', DartAssistKind.CONVERT_INTO_EXPRESSION_BODY); |
| 1230 } | 1238 } |
| 1231 | 1239 |
| 1232 void test_convertToFieldParameter_BAD_additionalUse() { | 1240 test_convertToFieldParameter_BAD_additionalUse() async { |
| 1233 resolveTestUnit(''' | 1241 resolveTestUnit(''' |
| 1234 class A { | 1242 class A { |
| 1235 int aaa2; | 1243 int aaa2; |
| 1236 int bbb2; | 1244 int bbb2; |
| 1237 A(int aaa) : aaa2 = aaa, bbb2 = aaa; | 1245 A(int aaa) : aaa2 = aaa, bbb2 = aaa; |
| 1238 } | 1246 } |
| 1239 '''); | 1247 '''); |
| 1240 assertNoAssistAt('aaa)', DartAssistKind.CONVERT_TO_FIELD_PARAMETER); | 1248 await assertNoAssistAt('aaa)', DartAssistKind.CONVERT_TO_FIELD_PARAMETER); |
| 1241 } | 1249 } |
| 1242 | 1250 |
| 1243 void test_convertToFieldParameter_BAD_notPureAssignment() { | 1251 test_convertToFieldParameter_BAD_notPureAssignment() async { |
| 1244 resolveTestUnit(''' | 1252 resolveTestUnit(''' |
| 1245 class A { | 1253 class A { |
| 1246 int aaa2; | 1254 int aaa2; |
| 1247 A(int aaa) : aaa2 = aaa * 2; | 1255 A(int aaa) : aaa2 = aaa * 2; |
| 1248 } | 1256 } |
| 1249 '''); | 1257 '''); |
| 1250 assertNoAssistAt('aaa)', DartAssistKind.CONVERT_TO_FIELD_PARAMETER); | 1258 await assertNoAssistAt('aaa)', DartAssistKind.CONVERT_TO_FIELD_PARAMETER); |
| 1251 } | 1259 } |
| 1252 | 1260 |
| 1253 void test_convertToFieldParameter_OK_firstInitializer() { | 1261 test_convertToFieldParameter_OK_firstInitializer() async { |
| 1254 resolveTestUnit(''' | 1262 resolveTestUnit(''' |
| 1255 class A { | 1263 class A { |
| 1256 double aaa2; | 1264 double aaa2; |
| 1257 int bbb2; | 1265 int bbb2; |
| 1258 A(int aaa, int bbb) : aaa2 = aaa, bbb2 = bbb; | 1266 A(int aaa, int bbb) : aaa2 = aaa, bbb2 = bbb; |
| 1259 } | 1267 } |
| 1260 '''); | 1268 '''); |
| 1261 assertHasAssistAt( | 1269 await assertHasAssistAt( |
| 1262 'aaa, ', | 1270 'aaa, ', |
| 1263 DartAssistKind.CONVERT_TO_FIELD_PARAMETER, | 1271 DartAssistKind.CONVERT_TO_FIELD_PARAMETER, |
| 1264 ''' | 1272 ''' |
| 1265 class A { | 1273 class A { |
| 1266 double aaa2; | 1274 double aaa2; |
| 1267 int bbb2; | 1275 int bbb2; |
| 1268 A(this.aaa2, int bbb) : bbb2 = bbb; | 1276 A(this.aaa2, int bbb) : bbb2 = bbb; |
| 1269 } | 1277 } |
| 1270 '''); | 1278 '''); |
| 1271 } | 1279 } |
| 1272 | 1280 |
| 1273 void test_convertToFieldParameter_OK_onParameterName_inInitializer() { | 1281 test_convertToFieldParameter_OK_onParameterName_inInitializer() async { |
| 1274 resolveTestUnit(''' | 1282 resolveTestUnit(''' |
| 1275 class A { | 1283 class A { |
| 1276 int test2; | 1284 int test2; |
| 1277 A(int test) : test2 = test { | 1285 A(int test) : test2 = test { |
| 1278 } | 1286 } |
| 1279 } | 1287 } |
| 1280 '''); | 1288 '''); |
| 1281 assertHasAssistAt( | 1289 await assertHasAssistAt( |
| 1282 'test {', | 1290 'test {', |
| 1283 DartAssistKind.CONVERT_TO_FIELD_PARAMETER, | 1291 DartAssistKind.CONVERT_TO_FIELD_PARAMETER, |
| 1284 ''' | 1292 ''' |
| 1285 class A { | 1293 class A { |
| 1286 int test2; | 1294 int test2; |
| 1287 A(this.test2) { | 1295 A(this.test2) { |
| 1288 } | 1296 } |
| 1289 } | 1297 } |
| 1290 '''); | 1298 '''); |
| 1291 } | 1299 } |
| 1292 | 1300 |
| 1293 void test_convertToFieldParameter_OK_onParameterName_inParameters() { | 1301 test_convertToFieldParameter_OK_onParameterName_inParameters() async { |
| 1294 resolveTestUnit(''' | 1302 resolveTestUnit(''' |
| 1295 class A { | 1303 class A { |
| 1296 int test; | 1304 int test; |
| 1297 A(int test) : test = test { | 1305 A(int test) : test = test { |
| 1298 } | 1306 } |
| 1299 } | 1307 } |
| 1300 '''); | 1308 '''); |
| 1301 assertHasAssistAt( | 1309 await assertHasAssistAt( |
| 1302 'test)', | 1310 'test)', |
| 1303 DartAssistKind.CONVERT_TO_FIELD_PARAMETER, | 1311 DartAssistKind.CONVERT_TO_FIELD_PARAMETER, |
| 1304 ''' | 1312 ''' |
| 1305 class A { | 1313 class A { |
| 1306 int test; | 1314 int test; |
| 1307 A(this.test) { | 1315 A(this.test) { |
| 1308 } | 1316 } |
| 1309 } | 1317 } |
| 1310 '''); | 1318 '''); |
| 1311 } | 1319 } |
| 1312 | 1320 |
| 1313 void test_convertToFieldParameter_OK_secondInitializer() { | 1321 test_convertToFieldParameter_OK_secondInitializer() async { |
| 1314 resolveTestUnit(''' | 1322 resolveTestUnit(''' |
| 1315 class A { | 1323 class A { |
| 1316 double aaa2; | 1324 double aaa2; |
| 1317 int bbb2; | 1325 int bbb2; |
| 1318 A(int aaa, int bbb) : aaa2 = aaa, bbb2 = bbb; | 1326 A(int aaa, int bbb) : aaa2 = aaa, bbb2 = bbb; |
| 1319 } | 1327 } |
| 1320 '''); | 1328 '''); |
| 1321 assertHasAssistAt( | 1329 await assertHasAssistAt( |
| 1322 'bbb)', | 1330 'bbb)', |
| 1323 DartAssistKind.CONVERT_TO_FIELD_PARAMETER, | 1331 DartAssistKind.CONVERT_TO_FIELD_PARAMETER, |
| 1324 ''' | 1332 ''' |
| 1325 class A { | 1333 class A { |
| 1326 double aaa2; | 1334 double aaa2; |
| 1327 int bbb2; | 1335 int bbb2; |
| 1328 A(int aaa, this.bbb2) : aaa2 = aaa; | 1336 A(int aaa, this.bbb2) : aaa2 = aaa; |
| 1329 } | 1337 } |
| 1330 '''); | 1338 '''); |
| 1331 } | 1339 } |
| 1332 | 1340 |
| 1333 void test_convertToForIndex_BAD_bodyNotBlock() { | 1341 test_convertToForIndex_BAD_bodyNotBlock() async { |
| 1334 resolveTestUnit(''' | 1342 resolveTestUnit(''' |
| 1335 main(List<String> items) { | 1343 main(List<String> items) { |
| 1336 for (String item in items) print(item); | 1344 for (String item in items) print(item); |
| 1337 } | 1345 } |
| 1338 '''); | 1346 '''); |
| 1339 assertNoAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX); | 1347 await assertNoAssistAt( |
| 1348 'for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX); |
| 1340 } | 1349 } |
| 1341 | 1350 |
| 1342 void test_convertToForIndex_BAD_doesNotDeclareVariable() { | 1351 test_convertToForIndex_BAD_doesNotDeclareVariable() async { |
| 1343 resolveTestUnit(''' | 1352 resolveTestUnit(''' |
| 1344 main(List<String> items) { | 1353 main(List<String> items) { |
| 1345 String item; | 1354 String item; |
| 1346 for (item in items) { | 1355 for (item in items) { |
| 1347 print(item); | 1356 print(item); |
| 1348 } | 1357 } |
| 1349 } | 1358 } |
| 1350 '''); | 1359 '''); |
| 1351 assertNoAssistAt('for (item', DartAssistKind.CONVERT_INTO_FOR_INDEX); | 1360 await assertNoAssistAt('for (item', DartAssistKind.CONVERT_INTO_FOR_INDEX); |
| 1352 } | 1361 } |
| 1353 | 1362 |
| 1354 void test_convertToForIndex_BAD_iterableIsNotVariable() { | 1363 test_convertToForIndex_BAD_iterableIsNotVariable() async { |
| 1355 resolveTestUnit(''' | 1364 resolveTestUnit(''' |
| 1356 main() { | 1365 main() { |
| 1357 for (String item in ['a', 'b', 'c']) { | 1366 for (String item in ['a', 'b', 'c']) { |
| 1358 print(item); | 1367 print(item); |
| 1359 } | 1368 } |
| 1360 } | 1369 } |
| 1361 '''); | 1370 '''); |
| 1362 assertNoAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX); | 1371 await assertNoAssistAt( |
| 1372 'for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX); |
| 1363 } | 1373 } |
| 1364 | 1374 |
| 1365 void test_convertToForIndex_BAD_iterableNotList() { | 1375 test_convertToForIndex_BAD_iterableNotList() async { |
| 1366 resolveTestUnit(''' | 1376 resolveTestUnit(''' |
| 1367 main(Iterable<String> items) { | 1377 main(Iterable<String> items) { |
| 1368 for (String item in items) { | 1378 for (String item in items) { |
| 1369 print(item); | 1379 print(item); |
| 1370 } | 1380 } |
| 1371 } | 1381 } |
| 1372 '''); | 1382 '''); |
| 1373 assertNoAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX); | 1383 await assertNoAssistAt( |
| 1384 'for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX); |
| 1374 } | 1385 } |
| 1375 | 1386 |
| 1376 void test_convertToForIndex_BAD_usesIJK() { | 1387 test_convertToForIndex_BAD_usesIJK() async { |
| 1377 resolveTestUnit(''' | 1388 resolveTestUnit(''' |
| 1378 main(List<String> items) { | 1389 main(List<String> items) { |
| 1379 for (String item in items) { | 1390 for (String item in items) { |
| 1380 print(item); | 1391 print(item); |
| 1381 int i, j, k; | 1392 int i, j, k; |
| 1382 } | 1393 } |
| 1383 } | 1394 } |
| 1384 '''); | 1395 '''); |
| 1385 assertNoAssistAt('for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX); | 1396 await assertNoAssistAt( |
| 1397 'for (String', DartAssistKind.CONVERT_INTO_FOR_INDEX); |
| 1386 } | 1398 } |
| 1387 | 1399 |
| 1388 void test_convertToForIndex_OK_onDeclaredIdentifier_name() { | 1400 test_convertToForIndex_OK_onDeclaredIdentifier_name() async { |
| 1389 resolveTestUnit(''' | 1401 resolveTestUnit(''' |
| 1390 main(List<String> items) { | 1402 main(List<String> items) { |
| 1391 for (String item in items) { | 1403 for (String item in items) { |
| 1392 print(item); | 1404 print(item); |
| 1393 } | 1405 } |
| 1394 } | 1406 } |
| 1395 '''); | 1407 '''); |
| 1396 assertHasAssistAt( | 1408 await assertHasAssistAt( |
| 1397 'item in', | 1409 'item in', |
| 1398 DartAssistKind.CONVERT_INTO_FOR_INDEX, | 1410 DartAssistKind.CONVERT_INTO_FOR_INDEX, |
| 1399 ''' | 1411 ''' |
| 1400 main(List<String> items) { | 1412 main(List<String> items) { |
| 1401 for (int i = 0; i < items.length; i++) { | 1413 for (int i = 0; i < items.length; i++) { |
| 1402 String item = items[i]; | 1414 String item = items[i]; |
| 1403 print(item); | 1415 print(item); |
| 1404 } | 1416 } |
| 1405 } | 1417 } |
| 1406 '''); | 1418 '''); |
| 1407 } | 1419 } |
| 1408 | 1420 |
| 1409 void test_convertToForIndex_OK_onDeclaredIdentifier_type() { | 1421 test_convertToForIndex_OK_onDeclaredIdentifier_type() async { |
| 1410 resolveTestUnit(''' | 1422 resolveTestUnit(''' |
| 1411 main(List<String> items) { | 1423 main(List<String> items) { |
| 1412 for (String item in items) { | 1424 for (String item in items) { |
| 1413 print(item); | 1425 print(item); |
| 1414 } | 1426 } |
| 1415 } | 1427 } |
| 1416 '''); | 1428 '''); |
| 1417 assertHasAssistAt( | 1429 await assertHasAssistAt( |
| 1418 'tring item', | 1430 'tring item', |
| 1419 DartAssistKind.CONVERT_INTO_FOR_INDEX, | 1431 DartAssistKind.CONVERT_INTO_FOR_INDEX, |
| 1420 ''' | 1432 ''' |
| 1421 main(List<String> items) { | 1433 main(List<String> items) { |
| 1422 for (int i = 0; i < items.length; i++) { | 1434 for (int i = 0; i < items.length; i++) { |
| 1423 String item = items[i]; | 1435 String item = items[i]; |
| 1424 print(item); | 1436 print(item); |
| 1425 } | 1437 } |
| 1426 } | 1438 } |
| 1427 '''); | 1439 '''); |
| 1428 } | 1440 } |
| 1429 | 1441 |
| 1430 void test_convertToForIndex_OK_onFor() { | 1442 test_convertToForIndex_OK_onFor() async { |
| 1431 resolveTestUnit(''' | 1443 resolveTestUnit(''' |
| 1432 main(List<String> items) { | 1444 main(List<String> items) { |
| 1433 for (String item in items) { | 1445 for (String item in items) { |
| 1434 print(item); | 1446 print(item); |
| 1435 } | 1447 } |
| 1436 } | 1448 } |
| 1437 '''); | 1449 '''); |
| 1438 assertHasAssistAt( | 1450 await assertHasAssistAt( |
| 1439 'for (String', | 1451 'for (String', |
| 1440 DartAssistKind.CONVERT_INTO_FOR_INDEX, | 1452 DartAssistKind.CONVERT_INTO_FOR_INDEX, |
| 1441 ''' | 1453 ''' |
| 1442 main(List<String> items) { | 1454 main(List<String> items) { |
| 1443 for (int i = 0; i < items.length; i++) { | 1455 for (int i = 0; i < items.length; i++) { |
| 1444 String item = items[i]; | 1456 String item = items[i]; |
| 1445 print(item); | 1457 print(item); |
| 1446 } | 1458 } |
| 1447 } | 1459 } |
| 1448 '''); | 1460 '''); |
| 1449 } | 1461 } |
| 1450 | 1462 |
| 1451 void test_convertToForIndex_OK_usesI() { | 1463 test_convertToForIndex_OK_usesI() async { |
| 1452 resolveTestUnit(''' | 1464 resolveTestUnit(''' |
| 1453 main(List<String> items) { | 1465 main(List<String> items) { |
| 1454 for (String item in items) { | 1466 for (String item in items) { |
| 1455 int i = 0; | 1467 int i = 0; |
| 1456 } | 1468 } |
| 1457 } | 1469 } |
| 1458 '''); | 1470 '''); |
| 1459 assertHasAssistAt( | 1471 await assertHasAssistAt( |
| 1460 'for (String', | 1472 'for (String', |
| 1461 DartAssistKind.CONVERT_INTO_FOR_INDEX, | 1473 DartAssistKind.CONVERT_INTO_FOR_INDEX, |
| 1462 ''' | 1474 ''' |
| 1463 main(List<String> items) { | 1475 main(List<String> items) { |
| 1464 for (int j = 0; j < items.length; j++) { | 1476 for (int j = 0; j < items.length; j++) { |
| 1465 String item = items[j]; | 1477 String item = items[j]; |
| 1466 int i = 0; | 1478 int i = 0; |
| 1467 } | 1479 } |
| 1468 } | 1480 } |
| 1469 '''); | 1481 '''); |
| 1470 } | 1482 } |
| 1471 | 1483 |
| 1472 void test_convertToForIndex_OK_usesIJ() { | 1484 test_convertToForIndex_OK_usesIJ() async { |
| 1473 resolveTestUnit(''' | 1485 resolveTestUnit(''' |
| 1474 main(List<String> items) { | 1486 main(List<String> items) { |
| 1475 for (String item in items) { | 1487 for (String item in items) { |
| 1476 print(item); | 1488 print(item); |
| 1477 int i = 0, j = 1; | 1489 int i = 0, j = 1; |
| 1478 } | 1490 } |
| 1479 } | 1491 } |
| 1480 '''); | 1492 '''); |
| 1481 assertHasAssistAt( | 1493 await assertHasAssistAt( |
| 1482 'for (String', | 1494 'for (String', |
| 1483 DartAssistKind.CONVERT_INTO_FOR_INDEX, | 1495 DartAssistKind.CONVERT_INTO_FOR_INDEX, |
| 1484 ''' | 1496 ''' |
| 1485 main(List<String> items) { | 1497 main(List<String> items) { |
| 1486 for (int k = 0; k < items.length; k++) { | 1498 for (int k = 0; k < items.length; k++) { |
| 1487 String item = items[k]; | 1499 String item = items[k]; |
| 1488 print(item); | 1500 print(item); |
| 1489 int i = 0, j = 1; | 1501 int i = 0, j = 1; |
| 1490 } | 1502 } |
| 1491 } | 1503 } |
| 1492 '''); | 1504 '''); |
| 1493 } | 1505 } |
| 1494 | 1506 |
| 1495 void test_convertToIsNot_OK_childOfIs_left() { | 1507 test_convertToIsNot_OK_childOfIs_left() async { |
| 1496 resolveTestUnit(''' | 1508 resolveTestUnit(''' |
| 1497 main(p) { | 1509 main(p) { |
| 1498 !(p is String); | 1510 !(p is String); |
| 1499 } | 1511 } |
| 1500 '''); | 1512 '''); |
| 1501 assertHasAssistAt( | 1513 await assertHasAssistAt( |
| 1502 'p is', | 1514 'p is', |
| 1503 DartAssistKind.CONVERT_INTO_IS_NOT, | 1515 DartAssistKind.CONVERT_INTO_IS_NOT, |
| 1504 ''' | 1516 ''' |
| 1505 main(p) { | 1517 main(p) { |
| 1506 p is! String; | 1518 p is! String; |
| 1507 } | 1519 } |
| 1508 '''); | 1520 '''); |
| 1509 } | 1521 } |
| 1510 | 1522 |
| 1511 void test_convertToIsNot_OK_childOfIs_right() { | 1523 test_convertToIsNot_OK_childOfIs_right() async { |
| 1512 resolveTestUnit(''' | 1524 resolveTestUnit(''' |
| 1513 main(p) { | 1525 main(p) { |
| 1514 !(p is String); | 1526 !(p is String); |
| 1515 } | 1527 } |
| 1516 '''); | 1528 '''); |
| 1517 assertHasAssistAt( | 1529 await assertHasAssistAt( |
| 1518 'String)', | 1530 'String)', |
| 1519 DartAssistKind.CONVERT_INTO_IS_NOT, | 1531 DartAssistKind.CONVERT_INTO_IS_NOT, |
| 1520 ''' | 1532 ''' |
| 1521 main(p) { | 1533 main(p) { |
| 1522 p is! String; | 1534 p is! String; |
| 1523 } | 1535 } |
| 1524 '''); | 1536 '''); |
| 1525 } | 1537 } |
| 1526 | 1538 |
| 1527 void test_convertToIsNot_OK_is() { | 1539 test_convertToIsNot_OK_is() async { |
| 1528 resolveTestUnit(''' | 1540 resolveTestUnit(''' |
| 1529 main(p) { | 1541 main(p) { |
| 1530 !(p is String); | 1542 !(p is String); |
| 1531 } | 1543 } |
| 1532 '''); | 1544 '''); |
| 1533 assertHasAssistAt( | 1545 await assertHasAssistAt( |
| 1534 'is String', | 1546 'is String', |
| 1535 DartAssistKind.CONVERT_INTO_IS_NOT, | 1547 DartAssistKind.CONVERT_INTO_IS_NOT, |
| 1536 ''' | 1548 ''' |
| 1537 main(p) { | 1549 main(p) { |
| 1538 p is! String; | 1550 p is! String; |
| 1539 } | 1551 } |
| 1540 '''); | 1552 '''); |
| 1541 } | 1553 } |
| 1542 | 1554 |
| 1543 void test_convertToIsNot_OK_is_higherPrecedencePrefix() { | 1555 test_convertToIsNot_OK_is_higherPrecedencePrefix() async { |
| 1544 resolveTestUnit(''' | 1556 resolveTestUnit(''' |
| 1545 main(p) { | 1557 main(p) { |
| 1546 !!(p is String); | 1558 !!(p is String); |
| 1547 } | 1559 } |
| 1548 '''); | 1560 '''); |
| 1549 assertHasAssistAt( | 1561 await assertHasAssistAt( |
| 1550 'is String', | 1562 'is String', |
| 1551 DartAssistKind.CONVERT_INTO_IS_NOT, | 1563 DartAssistKind.CONVERT_INTO_IS_NOT, |
| 1552 ''' | 1564 ''' |
| 1553 main(p) { | 1565 main(p) { |
| 1554 !(p is! String); | 1566 !(p is! String); |
| 1555 } | 1567 } |
| 1556 '''); | 1568 '''); |
| 1557 } | 1569 } |
| 1558 | 1570 |
| 1559 void test_convertToIsNot_OK_is_not_higherPrecedencePrefix() { | 1571 test_convertToIsNot_OK_is_not_higherPrecedencePrefix() async { |
| 1560 resolveTestUnit(''' | 1572 resolveTestUnit(''' |
| 1561 main(p) { | 1573 main(p) { |
| 1562 !!(p is String); | 1574 !!(p is String); |
| 1563 } | 1575 } |
| 1564 '''); | 1576 '''); |
| 1565 assertHasAssistAt( | 1577 await assertHasAssistAt( |
| 1566 '!(p', | 1578 '!(p', |
| 1567 DartAssistKind.CONVERT_INTO_IS_NOT, | 1579 DartAssistKind.CONVERT_INTO_IS_NOT, |
| 1568 ''' | 1580 ''' |
| 1569 main(p) { | 1581 main(p) { |
| 1570 !(p is! String); | 1582 !(p is! String); |
| 1571 } | 1583 } |
| 1572 '''); | 1584 '''); |
| 1573 } | 1585 } |
| 1574 | 1586 |
| 1575 void test_convertToIsNot_OK_not() { | 1587 test_convertToIsNot_OK_not() async { |
| 1576 resolveTestUnit(''' | 1588 resolveTestUnit(''' |
| 1577 main(p) { | 1589 main(p) { |
| 1578 !(p is String); | 1590 !(p is String); |
| 1579 } | 1591 } |
| 1580 '''); | 1592 '''); |
| 1581 assertHasAssistAt( | 1593 await assertHasAssistAt( |
| 1582 '!(p', | 1594 '!(p', |
| 1583 DartAssistKind.CONVERT_INTO_IS_NOT, | 1595 DartAssistKind.CONVERT_INTO_IS_NOT, |
| 1584 ''' | 1596 ''' |
| 1585 main(p) { | 1597 main(p) { |
| 1586 p is! String; | 1598 p is! String; |
| 1587 } | 1599 } |
| 1588 '''); | 1600 '''); |
| 1589 } | 1601 } |
| 1590 | 1602 |
| 1591 void test_convertToIsNot_OK_parentheses() { | 1603 test_convertToIsNot_OK_parentheses() async { |
| 1592 resolveTestUnit(''' | 1604 resolveTestUnit(''' |
| 1593 main(p) { | 1605 main(p) { |
| 1594 !(p is String); | 1606 !(p is String); |
| 1595 } | 1607 } |
| 1596 '''); | 1608 '''); |
| 1597 assertHasAssistAt( | 1609 await assertHasAssistAt( |
| 1598 '(p is', | 1610 '(p is', |
| 1599 DartAssistKind.CONVERT_INTO_IS_NOT, | 1611 DartAssistKind.CONVERT_INTO_IS_NOT, |
| 1600 ''' | 1612 ''' |
| 1601 main(p) { | 1613 main(p) { |
| 1602 p is! String; | 1614 p is! String; |
| 1603 } | 1615 } |
| 1604 '''); | 1616 '''); |
| 1605 } | 1617 } |
| 1606 | 1618 |
| 1607 void test_convertToIsNot_wrong_is_alreadyIsNot() { | 1619 test_convertToIsNot_wrong_is_alreadyIsNot() async { |
| 1608 resolveTestUnit(''' | 1620 resolveTestUnit(''' |
| 1609 main(p) { | 1621 main(p) { |
| 1610 p is! String; | 1622 p is! String; |
| 1611 } | 1623 } |
| 1612 '''); | 1624 '''); |
| 1613 assertNoAssistAt('is!', DartAssistKind.CONVERT_INTO_IS_NOT); | 1625 await assertNoAssistAt('is!', DartAssistKind.CONVERT_INTO_IS_NOT); |
| 1614 } | 1626 } |
| 1615 | 1627 |
| 1616 void test_convertToIsNot_wrong_is_noEnclosingParenthesis() { | 1628 test_convertToIsNot_wrong_is_noEnclosingParenthesis() async { |
| 1617 resolveTestUnit(''' | 1629 resolveTestUnit(''' |
| 1618 main(p) { | 1630 main(p) { |
| 1619 p is String; | 1631 p is String; |
| 1620 } | 1632 } |
| 1621 '''); | 1633 '''); |
| 1622 assertNoAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT); | 1634 await assertNoAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT); |
| 1623 } | 1635 } |
| 1624 | 1636 |
| 1625 void test_convertToIsNot_wrong_is_noPrefix() { | 1637 test_convertToIsNot_wrong_is_noPrefix() async { |
| 1626 resolveTestUnit(''' | 1638 resolveTestUnit(''' |
| 1627 main(p) { | 1639 main(p) { |
| 1628 (p is String); | 1640 (p is String); |
| 1629 } | 1641 } |
| 1630 '''); | 1642 '''); |
| 1631 assertNoAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT); | 1643 await assertNoAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT); |
| 1632 } | 1644 } |
| 1633 | 1645 |
| 1634 void test_convertToIsNot_wrong_is_notIsExpression() { | 1646 test_convertToIsNot_wrong_is_notIsExpression() async { |
| 1635 resolveTestUnit(''' | 1647 resolveTestUnit(''' |
| 1636 main(p) { | 1648 main(p) { |
| 1637 123 + 456; | 1649 123 + 456; |
| 1638 } | 1650 } |
| 1639 '''); | 1651 '''); |
| 1640 assertNoAssistAt('123 +', DartAssistKind.CONVERT_INTO_IS_NOT); | 1652 await assertNoAssistAt('123 +', DartAssistKind.CONVERT_INTO_IS_NOT); |
| 1641 } | 1653 } |
| 1642 | 1654 |
| 1643 void test_convertToIsNot_wrong_is_notTheNotOperator() { | 1655 test_convertToIsNot_wrong_is_notTheNotOperator() async { |
| 1644 verifyNoTestUnitErrors = false; | 1656 verifyNoTestUnitErrors = false; |
| 1645 resolveTestUnit(''' | 1657 resolveTestUnit(''' |
| 1646 main(p) { | 1658 main(p) { |
| 1647 ++(p is String); | 1659 ++(p is String); |
| 1648 } | 1660 } |
| 1649 '''); | 1661 '''); |
| 1650 assertNoAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT); | 1662 await assertNoAssistAt('is String', DartAssistKind.CONVERT_INTO_IS_NOT); |
| 1651 } | 1663 } |
| 1652 | 1664 |
| 1653 void test_convertToIsNot_wrong_not_alreadyIsNot() { | 1665 test_convertToIsNot_wrong_not_alreadyIsNot() async { |
| 1654 resolveTestUnit(''' | 1666 resolveTestUnit(''' |
| 1655 main(p) { | 1667 main(p) { |
| 1656 !(p is! String); | 1668 !(p is! String); |
| 1657 } | 1669 } |
| 1658 '''); | 1670 '''); |
| 1659 assertNoAssistAt('!(p', DartAssistKind.CONVERT_INTO_IS_NOT); | 1671 await assertNoAssistAt('!(p', DartAssistKind.CONVERT_INTO_IS_NOT); |
| 1660 } | 1672 } |
| 1661 | 1673 |
| 1662 void test_convertToIsNot_wrong_not_noEnclosingParenthesis() { | 1674 test_convertToIsNot_wrong_not_noEnclosingParenthesis() async { |
| 1663 resolveTestUnit(''' | 1675 resolveTestUnit(''' |
| 1664 main(p) { | 1676 main(p) { |
| 1665 !p; | 1677 !p; |
| 1666 } | 1678 } |
| 1667 '''); | 1679 '''); |
| 1668 assertNoAssistAt('!p', DartAssistKind.CONVERT_INTO_IS_NOT); | 1680 await assertNoAssistAt('!p', DartAssistKind.CONVERT_INTO_IS_NOT); |
| 1669 } | 1681 } |
| 1670 | 1682 |
| 1671 void test_convertToIsNot_wrong_not_notIsExpression() { | 1683 test_convertToIsNot_wrong_not_notIsExpression() async { |
| 1672 resolveTestUnit(''' | 1684 resolveTestUnit(''' |
| 1673 main(p) { | 1685 main(p) { |
| 1674 !(p == null); | 1686 !(p == null); |
| 1675 } | 1687 } |
| 1676 '''); | 1688 '''); |
| 1677 assertNoAssistAt('!(p', DartAssistKind.CONVERT_INTO_IS_NOT); | 1689 await assertNoAssistAt('!(p', DartAssistKind.CONVERT_INTO_IS_NOT); |
| 1678 } | 1690 } |
| 1679 | 1691 |
| 1680 void test_convertToIsNot_wrong_not_notTheNotOperator() { | 1692 test_convertToIsNot_wrong_not_notTheNotOperator() async { |
| 1681 verifyNoTestUnitErrors = false; | 1693 verifyNoTestUnitErrors = false; |
| 1682 resolveTestUnit(''' | 1694 resolveTestUnit(''' |
| 1683 main(p) { | 1695 main(p) { |
| 1684 ++(p is String); | 1696 ++(p is String); |
| 1685 } | 1697 } |
| 1686 '''); | 1698 '''); |
| 1687 assertNoAssistAt('++(', DartAssistKind.CONVERT_INTO_IS_NOT); | 1699 await assertNoAssistAt('++(', DartAssistKind.CONVERT_INTO_IS_NOT); |
| 1688 } | 1700 } |
| 1689 | 1701 |
| 1690 void test_convertToIsNotEmpty_OK_on_isEmpty() { | 1702 test_convertToIsNotEmpty_OK_on_isEmpty() async { |
| 1691 resolveTestUnit(''' | 1703 resolveTestUnit(''' |
| 1692 main(String str) { | 1704 main(String str) { |
| 1693 !str.isEmpty; | 1705 !str.isEmpty; |
| 1694 } | 1706 } |
| 1695 '''); | 1707 '''); |
| 1696 assertHasAssistAt( | 1708 await assertHasAssistAt( |
| 1697 'isEmpty', | 1709 'isEmpty', |
| 1698 DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, | 1710 DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, |
| 1699 ''' | 1711 ''' |
| 1700 main(String str) { | 1712 main(String str) { |
| 1701 str.isNotEmpty; | 1713 str.isNotEmpty; |
| 1702 } | 1714 } |
| 1703 '''); | 1715 '''); |
| 1704 } | 1716 } |
| 1705 | 1717 |
| 1706 void test_convertToIsNotEmpty_OK_on_str() { | 1718 test_convertToIsNotEmpty_OK_on_str() async { |
| 1707 resolveTestUnit(''' | 1719 resolveTestUnit(''' |
| 1708 main(String str) { | 1720 main(String str) { |
| 1709 !str.isEmpty; | 1721 !str.isEmpty; |
| 1710 } | 1722 } |
| 1711 '''); | 1723 '''); |
| 1712 assertHasAssistAt( | 1724 await assertHasAssistAt( |
| 1713 'str.', | 1725 'str.', |
| 1714 DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, | 1726 DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, |
| 1715 ''' | 1727 ''' |
| 1716 main(String str) { | 1728 main(String str) { |
| 1717 str.isNotEmpty; | 1729 str.isNotEmpty; |
| 1718 } | 1730 } |
| 1719 '''); | 1731 '''); |
| 1720 } | 1732 } |
| 1721 | 1733 |
| 1722 void test_convertToIsNotEmpty_OK_propertyAccess() { | 1734 test_convertToIsNotEmpty_OK_propertyAccess() async { |
| 1723 resolveTestUnit(''' | 1735 resolveTestUnit(''' |
| 1724 main(String str) { | 1736 main(String str) { |
| 1725 !'text'.isEmpty; | 1737 !'text'.isEmpty; |
| 1726 } | 1738 } |
| 1727 '''); | 1739 '''); |
| 1728 assertHasAssistAt( | 1740 await assertHasAssistAt( |
| 1729 'isEmpty', | 1741 'isEmpty', |
| 1730 DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, | 1742 DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY, |
| 1731 ''' | 1743 ''' |
| 1732 main(String str) { | 1744 main(String str) { |
| 1733 'text'.isNotEmpty; | 1745 'text'.isNotEmpty; |
| 1734 } | 1746 } |
| 1735 '''); | 1747 '''); |
| 1736 } | 1748 } |
| 1737 | 1749 |
| 1738 void test_convertToIsNotEmpty_wrong_noBang() { | 1750 test_convertToIsNotEmpty_wrong_noBang() async { |
| 1739 verifyNoTestUnitErrors = false; | 1751 verifyNoTestUnitErrors = false; |
| 1740 resolveTestUnit(''' | 1752 resolveTestUnit(''' |
| 1741 main(String str) { | 1753 main(String str) { |
| 1742 ~str.isEmpty; | 1754 ~str.isEmpty; |
| 1743 } | 1755 } |
| 1744 '''); | 1756 '''); |
| 1745 assertNoAssistAt('isEmpty;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY); | 1757 await assertNoAssistAt( |
| 1758 'isEmpty;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY); |
| 1746 } | 1759 } |
| 1747 | 1760 |
| 1748 void test_convertToIsNotEmpty_wrong_noIsNotEmpty() { | 1761 test_convertToIsNotEmpty_wrong_noIsNotEmpty() async { |
| 1749 resolveTestUnit(''' | 1762 resolveTestUnit(''' |
| 1750 class A { | 1763 class A { |
| 1751 bool get isEmpty => false; | 1764 bool get isEmpty => false; |
| 1752 } | 1765 } |
| 1753 main(A a) { | 1766 main(A a) { |
| 1754 !a.isEmpty; | 1767 !a.isEmpty; |
| 1755 } | 1768 } |
| 1756 '''); | 1769 '''); |
| 1757 assertNoAssistAt('isEmpty;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY); | 1770 await assertNoAssistAt( |
| 1771 'isEmpty;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY); |
| 1758 } | 1772 } |
| 1759 | 1773 |
| 1760 void test_convertToIsNotEmpty_wrong_notInPrefixExpression() { | 1774 test_convertToIsNotEmpty_wrong_notInPrefixExpression() async { |
| 1761 resolveTestUnit(''' | 1775 resolveTestUnit(''' |
| 1762 main(String str) { | 1776 main(String str) { |
| 1763 str.isEmpty; | 1777 str.isEmpty; |
| 1764 } | 1778 } |
| 1765 '''); | 1779 '''); |
| 1766 assertNoAssistAt('isEmpty;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY); | 1780 await assertNoAssistAt( |
| 1781 'isEmpty;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY); |
| 1767 } | 1782 } |
| 1768 | 1783 |
| 1769 void test_convertToIsNotEmpty_wrong_notIsEmpty() { | 1784 test_convertToIsNotEmpty_wrong_notIsEmpty() async { |
| 1770 resolveTestUnit(''' | 1785 resolveTestUnit(''' |
| 1771 main(int p) { | 1786 main(int p) { |
| 1772 !p.isEven; | 1787 !p.isEven; |
| 1773 } | 1788 } |
| 1774 '''); | 1789 '''); |
| 1775 assertNoAssistAt('isEven;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY); | 1790 await assertNoAssistAt('isEven;', DartAssistKind.CONVERT_INTO_IS_NOT_EMPTY); |
| 1776 } | 1791 } |
| 1777 | 1792 |
| 1778 void test_convertToNormalParameter_OK_dynamic() { | 1793 test_convertToNormalParameter_OK_dynamic() async { |
| 1779 resolveTestUnit(''' | 1794 resolveTestUnit(''' |
| 1780 class A { | 1795 class A { |
| 1781 var test; | 1796 var test; |
| 1782 A(this.test) { | 1797 A(this.test) { |
| 1783 } | 1798 } |
| 1784 } | 1799 } |
| 1785 '''); | 1800 '''); |
| 1786 assertHasAssistAt( | 1801 await assertHasAssistAt( |
| 1787 'test)', | 1802 'test)', |
| 1788 DartAssistKind.CONVERT_TO_NORMAL_PARAMETER, | 1803 DartAssistKind.CONVERT_TO_NORMAL_PARAMETER, |
| 1789 ''' | 1804 ''' |
| 1790 class A { | 1805 class A { |
| 1791 var test; | 1806 var test; |
| 1792 A(test) : test = test { | 1807 A(test) : test = test { |
| 1793 } | 1808 } |
| 1794 } | 1809 } |
| 1795 '''); | 1810 '''); |
| 1796 } | 1811 } |
| 1797 | 1812 |
| 1798 void test_convertToNormalParameter_OK_firstInitializer() { | 1813 test_convertToNormalParameter_OK_firstInitializer() async { |
| 1799 resolveTestUnit(''' | 1814 resolveTestUnit(''' |
| 1800 class A { | 1815 class A { |
| 1801 int test; | 1816 int test; |
| 1802 A(this.test) { | 1817 A(this.test) { |
| 1803 } | 1818 } |
| 1804 } | 1819 } |
| 1805 '''); | 1820 '''); |
| 1806 assertHasAssistAt( | 1821 await assertHasAssistAt( |
| 1807 'test)', | 1822 'test)', |
| 1808 DartAssistKind.CONVERT_TO_NORMAL_PARAMETER, | 1823 DartAssistKind.CONVERT_TO_NORMAL_PARAMETER, |
| 1809 ''' | 1824 ''' |
| 1810 class A { | 1825 class A { |
| 1811 int test; | 1826 int test; |
| 1812 A(int test) : test = test { | 1827 A(int test) : test = test { |
| 1813 } | 1828 } |
| 1814 } | 1829 } |
| 1815 '''); | 1830 '''); |
| 1816 } | 1831 } |
| 1817 | 1832 |
| 1818 void test_convertToNormalParameter_OK_secondInitializer() { | 1833 test_convertToNormalParameter_OK_secondInitializer() async { |
| 1819 resolveTestUnit(''' | 1834 resolveTestUnit(''' |
| 1820 class A { | 1835 class A { |
| 1821 double aaa; | 1836 double aaa; |
| 1822 int bbb; | 1837 int bbb; |
| 1823 A(this.bbb) : aaa = 1.0; | 1838 A(this.bbb) : aaa = 1.0; |
| 1824 } | 1839 } |
| 1825 '''); | 1840 '''); |
| 1826 assertHasAssistAt( | 1841 await assertHasAssistAt( |
| 1827 'bbb)', | 1842 'bbb)', |
| 1828 DartAssistKind.CONVERT_TO_NORMAL_PARAMETER, | 1843 DartAssistKind.CONVERT_TO_NORMAL_PARAMETER, |
| 1829 ''' | 1844 ''' |
| 1830 class A { | 1845 class A { |
| 1831 double aaa; | 1846 double aaa; |
| 1832 int bbb; | 1847 int bbb; |
| 1833 A(int bbb) : aaa = 1.0, bbb = bbb; | 1848 A(int bbb) : aaa = 1.0, bbb = bbb; |
| 1834 } | 1849 } |
| 1835 '''); | 1850 '''); |
| 1836 } | 1851 } |
| 1837 | 1852 |
| 1838 void test_encapsulateField_BAD_alreadyPrivate() { | 1853 test_encapsulateField_BAD_alreadyPrivate() async { |
| 1839 resolveTestUnit(''' | 1854 resolveTestUnit(''' |
| 1840 class A { | 1855 class A { |
| 1841 int _test = 42; | 1856 int _test = 42; |
| 1842 } | 1857 } |
| 1843 main(A a) { | 1858 main(A a) { |
| 1844 print(a._test); | 1859 print(a._test); |
| 1845 } | 1860 } |
| 1846 '''); | 1861 '''); |
| 1847 assertNoAssistAt('_test =', DartAssistKind.ENCAPSULATE_FIELD); | 1862 await assertNoAssistAt('_test =', DartAssistKind.ENCAPSULATE_FIELD); |
| 1848 } | 1863 } |
| 1849 | 1864 |
| 1850 void test_encapsulateField_BAD_final() { | 1865 test_encapsulateField_BAD_final() async { |
| 1851 resolveTestUnit(''' | 1866 resolveTestUnit(''' |
| 1852 class A { | 1867 class A { |
| 1853 final int test = 42; | 1868 final int test = 42; |
| 1854 } | 1869 } |
| 1855 '''); | 1870 '''); |
| 1856 assertNoAssistAt('test =', DartAssistKind.ENCAPSULATE_FIELD); | 1871 await assertNoAssistAt('test =', DartAssistKind.ENCAPSULATE_FIELD); |
| 1857 } | 1872 } |
| 1858 | 1873 |
| 1859 void test_encapsulateField_BAD_multipleFields() { | 1874 test_encapsulateField_BAD_multipleFields() async { |
| 1860 resolveTestUnit(''' | 1875 resolveTestUnit(''' |
| 1861 class A { | 1876 class A { |
| 1862 int aaa, bbb, ccc; | 1877 int aaa, bbb, ccc; |
| 1863 } | 1878 } |
| 1864 main(A a) { | 1879 main(A a) { |
| 1865 print(a.bbb); | 1880 print(a.bbb); |
| 1866 } | 1881 } |
| 1867 '''); | 1882 '''); |
| 1868 assertNoAssistAt('bbb, ', DartAssistKind.ENCAPSULATE_FIELD); | 1883 await assertNoAssistAt('bbb, ', DartAssistKind.ENCAPSULATE_FIELD); |
| 1869 } | 1884 } |
| 1870 | 1885 |
| 1871 void test_encapsulateField_BAD_notOnName() { | 1886 test_encapsulateField_BAD_notOnName() async { |
| 1872 resolveTestUnit(''' | 1887 resolveTestUnit(''' |
| 1873 class A { | 1888 class A { |
| 1874 int test = 1 + 2 + 3; | 1889 int test = 1 + 2 + 3; |
| 1875 } | 1890 } |
| 1876 '''); | 1891 '''); |
| 1877 assertNoAssistAt('+ 2', DartAssistKind.ENCAPSULATE_FIELD); | 1892 await assertNoAssistAt('+ 2', DartAssistKind.ENCAPSULATE_FIELD); |
| 1878 } | 1893 } |
| 1879 | 1894 |
| 1880 void test_encapsulateField_BAD_parseError() { | 1895 test_encapsulateField_BAD_parseError() async { |
| 1881 verifyNoTestUnitErrors = false; | 1896 verifyNoTestUnitErrors = false; |
| 1882 resolveTestUnit(''' | 1897 resolveTestUnit(''' |
| 1883 class A { | 1898 class A { |
| 1884 int; // marker | 1899 int; // marker |
| 1885 } | 1900 } |
| 1886 main(A a) { | 1901 main(A a) { |
| 1887 print(a.test); | 1902 print(a.test); |
| 1888 } | 1903 } |
| 1889 '''); | 1904 '''); |
| 1890 assertNoAssistAt('; // marker', DartAssistKind.ENCAPSULATE_FIELD); | 1905 await assertNoAssistAt('; // marker', DartAssistKind.ENCAPSULATE_FIELD); |
| 1891 } | 1906 } |
| 1892 | 1907 |
| 1893 void test_encapsulateField_BAD_static() { | 1908 test_encapsulateField_BAD_static() async { |
| 1894 resolveTestUnit(''' | 1909 resolveTestUnit(''' |
| 1895 class A { | 1910 class A { |
| 1896 static int test = 42; | 1911 static int test = 42; |
| 1897 } | 1912 } |
| 1898 '''); | 1913 '''); |
| 1899 assertNoAssistAt('test =', DartAssistKind.ENCAPSULATE_FIELD); | 1914 await assertNoAssistAt('test =', DartAssistKind.ENCAPSULATE_FIELD); |
| 1900 } | 1915 } |
| 1901 | 1916 |
| 1902 void test_encapsulateField_OK_hasType() { | 1917 test_encapsulateField_OK_hasType() async { |
| 1903 resolveTestUnit(''' | 1918 resolveTestUnit(''' |
| 1904 class A { | 1919 class A { |
| 1905 int test = 42; | 1920 int test = 42; |
| 1906 A(this.test); | 1921 A(this.test); |
| 1907 } | 1922 } |
| 1908 main(A a) { | 1923 main(A a) { |
| 1909 print(a.test); | 1924 print(a.test); |
| 1910 } | 1925 } |
| 1911 '''); | 1926 '''); |
| 1912 assertHasAssistAt( | 1927 await assertHasAssistAt( |
| 1913 'test = 42', | 1928 'test = 42', |
| 1914 DartAssistKind.ENCAPSULATE_FIELD, | 1929 DartAssistKind.ENCAPSULATE_FIELD, |
| 1915 ''' | 1930 ''' |
| 1916 class A { | 1931 class A { |
| 1917 int _test = 42; | 1932 int _test = 42; |
| 1918 | 1933 |
| 1919 int get test => _test; | 1934 int get test => _test; |
| 1920 | 1935 |
| 1921 void set test(int test) { | 1936 void set test(int test) { |
| 1922 _test = test; | 1937 _test = test; |
| 1923 } | 1938 } |
| 1924 A(this._test); | 1939 A(this._test); |
| 1925 } | 1940 } |
| 1926 main(A a) { | 1941 main(A a) { |
| 1927 print(a.test); | 1942 print(a.test); |
| 1928 } | 1943 } |
| 1929 '''); | 1944 '''); |
| 1930 } | 1945 } |
| 1931 | 1946 |
| 1932 void test_encapsulateField_OK_noType() { | 1947 test_encapsulateField_OK_noType() async { |
| 1933 resolveTestUnit(''' | 1948 resolveTestUnit(''' |
| 1934 class A { | 1949 class A { |
| 1935 var test = 42; | 1950 var test = 42; |
| 1936 } | 1951 } |
| 1937 main(A a) { | 1952 main(A a) { |
| 1938 print(a.test); | 1953 print(a.test); |
| 1939 } | 1954 } |
| 1940 '''); | 1955 '''); |
| 1941 assertHasAssistAt( | 1956 await assertHasAssistAt( |
| 1942 'test = 42', | 1957 'test = 42', |
| 1943 DartAssistKind.ENCAPSULATE_FIELD, | 1958 DartAssistKind.ENCAPSULATE_FIELD, |
| 1944 ''' | 1959 ''' |
| 1945 class A { | 1960 class A { |
| 1946 var _test = 42; | 1961 var _test = 42; |
| 1947 | 1962 |
| 1948 get test => _test; | 1963 get test => _test; |
| 1949 | 1964 |
| 1950 void set test(test) { | 1965 void set test(test) { |
| 1951 _test = test; | 1966 _test = test; |
| 1952 } | 1967 } |
| 1953 } | 1968 } |
| 1954 main(A a) { | 1969 main(A a) { |
| 1955 print(a.test); | 1970 print(a.test); |
| 1956 } | 1971 } |
| 1957 '''); | 1972 '''); |
| 1958 } | 1973 } |
| 1959 | 1974 |
| 1960 void test_exchangeBinaryExpressionArguments_OK_compare() { | 1975 test_exchangeBinaryExpressionArguments_OK_compare() async { |
| 1961 Map<String, String> operatorMap = { | 1976 const initialOperators = const ['<', '<=', '>', '>=']; |
| 1962 '<': '>', | 1977 const resultOperators = const ['>', '>=', '<', '<=']; |
| 1963 '<=': '>=', | 1978 for (int i = 0; i <= 0; i++) { |
| 1964 '>': '<', | 1979 String initialOperator = initialOperators[i]; |
| 1965 '>=': '<=' | 1980 String resultOperator = resultOperators[i]; |
| 1966 }; | |
| 1967 operatorMap.forEach((initialOperator, resultOperator) { | |
| 1968 resolveTestUnit(''' | 1981 resolveTestUnit(''' |
| 1969 bool main(int a, int b) { | 1982 bool main(int a, int b) { |
| 1970 return a $initialOperator b; | 1983 return a $initialOperator b; |
| 1971 } | 1984 } |
| 1972 '''); | 1985 '''); |
| 1973 assertHasAssistAt( | 1986 await assertHasAssistAt( |
| 1974 initialOperator, | 1987 initialOperator, |
| 1975 DartAssistKind.EXCHANGE_OPERANDS, | 1988 DartAssistKind.EXCHANGE_OPERANDS, |
| 1976 ''' | 1989 ''' |
| 1977 bool main(int a, int b) { | 1990 bool main(int a, int b) { |
| 1978 return b $resultOperator a; | 1991 return b $resultOperator a; |
| 1979 } | 1992 } |
| 1980 '''); | 1993 '''); |
| 1981 }); | 1994 } |
| 1982 } | 1995 } |
| 1983 | 1996 |
| 1984 void test_exchangeBinaryExpressionArguments_OK_extended_mixOperator_1() { | 1997 test_exchangeBinaryExpressionArguments_OK_extended_mixOperator_1() async { |
| 1985 resolveTestUnit(''' | 1998 resolveTestUnit(''' |
| 1986 main() { | 1999 main() { |
| 1987 1 * 2 * 3 + 4; | 2000 1 * 2 * 3 + 4; |
| 1988 } | 2001 } |
| 1989 '''); | 2002 '''); |
| 1990 assertHasAssistAt( | 2003 await assertHasAssistAt( |
| 1991 '* 2', | 2004 '* 2', |
| 1992 DartAssistKind.EXCHANGE_OPERANDS, | 2005 DartAssistKind.EXCHANGE_OPERANDS, |
| 1993 ''' | 2006 ''' |
| 1994 main() { | 2007 main() { |
| 1995 2 * 3 * 1 + 4; | 2008 2 * 3 * 1 + 4; |
| 1996 } | 2009 } |
| 1997 '''); | 2010 '''); |
| 1998 } | 2011 } |
| 1999 | 2012 |
| 2000 void test_exchangeBinaryExpressionArguments_OK_extended_mixOperator_2() { | 2013 test_exchangeBinaryExpressionArguments_OK_extended_mixOperator_2() async { |
| 2001 resolveTestUnit(''' | 2014 resolveTestUnit(''' |
| 2002 main() { | 2015 main() { |
| 2003 1 + 2 - 3 + 4; | 2016 1 + 2 - 3 + 4; |
| 2004 } | 2017 } |
| 2005 '''); | 2018 '''); |
| 2006 assertHasAssistAt( | 2019 await assertHasAssistAt( |
| 2007 '+ 2', | 2020 '+ 2', |
| 2008 DartAssistKind.EXCHANGE_OPERANDS, | 2021 DartAssistKind.EXCHANGE_OPERANDS, |
| 2009 ''' | 2022 ''' |
| 2010 main() { | 2023 main() { |
| 2011 2 + 1 - 3 + 4; | 2024 2 + 1 - 3 + 4; |
| 2012 } | 2025 } |
| 2013 '''); | 2026 '''); |
| 2014 } | 2027 } |
| 2015 | 2028 |
| 2016 void test_exchangeBinaryExpressionArguments_OK_extended_sameOperator_afterFirs
t() { | 2029 test_exchangeBinaryExpressionArguments_OK_extended_sameOperator_afterFirst() a
sync { |
| 2017 resolveTestUnit(''' | 2030 resolveTestUnit(''' |
| 2018 main() { | 2031 main() { |
| 2019 1 + 2 + 3; | 2032 1 + 2 + 3; |
| 2020 } | 2033 } |
| 2021 '''); | 2034 '''); |
| 2022 assertHasAssistAt( | 2035 await assertHasAssistAt( |
| 2023 '+ 2', | 2036 '+ 2', |
| 2024 DartAssistKind.EXCHANGE_OPERANDS, | 2037 DartAssistKind.EXCHANGE_OPERANDS, |
| 2025 ''' | 2038 ''' |
| 2026 main() { | 2039 main() { |
| 2027 2 + 3 + 1; | 2040 2 + 3 + 1; |
| 2028 } | 2041 } |
| 2029 '''); | 2042 '''); |
| 2030 } | 2043 } |
| 2031 | 2044 |
| 2032 void test_exchangeBinaryExpressionArguments_OK_extended_sameOperator_afterSeco
nd() { | 2045 test_exchangeBinaryExpressionArguments_OK_extended_sameOperator_afterSecond()
async { |
| 2033 resolveTestUnit(''' | 2046 resolveTestUnit(''' |
| 2034 main() { | 2047 main() { |
| 2035 1 + 2 + 3; | 2048 1 + 2 + 3; |
| 2036 } | 2049 } |
| 2037 '''); | 2050 '''); |
| 2038 assertHasAssistAt( | 2051 await assertHasAssistAt( |
| 2039 '+ 3', | 2052 '+ 3', |
| 2040 DartAssistKind.EXCHANGE_OPERANDS, | 2053 DartAssistKind.EXCHANGE_OPERANDS, |
| 2041 ''' | 2054 ''' |
| 2042 main() { | 2055 main() { |
| 2043 3 + 1 + 2; | 2056 3 + 1 + 2; |
| 2044 } | 2057 } |
| 2045 '''); | 2058 '''); |
| 2046 } | 2059 } |
| 2047 | 2060 |
| 2048 void test_exchangeBinaryExpressionArguments_OK_simple_afterOperator() { | 2061 test_exchangeBinaryExpressionArguments_OK_simple_afterOperator() async { |
| 2049 resolveTestUnit(''' | 2062 resolveTestUnit(''' |
| 2050 main() { | 2063 main() { |
| 2051 1 + 2; | 2064 1 + 2; |
| 2052 } | 2065 } |
| 2053 '''); | 2066 '''); |
| 2054 assertHasAssistAt( | 2067 await assertHasAssistAt( |
| 2055 ' 2', | 2068 ' 2', |
| 2056 DartAssistKind.EXCHANGE_OPERANDS, | 2069 DartAssistKind.EXCHANGE_OPERANDS, |
| 2057 ''' | 2070 ''' |
| 2058 main() { | 2071 main() { |
| 2059 2 + 1; | 2072 2 + 1; |
| 2060 } | 2073 } |
| 2061 '''); | 2074 '''); |
| 2062 } | 2075 } |
| 2063 | 2076 |
| 2064 void test_exchangeBinaryExpressionArguments_OK_simple_beforeOperator() { | 2077 test_exchangeBinaryExpressionArguments_OK_simple_beforeOperator() async { |
| 2065 resolveTestUnit(''' | 2078 resolveTestUnit(''' |
| 2066 main() { | 2079 main() { |
| 2067 1 + 2; | 2080 1 + 2; |
| 2068 } | 2081 } |
| 2069 '''); | 2082 '''); |
| 2070 assertHasAssistAt( | 2083 await assertHasAssistAt( |
| 2071 '+ 2', | 2084 '+ 2', |
| 2072 DartAssistKind.EXCHANGE_OPERANDS, | 2085 DartAssistKind.EXCHANGE_OPERANDS, |
| 2073 ''' | 2086 ''' |
| 2074 main() { | 2087 main() { |
| 2075 2 + 1; | 2088 2 + 1; |
| 2076 } | 2089 } |
| 2077 '''); | 2090 '''); |
| 2078 } | 2091 } |
| 2079 | 2092 |
| 2080 void test_exchangeBinaryExpressionArguments_OK_simple_fullSelection() { | 2093 test_exchangeBinaryExpressionArguments_OK_simple_fullSelection() async { |
| 2081 resolveTestUnit(''' | 2094 resolveTestUnit(''' |
| 2082 main() { | 2095 main() { |
| 2083 1 + 2; | 2096 1 + 2; |
| 2084 } | 2097 } |
| 2085 '''); | 2098 '''); |
| 2086 length = '1 + 2'.length; | 2099 length = '1 + 2'.length; |
| 2087 assertHasAssistAt( | 2100 await assertHasAssistAt( |
| 2088 '1 + 2', | 2101 '1 + 2', |
| 2089 DartAssistKind.EXCHANGE_OPERANDS, | 2102 DartAssistKind.EXCHANGE_OPERANDS, |
| 2090 ''' | 2103 ''' |
| 2091 main() { | 2104 main() { |
| 2092 2 + 1; | 2105 2 + 1; |
| 2093 } | 2106 } |
| 2094 '''); | 2107 '''); |
| 2095 } | 2108 } |
| 2096 | 2109 |
| 2097 void test_exchangeBinaryExpressionArguments_OK_simple_withLength() { | 2110 test_exchangeBinaryExpressionArguments_OK_simple_withLength() async { |
| 2098 resolveTestUnit(''' | 2111 resolveTestUnit(''' |
| 2099 main() { | 2112 main() { |
| 2100 1 + 2; | 2113 1 + 2; |
| 2101 } | 2114 } |
| 2102 '''); | 2115 '''); |
| 2103 length = 2; | 2116 length = 2; |
| 2104 assertHasAssistAt( | 2117 await assertHasAssistAt( |
| 2105 '+ 2', | 2118 '+ 2', |
| 2106 DartAssistKind.EXCHANGE_OPERANDS, | 2119 DartAssistKind.EXCHANGE_OPERANDS, |
| 2107 ''' | 2120 ''' |
| 2108 main() { | 2121 main() { |
| 2109 2 + 1; | 2122 2 + 1; |
| 2110 } | 2123 } |
| 2111 '''); | 2124 '''); |
| 2112 } | 2125 } |
| 2113 | 2126 |
| 2114 void test_exchangeBinaryExpressionArguments_wrong_extraLength() { | 2127 test_exchangeBinaryExpressionArguments_wrong_extraLength() async { |
| 2115 resolveTestUnit(''' | 2128 resolveTestUnit(''' |
| 2116 main() { | 2129 main() { |
| 2117 111 + 222; | 2130 111 + 222; |
| 2118 } | 2131 } |
| 2119 '''); | 2132 '''); |
| 2120 length = 3; | 2133 length = 3; |
| 2121 assertNoAssistAt('+ 222', DartAssistKind.EXCHANGE_OPERANDS); | 2134 await assertNoAssistAt('+ 222', DartAssistKind.EXCHANGE_OPERANDS); |
| 2122 } | 2135 } |
| 2123 | 2136 |
| 2124 void test_exchangeBinaryExpressionArguments_wrong_onOperand() { | 2137 test_exchangeBinaryExpressionArguments_wrong_onOperand() async { |
| 2125 resolveTestUnit(''' | 2138 resolveTestUnit(''' |
| 2126 main() { | 2139 main() { |
| 2127 111 + 222; | 2140 111 + 222; |
| 2128 } | 2141 } |
| 2129 '''); | 2142 '''); |
| 2130 length = 3; | 2143 length = 3; |
| 2131 assertNoAssistAt('11 +', DartAssistKind.EXCHANGE_OPERANDS); | 2144 await assertNoAssistAt('11 +', DartAssistKind.EXCHANGE_OPERANDS); |
| 2132 } | 2145 } |
| 2133 | 2146 |
| 2134 void test_exchangeBinaryExpressionArguments_wrong_selectionWithBinary() { | 2147 test_exchangeBinaryExpressionArguments_wrong_selectionWithBinary() async { |
| 2135 resolveTestUnit(''' | 2148 resolveTestUnit(''' |
| 2136 main() { | 2149 main() { |
| 2137 1 + 2 + 3; | 2150 1 + 2 + 3; |
| 2138 } | 2151 } |
| 2139 '''); | 2152 '''); |
| 2140 length = '1 + 2 + 3'.length; | 2153 length = '1 + 2 + 3'.length; |
| 2141 assertNoAssistAt('1 + 2 + 3', DartAssistKind.EXCHANGE_OPERANDS); | 2154 await assertNoAssistAt('1 + 2 + 3', DartAssistKind.EXCHANGE_OPERANDS); |
| 2142 } | 2155 } |
| 2143 | 2156 |
| 2144 void test_importAddShow_BAD_hasShow() { | 2157 test_importAddShow_BAD_hasShow() async { |
| 2145 resolveTestUnit(''' | 2158 resolveTestUnit(''' |
| 2146 import 'dart:math' show PI; | 2159 import 'dart:math' show PI; |
| 2147 main() { | 2160 main() { |
| 2148 PI; | 2161 PI; |
| 2149 } | 2162 } |
| 2150 '''); | 2163 '''); |
| 2151 assertNoAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW); | 2164 await assertNoAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW); |
| 2152 } | 2165 } |
| 2153 | 2166 |
| 2154 void test_importAddShow_BAD_unresolvedUri() { | 2167 test_importAddShow_BAD_unresolvedUri() async { |
| 2155 resolveTestUnit(''' | 2168 resolveTestUnit(''' |
| 2156 import '/no/such/lib.dart'; | 2169 import '/no/such/lib.dart'; |
| 2157 '''); | 2170 '''); |
| 2158 assertNoAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW); | 2171 await assertNoAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW); |
| 2159 } | 2172 } |
| 2160 | 2173 |
| 2161 void test_importAddShow_BAD_unused() { | 2174 test_importAddShow_BAD_unused() async { |
| 2162 resolveTestUnit(''' | 2175 resolveTestUnit(''' |
| 2163 import 'dart:math'; | 2176 import 'dart:math'; |
| 2164 '''); | 2177 '''); |
| 2165 assertNoAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW); | 2178 await assertNoAssistAt('import ', DartAssistKind.IMPORT_ADD_SHOW); |
| 2166 } | 2179 } |
| 2167 | 2180 |
| 2168 void test_importAddShow_OK_hasUnresolvedIdentifier() { | 2181 test_importAddShow_OK_hasUnresolvedIdentifier() async { |
| 2169 resolveTestUnit(''' | 2182 resolveTestUnit(''' |
| 2170 import 'dart:math'; | 2183 import 'dart:math'; |
| 2171 main(x) { | 2184 main(x) { |
| 2172 PI; | 2185 PI; |
| 2173 return x.foo(); | 2186 return x.foo(); |
| 2174 } | 2187 } |
| 2175 '''); | 2188 '''); |
| 2176 assertHasAssistAt( | 2189 await assertHasAssistAt( |
| 2177 'import ', | 2190 'import ', |
| 2178 DartAssistKind.IMPORT_ADD_SHOW, | 2191 DartAssistKind.IMPORT_ADD_SHOW, |
| 2179 ''' | 2192 ''' |
| 2180 import 'dart:math' show PI; | 2193 import 'dart:math' show PI; |
| 2181 main(x) { | 2194 main(x) { |
| 2182 PI; | 2195 PI; |
| 2183 return x.foo(); | 2196 return x.foo(); |
| 2184 } | 2197 } |
| 2185 '''); | 2198 '''); |
| 2186 } | 2199 } |
| 2187 | 2200 |
| 2188 void test_importAddShow_OK_onDirective() { | 2201 test_importAddShow_OK_onDirective() async { |
| 2189 resolveTestUnit(''' | 2202 resolveTestUnit(''' |
| 2190 import 'dart:math'; | 2203 import 'dart:math'; |
| 2191 main() { | 2204 main() { |
| 2192 PI; | 2205 PI; |
| 2193 E; | 2206 E; |
| 2194 max(1, 2); | 2207 max(1, 2); |
| 2195 } | 2208 } |
| 2196 '''); | 2209 '''); |
| 2197 assertHasAssistAt( | 2210 await assertHasAssistAt( |
| 2198 'import ', | 2211 'import ', |
| 2199 DartAssistKind.IMPORT_ADD_SHOW, | 2212 DartAssistKind.IMPORT_ADD_SHOW, |
| 2200 ''' | 2213 ''' |
| 2201 import 'dart:math' show E, PI, max; | 2214 import 'dart:math' show E, PI, max; |
| 2202 main() { | 2215 main() { |
| 2203 PI; | 2216 PI; |
| 2204 E; | 2217 E; |
| 2205 max(1, 2); | 2218 max(1, 2); |
| 2206 } | 2219 } |
| 2207 '''); | 2220 '''); |
| 2208 } | 2221 } |
| 2209 | 2222 |
| 2210 void test_importAddShow_OK_onUri() { | 2223 test_importAddShow_OK_onUri() async { |
| 2211 resolveTestUnit(''' | 2224 resolveTestUnit(''' |
| 2212 import 'dart:math'; | 2225 import 'dart:math'; |
| 2213 main() { | 2226 main() { |
| 2214 PI; | 2227 PI; |
| 2215 E; | 2228 E; |
| 2216 max(1, 2); | 2229 max(1, 2); |
| 2217 } | 2230 } |
| 2218 '''); | 2231 '''); |
| 2219 assertHasAssistAt( | 2232 await assertHasAssistAt( |
| 2220 'art:math', | 2233 'art:math', |
| 2221 DartAssistKind.IMPORT_ADD_SHOW, | 2234 DartAssistKind.IMPORT_ADD_SHOW, |
| 2222 ''' | 2235 ''' |
| 2223 import 'dart:math' show E, PI, max; | 2236 import 'dart:math' show E, PI, max; |
| 2224 main() { | 2237 main() { |
| 2225 PI; | 2238 PI; |
| 2226 E; | 2239 E; |
| 2227 max(1, 2); | 2240 max(1, 2); |
| 2228 } | 2241 } |
| 2229 '''); | 2242 '''); |
| 2230 } | 2243 } |
| 2231 | 2244 |
| 2232 void test_introduceLocalTestedType_BAD_notBlock() { | 2245 test_introduceLocalTestedType_BAD_notBlock() async { |
| 2233 resolveTestUnit(''' | 2246 resolveTestUnit(''' |
| 2234 main(p) { | 2247 main(p) { |
| 2235 if (p is String) | 2248 if (p is String) |
| 2236 print('not a block'); | 2249 print('not a block'); |
| 2237 } | 2250 } |
| 2238 '''); | 2251 '''); |
| 2239 assertNoAssistAt('if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE); | 2252 await assertNoAssistAt('if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE); |
| 2240 } | 2253 } |
| 2241 | 2254 |
| 2242 void test_introduceLocalTestedType_BAD_notIsExpression() { | 2255 test_introduceLocalTestedType_BAD_notIsExpression() async { |
| 2243 resolveTestUnit(''' | 2256 resolveTestUnit(''' |
| 2244 main(p) { | 2257 main(p) { |
| 2245 if (p == null) { | 2258 if (p == null) { |
| 2246 } | 2259 } |
| 2247 } | 2260 } |
| 2248 '''); | 2261 '''); |
| 2249 assertNoAssistAt('if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE); | 2262 await assertNoAssistAt('if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE); |
| 2250 } | 2263 } |
| 2251 | 2264 |
| 2252 void test_introduceLocalTestedType_OK_if_is() { | 2265 test_introduceLocalTestedType_OK_if_is() async { |
| 2253 resolveTestUnit(''' | 2266 resolveTestUnit(''' |
| 2254 class MyTypeName {} | 2267 class MyTypeName {} |
| 2255 main(p) { | 2268 main(p) { |
| 2256 if (p is MyTypeName) { | 2269 if (p is MyTypeName) { |
| 2257 } | 2270 } |
| 2258 p = null; | 2271 p = null; |
| 2259 } | 2272 } |
| 2260 '''); | 2273 '''); |
| 2261 String expected = ''' | 2274 String expected = ''' |
| 2262 class MyTypeName {} | 2275 class MyTypeName {} |
| 2263 main(p) { | 2276 main(p) { |
| 2264 if (p is MyTypeName) { | 2277 if (p is MyTypeName) { |
| 2265 MyTypeName myTypeName = p; | 2278 MyTypeName myTypeName = p; |
| 2266 } | 2279 } |
| 2267 p = null; | 2280 p = null; |
| 2268 } | 2281 } |
| 2269 '''; | 2282 '''; |
| 2270 assertHasAssistAt( | 2283 await assertHasAssistAt( |
| 2271 'is MyType', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); | 2284 'is MyType', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); |
| 2272 _assertLinkedGroup( | 2285 _assertLinkedGroup( |
| 2273 change.linkedEditGroups[0], | 2286 change.linkedEditGroups[0], |
| 2274 ['myTypeName = '], | 2287 ['myTypeName = '], |
| 2275 expectedSuggestions(LinkedEditSuggestionKind.VARIABLE, | 2288 expectedSuggestions(LinkedEditSuggestionKind.VARIABLE, |
| 2276 ['myTypeName', 'typeName', 'name'])); | 2289 ['myTypeName', 'typeName', 'name'])); |
| 2277 // another good location | 2290 // another good location |
| 2278 assertHasAssistAt( | 2291 await assertHasAssistAt( |
| 2279 'if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); | 2292 'if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); |
| 2280 } | 2293 } |
| 2281 | 2294 |
| 2282 void test_introduceLocalTestedType_OK_if_isNot() { | 2295 test_introduceLocalTestedType_OK_if_isNot() async { |
| 2283 resolveTestUnit(''' | 2296 resolveTestUnit(''' |
| 2284 class MyTypeName {} | 2297 class MyTypeName {} |
| 2285 main(p) { | 2298 main(p) { |
| 2286 if (p is! MyTypeName) { | 2299 if (p is! MyTypeName) { |
| 2287 return; | 2300 return; |
| 2288 } | 2301 } |
| 2289 } | 2302 } |
| 2290 '''); | 2303 '''); |
| 2291 String expected = ''' | 2304 String expected = ''' |
| 2292 class MyTypeName {} | 2305 class MyTypeName {} |
| 2293 main(p) { | 2306 main(p) { |
| 2294 if (p is! MyTypeName) { | 2307 if (p is! MyTypeName) { |
| 2295 return; | 2308 return; |
| 2296 } | 2309 } |
| 2297 MyTypeName myTypeName = p; | 2310 MyTypeName myTypeName = p; |
| 2298 } | 2311 } |
| 2299 '''; | 2312 '''; |
| 2300 assertHasAssistAt( | 2313 await assertHasAssistAt( |
| 2301 'is! MyType', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); | 2314 'is! MyType', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); |
| 2302 _assertLinkedGroup( | 2315 _assertLinkedGroup( |
| 2303 change.linkedEditGroups[0], | 2316 change.linkedEditGroups[0], |
| 2304 ['myTypeName = '], | 2317 ['myTypeName = '], |
| 2305 expectedSuggestions(LinkedEditSuggestionKind.VARIABLE, | 2318 expectedSuggestions(LinkedEditSuggestionKind.VARIABLE, |
| 2306 ['myTypeName', 'typeName', 'name'])); | 2319 ['myTypeName', 'typeName', 'name'])); |
| 2307 // another good location | 2320 // another good location |
| 2308 assertHasAssistAt( | 2321 await assertHasAssistAt( |
| 2309 'if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); | 2322 'if (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); |
| 2310 } | 2323 } |
| 2311 | 2324 |
| 2312 void test_introduceLocalTestedType_OK_while() { | 2325 test_introduceLocalTestedType_OK_while() async { |
| 2313 resolveTestUnit(''' | 2326 resolveTestUnit(''' |
| 2314 main(p) { | 2327 main(p) { |
| 2315 while (p is String) { | 2328 while (p is String) { |
| 2316 } | 2329 } |
| 2317 p = null; | 2330 p = null; |
| 2318 } | 2331 } |
| 2319 '''); | 2332 '''); |
| 2320 String expected = ''' | 2333 String expected = ''' |
| 2321 main(p) { | 2334 main(p) { |
| 2322 while (p is String) { | 2335 while (p is String) { |
| 2323 String s = p; | 2336 String s = p; |
| 2324 } | 2337 } |
| 2325 p = null; | 2338 p = null; |
| 2326 } | 2339 } |
| 2327 '''; | 2340 '''; |
| 2328 assertHasAssistAt( | 2341 await assertHasAssistAt( |
| 2329 'is String', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); | 2342 'is String', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); |
| 2330 assertHasAssistAt( | 2343 await assertHasAssistAt( |
| 2331 'while (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); | 2344 'while (p', DartAssistKind.INTRODUCE_LOCAL_CAST_TYPE, expected); |
| 2332 } | 2345 } |
| 2333 | 2346 |
| 2334 void test_invalidSelection() { | 2347 test_invalidSelection() async { |
| 2335 resolveTestUnit(''); | 2348 resolveTestUnit(''); |
| 2336 List<Assist> assists = | 2349 List<Assist> assists = |
| 2337 computeAssists(plugin, context, testUnit.element.source, -1, 0); | 2350 await computeAssists(plugin, context, testUnit.element.source, -1, 0); |
| 2338 expect(assists, isEmpty); | 2351 expect(assists, isEmpty); |
| 2339 } | 2352 } |
| 2340 | 2353 |
| 2341 void test_invertIfStatement_blocks() { | 2354 test_invertIfStatement_blocks() async { |
| 2342 resolveTestUnit(''' | 2355 resolveTestUnit(''' |
| 2343 main() { | 2356 main() { |
| 2344 if (true) { | 2357 if (true) { |
| 2345 0; | 2358 0; |
| 2346 } else { | 2359 } else { |
| 2347 1; | 2360 1; |
| 2348 } | 2361 } |
| 2349 } | 2362 } |
| 2350 '''); | 2363 '''); |
| 2351 assertHasAssistAt( | 2364 await assertHasAssistAt( |
| 2352 'if (', | 2365 'if (', |
| 2353 DartAssistKind.INVERT_IF_STATEMENT, | 2366 DartAssistKind.INVERT_IF_STATEMENT, |
| 2354 ''' | 2367 ''' |
| 2355 main() { | 2368 main() { |
| 2356 if (false) { | 2369 if (false) { |
| 2357 1; | 2370 1; |
| 2358 } else { | 2371 } else { |
| 2359 0; | 2372 0; |
| 2360 } | 2373 } |
| 2361 } | 2374 } |
| 2362 '''); | 2375 '''); |
| 2363 } | 2376 } |
| 2364 | 2377 |
| 2365 void test_invertIfStatement_statements() { | 2378 test_invertIfStatement_statements() async { |
| 2366 resolveTestUnit(''' | 2379 resolveTestUnit(''' |
| 2367 main() { | 2380 main() { |
| 2368 if (true) | 2381 if (true) |
| 2369 0; | 2382 0; |
| 2370 else | 2383 else |
| 2371 1; | 2384 1; |
| 2372 } | 2385 } |
| 2373 '''); | 2386 '''); |
| 2374 assertHasAssistAt( | 2387 await assertHasAssistAt( |
| 2375 'if (', | 2388 'if (', |
| 2376 DartAssistKind.INVERT_IF_STATEMENT, | 2389 DartAssistKind.INVERT_IF_STATEMENT, |
| 2377 ''' | 2390 ''' |
| 2378 main() { | 2391 main() { |
| 2379 if (false) | 2392 if (false) |
| 2380 1; | 2393 1; |
| 2381 else | 2394 else |
| 2382 0; | 2395 0; |
| 2383 } | 2396 } |
| 2384 '''); | 2397 '''); |
| 2385 } | 2398 } |
| 2386 | 2399 |
| 2387 void test_joinIfStatementInner_OK_conditionAndOr() { | 2400 test_joinIfStatementInner_OK_conditionAndOr() async { |
| 2388 resolveTestUnit(''' | 2401 resolveTestUnit(''' |
| 2389 main() { | 2402 main() { |
| 2390 if (1 == 1) { | 2403 if (1 == 1) { |
| 2391 if (2 == 2 || 3 == 3) { | 2404 if (2 == 2 || 3 == 3) { |
| 2392 print(0); | 2405 print(0); |
| 2393 } | 2406 } |
| 2394 } | 2407 } |
| 2395 } | 2408 } |
| 2396 '''); | 2409 '''); |
| 2397 assertHasAssistAt( | 2410 await assertHasAssistAt( |
| 2398 'if (1 ==', | 2411 'if (1 ==', |
| 2399 DartAssistKind.JOIN_IF_WITH_INNER, | 2412 DartAssistKind.JOIN_IF_WITH_INNER, |
| 2400 ''' | 2413 ''' |
| 2401 main() { | 2414 main() { |
| 2402 if (1 == 1 && (2 == 2 || 3 == 3)) { | 2415 if (1 == 1 && (2 == 2 || 3 == 3)) { |
| 2403 print(0); | 2416 print(0); |
| 2404 } | 2417 } |
| 2405 } | 2418 } |
| 2406 '''); | 2419 '''); |
| 2407 } | 2420 } |
| 2408 | 2421 |
| 2409 void test_joinIfStatementInner_OK_conditionInvocation() { | 2422 test_joinIfStatementInner_OK_conditionInvocation() async { |
| 2410 resolveTestUnit(''' | 2423 resolveTestUnit(''' |
| 2411 main() { | 2424 main() { |
| 2412 if (isCheck()) { | 2425 if (isCheck()) { |
| 2413 if (2 == 2) { | 2426 if (2 == 2) { |
| 2414 print(0); | 2427 print(0); |
| 2415 } | 2428 } |
| 2416 } | 2429 } |
| 2417 } | 2430 } |
| 2418 bool isCheck() => false; | 2431 bool isCheck() => false; |
| 2419 '''); | 2432 '''); |
| 2420 assertHasAssistAt( | 2433 await assertHasAssistAt( |
| 2421 'if (isCheck', | 2434 'if (isCheck', |
| 2422 DartAssistKind.JOIN_IF_WITH_INNER, | 2435 DartAssistKind.JOIN_IF_WITH_INNER, |
| 2423 ''' | 2436 ''' |
| 2424 main() { | 2437 main() { |
| 2425 if (isCheck() && 2 == 2) { | 2438 if (isCheck() && 2 == 2) { |
| 2426 print(0); | 2439 print(0); |
| 2427 } | 2440 } |
| 2428 } | 2441 } |
| 2429 bool isCheck() => false; | 2442 bool isCheck() => false; |
| 2430 '''); | 2443 '''); |
| 2431 } | 2444 } |
| 2432 | 2445 |
| 2433 void test_joinIfStatementInner_OK_conditionOrAnd() { | 2446 test_joinIfStatementInner_OK_conditionOrAnd() async { |
| 2434 resolveTestUnit(''' | 2447 resolveTestUnit(''' |
| 2435 main() { | 2448 main() { |
| 2436 if (1 == 1 || 2 == 2) { | 2449 if (1 == 1 || 2 == 2) { |
| 2437 if (3 == 3) { | 2450 if (3 == 3) { |
| 2438 print(0); | 2451 print(0); |
| 2439 } | 2452 } |
| 2440 } | 2453 } |
| 2441 } | 2454 } |
| 2442 '''); | 2455 '''); |
| 2443 assertHasAssistAt( | 2456 await assertHasAssistAt( |
| 2444 'if (1 ==', | 2457 'if (1 ==', |
| 2445 DartAssistKind.JOIN_IF_WITH_INNER, | 2458 DartAssistKind.JOIN_IF_WITH_INNER, |
| 2446 ''' | 2459 ''' |
| 2447 main() { | 2460 main() { |
| 2448 if ((1 == 1 || 2 == 2) && 3 == 3) { | 2461 if ((1 == 1 || 2 == 2) && 3 == 3) { |
| 2449 print(0); | 2462 print(0); |
| 2450 } | 2463 } |
| 2451 } | 2464 } |
| 2452 '''); | 2465 '''); |
| 2453 } | 2466 } |
| 2454 | 2467 |
| 2455 void test_joinIfStatementInner_OK_onCondition() { | 2468 test_joinIfStatementInner_OK_onCondition() async { |
| 2456 resolveTestUnit(''' | 2469 resolveTestUnit(''' |
| 2457 main() { | 2470 main() { |
| 2458 if (1 == 1) { | 2471 if (1 == 1) { |
| 2459 if (2 == 2) { | 2472 if (2 == 2) { |
| 2460 print(0); | 2473 print(0); |
| 2461 } | 2474 } |
| 2462 } | 2475 } |
| 2463 } | 2476 } |
| 2464 '''); | 2477 '''); |
| 2465 assertHasAssistAt( | 2478 await assertHasAssistAt( |
| 2466 '1 ==', | 2479 '1 ==', |
| 2467 DartAssistKind.JOIN_IF_WITH_INNER, | 2480 DartAssistKind.JOIN_IF_WITH_INNER, |
| 2468 ''' | 2481 ''' |
| 2469 main() { | 2482 main() { |
| 2470 if (1 == 1 && 2 == 2) { | 2483 if (1 == 1 && 2 == 2) { |
| 2471 print(0); | 2484 print(0); |
| 2472 } | 2485 } |
| 2473 } | 2486 } |
| 2474 '''); | 2487 '''); |
| 2475 } | 2488 } |
| 2476 | 2489 |
| 2477 void test_joinIfStatementInner_OK_simpleConditions_block_block() { | 2490 test_joinIfStatementInner_OK_simpleConditions_block_block() async { |
| 2478 resolveTestUnit(''' | 2491 resolveTestUnit(''' |
| 2479 main() { | 2492 main() { |
| 2480 if (1 == 1) { | 2493 if (1 == 1) { |
| 2481 if (2 == 2) { | 2494 if (2 == 2) { |
| 2482 print(0); | 2495 print(0); |
| 2483 } | 2496 } |
| 2484 } | 2497 } |
| 2485 } | 2498 } |
| 2486 '''); | 2499 '''); |
| 2487 assertHasAssistAt( | 2500 await assertHasAssistAt( |
| 2488 'if (1 ==', | 2501 'if (1 ==', |
| 2489 DartAssistKind.JOIN_IF_WITH_INNER, | 2502 DartAssistKind.JOIN_IF_WITH_INNER, |
| 2490 ''' | 2503 ''' |
| 2491 main() { | 2504 main() { |
| 2492 if (1 == 1 && 2 == 2) { | 2505 if (1 == 1 && 2 == 2) { |
| 2493 print(0); | 2506 print(0); |
| 2494 } | 2507 } |
| 2495 } | 2508 } |
| 2496 '''); | 2509 '''); |
| 2497 } | 2510 } |
| 2498 | 2511 |
| 2499 void test_joinIfStatementInner_OK_simpleConditions_block_single() { | 2512 test_joinIfStatementInner_OK_simpleConditions_block_single() async { |
| 2500 resolveTestUnit(''' | 2513 resolveTestUnit(''' |
| 2501 main() { | 2514 main() { |
| 2502 if (1 == 1) { | 2515 if (1 == 1) { |
| 2503 if (2 == 2) | 2516 if (2 == 2) |
| 2504 print(0); | 2517 print(0); |
| 2505 } | 2518 } |
| 2506 } | 2519 } |
| 2507 '''); | 2520 '''); |
| 2508 assertHasAssistAt( | 2521 await assertHasAssistAt( |
| 2509 'if (1 ==', | 2522 'if (1 ==', |
| 2510 DartAssistKind.JOIN_IF_WITH_INNER, | 2523 DartAssistKind.JOIN_IF_WITH_INNER, |
| 2511 ''' | 2524 ''' |
| 2512 main() { | 2525 main() { |
| 2513 if (1 == 1 && 2 == 2) { | 2526 if (1 == 1 && 2 == 2) { |
| 2514 print(0); | 2527 print(0); |
| 2515 } | 2528 } |
| 2516 } | 2529 } |
| 2517 '''); | 2530 '''); |
| 2518 } | 2531 } |
| 2519 | 2532 |
| 2520 void test_joinIfStatementInner_OK_simpleConditions_single_blockMulti() { | 2533 test_joinIfStatementInner_OK_simpleConditions_single_blockMulti() async { |
| 2521 resolveTestUnit(''' | 2534 resolveTestUnit(''' |
| 2522 main() { | 2535 main() { |
| 2523 if (1 == 1) { | 2536 if (1 == 1) { |
| 2524 if (2 == 2) { | 2537 if (2 == 2) { |
| 2525 print(1); | 2538 print(1); |
| 2526 print(2); | 2539 print(2); |
| 2527 print(3); | 2540 print(3); |
| 2528 } | 2541 } |
| 2529 } | 2542 } |
| 2530 } | 2543 } |
| 2531 '''); | 2544 '''); |
| 2532 assertHasAssistAt( | 2545 await assertHasAssistAt( |
| 2533 'if (1 ==', | 2546 'if (1 ==', |
| 2534 DartAssistKind.JOIN_IF_WITH_INNER, | 2547 DartAssistKind.JOIN_IF_WITH_INNER, |
| 2535 ''' | 2548 ''' |
| 2536 main() { | 2549 main() { |
| 2537 if (1 == 1 && 2 == 2) { | 2550 if (1 == 1 && 2 == 2) { |
| 2538 print(1); | 2551 print(1); |
| 2539 print(2); | 2552 print(2); |
| 2540 print(3); | 2553 print(3); |
| 2541 } | 2554 } |
| 2542 } | 2555 } |
| 2543 '''); | 2556 '''); |
| 2544 } | 2557 } |
| 2545 | 2558 |
| 2546 void test_joinIfStatementInner_OK_simpleConditions_single_blockOne() { | 2559 test_joinIfStatementInner_OK_simpleConditions_single_blockOne() async { |
| 2547 resolveTestUnit(''' | 2560 resolveTestUnit(''' |
| 2548 main() { | 2561 main() { |
| 2549 if (1 == 1) | 2562 if (1 == 1) |
| 2550 if (2 == 2) { | 2563 if (2 == 2) { |
| 2551 print(0); | 2564 print(0); |
| 2552 } | 2565 } |
| 2553 } | 2566 } |
| 2554 '''); | 2567 '''); |
| 2555 assertHasAssistAt( | 2568 await assertHasAssistAt( |
| 2556 'if (1 ==', | 2569 'if (1 ==', |
| 2557 DartAssistKind.JOIN_IF_WITH_INNER, | 2570 DartAssistKind.JOIN_IF_WITH_INNER, |
| 2558 ''' | 2571 ''' |
| 2559 main() { | 2572 main() { |
| 2560 if (1 == 1 && 2 == 2) { | 2573 if (1 == 1 && 2 == 2) { |
| 2561 print(0); | 2574 print(0); |
| 2562 } | 2575 } |
| 2563 } | 2576 } |
| 2564 '''); | 2577 '''); |
| 2565 } | 2578 } |
| 2566 | 2579 |
| 2567 void test_joinIfStatementInner_wrong_innerNotIf() { | 2580 test_joinIfStatementInner_wrong_innerNotIf() async { |
| 2568 resolveTestUnit(''' | 2581 resolveTestUnit(''' |
| 2569 main() { | 2582 main() { |
| 2570 if (1 == 1) { | 2583 if (1 == 1) { |
| 2571 print(0); | 2584 print(0); |
| 2572 } | 2585 } |
| 2573 } | 2586 } |
| 2574 '''); | 2587 '''); |
| 2575 assertNoAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER); | 2588 await assertNoAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER); |
| 2576 } | 2589 } |
| 2577 | 2590 |
| 2578 void test_joinIfStatementInner_wrong_innerWithElse() { | 2591 test_joinIfStatementInner_wrong_innerWithElse() async { |
| 2579 resolveTestUnit(''' | 2592 resolveTestUnit(''' |
| 2580 main() { | 2593 main() { |
| 2581 if (1 == 1) { | 2594 if (1 == 1) { |
| 2582 if (2 == 2) { | 2595 if (2 == 2) { |
| 2583 print(0); | 2596 print(0); |
| 2584 } else { | 2597 } else { |
| 2585 print(1); | 2598 print(1); |
| 2586 } | 2599 } |
| 2587 } | 2600 } |
| 2588 } | 2601 } |
| 2589 '''); | 2602 '''); |
| 2590 assertNoAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER); | 2603 await assertNoAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER); |
| 2591 } | 2604 } |
| 2592 | 2605 |
| 2593 void test_joinIfStatementInner_wrong_targetNotIf() { | 2606 test_joinIfStatementInner_wrong_targetNotIf() async { |
| 2594 resolveTestUnit(''' | 2607 resolveTestUnit(''' |
| 2595 main() { | 2608 main() { |
| 2596 print(0); | 2609 print(0); |
| 2597 } | 2610 } |
| 2598 '''); | 2611 '''); |
| 2599 assertNoAssistAt('print', DartAssistKind.JOIN_IF_WITH_INNER); | 2612 await assertNoAssistAt('print', DartAssistKind.JOIN_IF_WITH_INNER); |
| 2600 } | 2613 } |
| 2601 | 2614 |
| 2602 void test_joinIfStatementInner_wrong_targetWithElse() { | 2615 test_joinIfStatementInner_wrong_targetWithElse() async { |
| 2603 resolveTestUnit(''' | 2616 resolveTestUnit(''' |
| 2604 main() { | 2617 main() { |
| 2605 if (1 == 1) { | 2618 if (1 == 1) { |
| 2606 if (2 == 2) { | 2619 if (2 == 2) { |
| 2607 print(0); | 2620 print(0); |
| 2608 } | 2621 } |
| 2609 } else { | 2622 } else { |
| 2610 print(1); | 2623 print(1); |
| 2611 } | 2624 } |
| 2612 } | 2625 } |
| 2613 '''); | 2626 '''); |
| 2614 assertNoAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER); | 2627 await assertNoAssistAt('if (1 ==', DartAssistKind.JOIN_IF_WITH_INNER); |
| 2615 } | 2628 } |
| 2616 | 2629 |
| 2617 void test_joinIfStatementOuter_OK_conditionAndOr() { | 2630 test_joinIfStatementOuter_OK_conditionAndOr() async { |
| 2618 resolveTestUnit(''' | 2631 resolveTestUnit(''' |
| 2619 main() { | 2632 main() { |
| 2620 if (1 == 1) { | 2633 if (1 == 1) { |
| 2621 if (2 == 2 || 3 == 3) { | 2634 if (2 == 2 || 3 == 3) { |
| 2622 print(0); | 2635 print(0); |
| 2623 } | 2636 } |
| 2624 } | 2637 } |
| 2625 } | 2638 } |
| 2626 '''); | 2639 '''); |
| 2627 assertHasAssistAt( | 2640 await assertHasAssistAt( |
| 2628 'if (2 ==', | 2641 'if (2 ==', |
| 2629 DartAssistKind.JOIN_IF_WITH_OUTER, | 2642 DartAssistKind.JOIN_IF_WITH_OUTER, |
| 2630 ''' | 2643 ''' |
| 2631 main() { | 2644 main() { |
| 2632 if (1 == 1 && (2 == 2 || 3 == 3)) { | 2645 if (1 == 1 && (2 == 2 || 3 == 3)) { |
| 2633 print(0); | 2646 print(0); |
| 2634 } | 2647 } |
| 2635 } | 2648 } |
| 2636 '''); | 2649 '''); |
| 2637 } | 2650 } |
| 2638 | 2651 |
| 2639 void test_joinIfStatementOuter_OK_conditionInvocation() { | 2652 test_joinIfStatementOuter_OK_conditionInvocation() async { |
| 2640 resolveTestUnit(''' | 2653 resolveTestUnit(''' |
| 2641 main() { | 2654 main() { |
| 2642 if (1 == 1) { | 2655 if (1 == 1) { |
| 2643 if (isCheck()) { | 2656 if (isCheck()) { |
| 2644 print(0); | 2657 print(0); |
| 2645 } | 2658 } |
| 2646 } | 2659 } |
| 2647 } | 2660 } |
| 2648 bool isCheck() => false; | 2661 bool isCheck() => false; |
| 2649 '''); | 2662 '''); |
| 2650 assertHasAssistAt( | 2663 await assertHasAssistAt( |
| 2651 'if (isCheck', | 2664 'if (isCheck', |
| 2652 DartAssistKind.JOIN_IF_WITH_OUTER, | 2665 DartAssistKind.JOIN_IF_WITH_OUTER, |
| 2653 ''' | 2666 ''' |
| 2654 main() { | 2667 main() { |
| 2655 if (1 == 1 && isCheck()) { | 2668 if (1 == 1 && isCheck()) { |
| 2656 print(0); | 2669 print(0); |
| 2657 } | 2670 } |
| 2658 } | 2671 } |
| 2659 bool isCheck() => false; | 2672 bool isCheck() => false; |
| 2660 '''); | 2673 '''); |
| 2661 } | 2674 } |
| 2662 | 2675 |
| 2663 void test_joinIfStatementOuter_OK_conditionOrAnd() { | 2676 test_joinIfStatementOuter_OK_conditionOrAnd() async { |
| 2664 resolveTestUnit(''' | 2677 resolveTestUnit(''' |
| 2665 main() { | 2678 main() { |
| 2666 if (1 == 1 || 2 == 2) { | 2679 if (1 == 1 || 2 == 2) { |
| 2667 if (3 == 3) { | 2680 if (3 == 3) { |
| 2668 print(0); | 2681 print(0); |
| 2669 } | 2682 } |
| 2670 } | 2683 } |
| 2671 } | 2684 } |
| 2672 '''); | 2685 '''); |
| 2673 assertHasAssistAt( | 2686 await assertHasAssistAt( |
| 2674 'if (3 == 3', | 2687 'if (3 == 3', |
| 2675 DartAssistKind.JOIN_IF_WITH_OUTER, | 2688 DartAssistKind.JOIN_IF_WITH_OUTER, |
| 2676 ''' | 2689 ''' |
| 2677 main() { | 2690 main() { |
| 2678 if ((1 == 1 || 2 == 2) && 3 == 3) { | 2691 if ((1 == 1 || 2 == 2) && 3 == 3) { |
| 2679 print(0); | 2692 print(0); |
| 2680 } | 2693 } |
| 2681 } | 2694 } |
| 2682 '''); | 2695 '''); |
| 2683 } | 2696 } |
| 2684 | 2697 |
| 2685 void test_joinIfStatementOuter_OK_onCondition() { | 2698 test_joinIfStatementOuter_OK_onCondition() async { |
| 2686 resolveTestUnit(''' | 2699 resolveTestUnit(''' |
| 2687 main() { | 2700 main() { |
| 2688 if (1 == 1) { | 2701 if (1 == 1) { |
| 2689 if (2 == 2) { | 2702 if (2 == 2) { |
| 2690 print(0); | 2703 print(0); |
| 2691 } | 2704 } |
| 2692 } | 2705 } |
| 2693 } | 2706 } |
| 2694 '''); | 2707 '''); |
| 2695 assertHasAssistAt( | 2708 await assertHasAssistAt( |
| 2696 'if (2 == 2', | 2709 'if (2 == 2', |
| 2697 DartAssistKind.JOIN_IF_WITH_OUTER, | 2710 DartAssistKind.JOIN_IF_WITH_OUTER, |
| 2698 ''' | 2711 ''' |
| 2699 main() { | 2712 main() { |
| 2700 if (1 == 1 && 2 == 2) { | 2713 if (1 == 1 && 2 == 2) { |
| 2701 print(0); | 2714 print(0); |
| 2702 } | 2715 } |
| 2703 } | 2716 } |
| 2704 '''); | 2717 '''); |
| 2705 } | 2718 } |
| 2706 | 2719 |
| 2707 void test_joinIfStatementOuter_OK_simpleConditions_block_block() { | 2720 test_joinIfStatementOuter_OK_simpleConditions_block_block() async { |
| 2708 resolveTestUnit(''' | 2721 resolveTestUnit(''' |
| 2709 main() { | 2722 main() { |
| 2710 if (1 == 1) { | 2723 if (1 == 1) { |
| 2711 if (2 == 2) { | 2724 if (2 == 2) { |
| 2712 print(0); | 2725 print(0); |
| 2713 } | 2726 } |
| 2714 } | 2727 } |
| 2715 } | 2728 } |
| 2716 '''); | 2729 '''); |
| 2717 assertHasAssistAt( | 2730 await assertHasAssistAt( |
| 2718 'if (2 == 2', | 2731 'if (2 == 2', |
| 2719 DartAssistKind.JOIN_IF_WITH_OUTER, | 2732 DartAssistKind.JOIN_IF_WITH_OUTER, |
| 2720 ''' | 2733 ''' |
| 2721 main() { | 2734 main() { |
| 2722 if (1 == 1 && 2 == 2) { | 2735 if (1 == 1 && 2 == 2) { |
| 2723 print(0); | 2736 print(0); |
| 2724 } | 2737 } |
| 2725 } | 2738 } |
| 2726 '''); | 2739 '''); |
| 2727 } | 2740 } |
| 2728 | 2741 |
| 2729 void test_joinIfStatementOuter_OK_simpleConditions_block_single() { | 2742 test_joinIfStatementOuter_OK_simpleConditions_block_single() async { |
| 2730 resolveTestUnit(''' | 2743 resolveTestUnit(''' |
| 2731 main() { | 2744 main() { |
| 2732 if (1 == 1) { | 2745 if (1 == 1) { |
| 2733 if (2 == 2) | 2746 if (2 == 2) |
| 2734 print(0); | 2747 print(0); |
| 2735 } | 2748 } |
| 2736 } | 2749 } |
| 2737 '''); | 2750 '''); |
| 2738 assertHasAssistAt( | 2751 await assertHasAssistAt( |
| 2739 'if (2 == 2', | 2752 'if (2 == 2', |
| 2740 DartAssistKind.JOIN_IF_WITH_OUTER, | 2753 DartAssistKind.JOIN_IF_WITH_OUTER, |
| 2741 ''' | 2754 ''' |
| 2742 main() { | 2755 main() { |
| 2743 if (1 == 1 && 2 == 2) { | 2756 if (1 == 1 && 2 == 2) { |
| 2744 print(0); | 2757 print(0); |
| 2745 } | 2758 } |
| 2746 } | 2759 } |
| 2747 '''); | 2760 '''); |
| 2748 } | 2761 } |
| 2749 | 2762 |
| 2750 void test_joinIfStatementOuter_OK_simpleConditions_single_blockMulti() { | 2763 test_joinIfStatementOuter_OK_simpleConditions_single_blockMulti() async { |
| 2751 resolveTestUnit(''' | 2764 resolveTestUnit(''' |
| 2752 main() { | 2765 main() { |
| 2753 if (1 == 1) { | 2766 if (1 == 1) { |
| 2754 if (2 == 2) { | 2767 if (2 == 2) { |
| 2755 print(1); | 2768 print(1); |
| 2756 print(2); | 2769 print(2); |
| 2757 print(3); | 2770 print(3); |
| 2758 } | 2771 } |
| 2759 } | 2772 } |
| 2760 } | 2773 } |
| 2761 '''); | 2774 '''); |
| 2762 assertHasAssistAt( | 2775 await assertHasAssistAt( |
| 2763 'if (2 == 2', | 2776 'if (2 == 2', |
| 2764 DartAssistKind.JOIN_IF_WITH_OUTER, | 2777 DartAssistKind.JOIN_IF_WITH_OUTER, |
| 2765 ''' | 2778 ''' |
| 2766 main() { | 2779 main() { |
| 2767 if (1 == 1 && 2 == 2) { | 2780 if (1 == 1 && 2 == 2) { |
| 2768 print(1); | 2781 print(1); |
| 2769 print(2); | 2782 print(2); |
| 2770 print(3); | 2783 print(3); |
| 2771 } | 2784 } |
| 2772 } | 2785 } |
| 2773 '''); | 2786 '''); |
| 2774 } | 2787 } |
| 2775 | 2788 |
| 2776 void test_joinIfStatementOuter_OK_simpleConditions_single_blockOne() { | 2789 test_joinIfStatementOuter_OK_simpleConditions_single_blockOne() async { |
| 2777 resolveTestUnit(''' | 2790 resolveTestUnit(''' |
| 2778 main() { | 2791 main() { |
| 2779 if (1 == 1) | 2792 if (1 == 1) |
| 2780 if (2 == 2) { | 2793 if (2 == 2) { |
| 2781 print(0); | 2794 print(0); |
| 2782 } | 2795 } |
| 2783 } | 2796 } |
| 2784 '''); | 2797 '''); |
| 2785 assertHasAssistAt( | 2798 await assertHasAssistAt( |
| 2786 'if (2 == 2', | 2799 'if (2 == 2', |
| 2787 DartAssistKind.JOIN_IF_WITH_OUTER, | 2800 DartAssistKind.JOIN_IF_WITH_OUTER, |
| 2788 ''' | 2801 ''' |
| 2789 main() { | 2802 main() { |
| 2790 if (1 == 1 && 2 == 2) { | 2803 if (1 == 1 && 2 == 2) { |
| 2791 print(0); | 2804 print(0); |
| 2792 } | 2805 } |
| 2793 } | 2806 } |
| 2794 '''); | 2807 '''); |
| 2795 } | 2808 } |
| 2796 | 2809 |
| 2797 void test_joinIfStatementOuter_wrong_outerNotIf() { | 2810 test_joinIfStatementOuter_wrong_outerNotIf() async { |
| 2798 resolveTestUnit(''' | 2811 resolveTestUnit(''' |
| 2799 main() { | 2812 main() { |
| 2800 if (1 == 1) { | 2813 if (1 == 1) { |
| 2801 print(0); | 2814 print(0); |
| 2802 } | 2815 } |
| 2803 } | 2816 } |
| 2804 '''); | 2817 '''); |
| 2805 assertNoAssistAt('if (1 == 1', DartAssistKind.JOIN_IF_WITH_OUTER); | 2818 await assertNoAssistAt('if (1 == 1', DartAssistKind.JOIN_IF_WITH_OUTER); |
| 2806 } | 2819 } |
| 2807 | 2820 |
| 2808 void test_joinIfStatementOuter_wrong_outerWithElse() { | 2821 test_joinIfStatementOuter_wrong_outerWithElse() async { |
| 2809 resolveTestUnit(''' | 2822 resolveTestUnit(''' |
| 2810 main() { | 2823 main() { |
| 2811 if (1 == 1) { | 2824 if (1 == 1) { |
| 2812 if (2 == 2) { | 2825 if (2 == 2) { |
| 2813 print(0); | 2826 print(0); |
| 2814 } | 2827 } |
| 2815 } else { | 2828 } else { |
| 2816 print(1); | 2829 print(1); |
| 2817 } | 2830 } |
| 2818 } | 2831 } |
| 2819 '''); | 2832 '''); |
| 2820 assertNoAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER); | 2833 await assertNoAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER); |
| 2821 } | 2834 } |
| 2822 | 2835 |
| 2823 void test_joinIfStatementOuter_wrong_targetNotIf() { | 2836 test_joinIfStatementOuter_wrong_targetNotIf() async { |
| 2824 resolveTestUnit(''' | 2837 resolveTestUnit(''' |
| 2825 main() { | 2838 main() { |
| 2826 print(0); | 2839 print(0); |
| 2827 } | 2840 } |
| 2828 '''); | 2841 '''); |
| 2829 assertNoAssistAt('print', DartAssistKind.JOIN_IF_WITH_OUTER); | 2842 await assertNoAssistAt('print', DartAssistKind.JOIN_IF_WITH_OUTER); |
| 2830 } | 2843 } |
| 2831 | 2844 |
| 2832 void test_joinIfStatementOuter_wrong_targetWithElse() { | 2845 test_joinIfStatementOuter_wrong_targetWithElse() async { |
| 2833 resolveTestUnit(''' | 2846 resolveTestUnit(''' |
| 2834 main() { | 2847 main() { |
| 2835 if (1 == 1) { | 2848 if (1 == 1) { |
| 2836 if (2 == 2) { | 2849 if (2 == 2) { |
| 2837 print(0); | 2850 print(0); |
| 2838 } else { | 2851 } else { |
| 2839 print(1); | 2852 print(1); |
| 2840 } | 2853 } |
| 2841 } | 2854 } |
| 2842 } | 2855 } |
| 2843 '''); | 2856 '''); |
| 2844 assertNoAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER); | 2857 await assertNoAssistAt('if (2 == 2', DartAssistKind.JOIN_IF_WITH_OUTER); |
| 2845 } | 2858 } |
| 2846 | 2859 |
| 2847 void test_joinVariableDeclaration_onAssignment_OK() { | 2860 test_joinVariableDeclaration_onAssignment_OK() async { |
| 2848 resolveTestUnit(''' | 2861 resolveTestUnit(''' |
| 2849 main() { | 2862 main() { |
| 2850 var v; | 2863 var v; |
| 2851 v = 1; | 2864 v = 1; |
| 2852 } | 2865 } |
| 2853 '''); | 2866 '''); |
| 2854 assertHasAssistAt( | 2867 await assertHasAssistAt( |
| 2855 'v =', | 2868 'v =', |
| 2856 DartAssistKind.JOIN_VARIABLE_DECLARATION, | 2869 DartAssistKind.JOIN_VARIABLE_DECLARATION, |
| 2857 ''' | 2870 ''' |
| 2858 main() { | 2871 main() { |
| 2859 var v = 1; | 2872 var v = 1; |
| 2860 } | 2873 } |
| 2861 '''); | 2874 '''); |
| 2862 } | 2875 } |
| 2863 | 2876 |
| 2864 void test_joinVariableDeclaration_onAssignment_wrong_hasInitializer() { | 2877 test_joinVariableDeclaration_onAssignment_wrong_hasInitializer() async { |
| 2865 resolveTestUnit(''' | 2878 resolveTestUnit(''' |
| 2866 main() { | 2879 main() { |
| 2867 var v = 1; | 2880 var v = 1; |
| 2868 v = 2; | 2881 v = 2; |
| 2869 } | 2882 } |
| 2870 '''); | 2883 '''); |
| 2871 assertNoAssistAt('v = 2', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 2884 await assertNoAssistAt('v = 2', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 2872 } | 2885 } |
| 2873 | 2886 |
| 2874 void test_joinVariableDeclaration_onAssignment_wrong_notAdjacent() { | 2887 test_joinVariableDeclaration_onAssignment_wrong_notAdjacent() async { |
| 2875 resolveTestUnit(''' | 2888 resolveTestUnit(''' |
| 2876 main() { | 2889 main() { |
| 2877 var v; | 2890 var v; |
| 2878 var bar; | 2891 var bar; |
| 2879 v = 1; | 2892 v = 1; |
| 2880 } | 2893 } |
| 2881 '''); | 2894 '''); |
| 2882 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 2895 await assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 2883 } | 2896 } |
| 2884 | 2897 |
| 2885 void test_joinVariableDeclaration_onAssignment_wrong_notAssignment() { | 2898 test_joinVariableDeclaration_onAssignment_wrong_notAssignment() async { |
| 2886 resolveTestUnit(''' | 2899 resolveTestUnit(''' |
| 2887 main() { | 2900 main() { |
| 2888 var v; | 2901 var v; |
| 2889 v += 1; | 2902 v += 1; |
| 2890 } | 2903 } |
| 2891 '''); | 2904 '''); |
| 2892 assertNoAssistAt('v += 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 2905 await assertNoAssistAt('v += 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 2893 } | 2906 } |
| 2894 | 2907 |
| 2895 void test_joinVariableDeclaration_onAssignment_wrong_notDeclaration() { | 2908 test_joinVariableDeclaration_onAssignment_wrong_notDeclaration() async { |
| 2896 resolveTestUnit(''' | 2909 resolveTestUnit(''' |
| 2897 main(var v) { | 2910 main(var v) { |
| 2898 v = 1; | 2911 v = 1; |
| 2899 } | 2912 } |
| 2900 '''); | 2913 '''); |
| 2901 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 2914 await assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 2902 } | 2915 } |
| 2903 | 2916 |
| 2904 void test_joinVariableDeclaration_onAssignment_wrong_notLeftArgument() { | 2917 test_joinVariableDeclaration_onAssignment_wrong_notLeftArgument() async { |
| 2905 resolveTestUnit(''' | 2918 resolveTestUnit(''' |
| 2906 main() { | 2919 main() { |
| 2907 var v; | 2920 var v; |
| 2908 1 + v; // marker | 2921 1 + v; // marker |
| 2909 } | 2922 } |
| 2910 '''); | 2923 '''); |
| 2911 assertNoAssistAt('v; // marker', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 2924 await assertNoAssistAt( |
| 2925 'v; // marker', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 2912 } | 2926 } |
| 2913 | 2927 |
| 2914 void test_joinVariableDeclaration_onAssignment_wrong_notOneVariable() { | 2928 test_joinVariableDeclaration_onAssignment_wrong_notOneVariable() async { |
| 2915 resolveTestUnit(''' | 2929 resolveTestUnit(''' |
| 2916 main() { | 2930 main() { |
| 2917 var v, v2; | 2931 var v, v2; |
| 2918 v = 1; | 2932 v = 1; |
| 2919 } | 2933 } |
| 2920 '''); | 2934 '''); |
| 2921 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 2935 await assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 2922 } | 2936 } |
| 2923 | 2937 |
| 2924 void test_joinVariableDeclaration_onAssignment_wrong_notResolved() { | 2938 test_joinVariableDeclaration_onAssignment_wrong_notResolved() async { |
| 2925 verifyNoTestUnitErrors = false; | 2939 verifyNoTestUnitErrors = false; |
| 2926 resolveTestUnit(''' | 2940 resolveTestUnit(''' |
| 2927 main() { | 2941 main() { |
| 2928 var v; | 2942 var v; |
| 2929 x = 1; | 2943 x = 1; |
| 2930 } | 2944 } |
| 2931 '''); | 2945 '''); |
| 2932 assertNoAssistAt('x = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 2946 await assertNoAssistAt('x = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 2933 } | 2947 } |
| 2934 | 2948 |
| 2935 void test_joinVariableDeclaration_onAssignment_wrong_notSameBlock() { | 2949 test_joinVariableDeclaration_onAssignment_wrong_notSameBlock() async { |
| 2936 resolveTestUnit(''' | 2950 resolveTestUnit(''' |
| 2937 main() { | 2951 main() { |
| 2938 var v; | 2952 var v; |
| 2939 { | 2953 { |
| 2940 v = 1; | 2954 v = 1; |
| 2941 } | 2955 } |
| 2942 } | 2956 } |
| 2943 '''); | 2957 '''); |
| 2944 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 2958 await assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 2945 } | 2959 } |
| 2946 | 2960 |
| 2947 void test_joinVariableDeclaration_onDeclaration_OK_onName() { | 2961 test_joinVariableDeclaration_onDeclaration_OK_onName() async { |
| 2948 resolveTestUnit(''' | 2962 resolveTestUnit(''' |
| 2949 main() { | 2963 main() { |
| 2950 var v; | 2964 var v; |
| 2951 v = 1; | 2965 v = 1; |
| 2952 } | 2966 } |
| 2953 '''); | 2967 '''); |
| 2954 assertHasAssistAt( | 2968 await assertHasAssistAt( |
| 2955 'v;', | 2969 'v;', |
| 2956 DartAssistKind.JOIN_VARIABLE_DECLARATION, | 2970 DartAssistKind.JOIN_VARIABLE_DECLARATION, |
| 2957 ''' | 2971 ''' |
| 2958 main() { | 2972 main() { |
| 2959 var v = 1; | 2973 var v = 1; |
| 2960 } | 2974 } |
| 2961 '''); | 2975 '''); |
| 2962 } | 2976 } |
| 2963 | 2977 |
| 2964 void test_joinVariableDeclaration_onDeclaration_OK_onType() { | 2978 test_joinVariableDeclaration_onDeclaration_OK_onType() async { |
| 2965 resolveTestUnit(''' | 2979 resolveTestUnit(''' |
| 2966 main() { | 2980 main() { |
| 2967 int v; | 2981 int v; |
| 2968 v = 1; | 2982 v = 1; |
| 2969 } | 2983 } |
| 2970 '''); | 2984 '''); |
| 2971 assertHasAssistAt( | 2985 await assertHasAssistAt( |
| 2972 'int v', | 2986 'int v', |
| 2973 DartAssistKind.JOIN_VARIABLE_DECLARATION, | 2987 DartAssistKind.JOIN_VARIABLE_DECLARATION, |
| 2974 ''' | 2988 ''' |
| 2975 main() { | 2989 main() { |
| 2976 int v = 1; | 2990 int v = 1; |
| 2977 } | 2991 } |
| 2978 '''); | 2992 '''); |
| 2979 } | 2993 } |
| 2980 | 2994 |
| 2981 void test_joinVariableDeclaration_onDeclaration_OK_onVar() { | 2995 test_joinVariableDeclaration_onDeclaration_OK_onVar() async { |
| 2982 resolveTestUnit(''' | 2996 resolveTestUnit(''' |
| 2983 main() { | 2997 main() { |
| 2984 var v; | 2998 var v; |
| 2985 v = 1; | 2999 v = 1; |
| 2986 } | 3000 } |
| 2987 '''); | 3001 '''); |
| 2988 assertHasAssistAt( | 3002 await assertHasAssistAt( |
| 2989 'var v', | 3003 'var v', |
| 2990 DartAssistKind.JOIN_VARIABLE_DECLARATION, | 3004 DartAssistKind.JOIN_VARIABLE_DECLARATION, |
| 2991 ''' | 3005 ''' |
| 2992 main() { | 3006 main() { |
| 2993 var v = 1; | 3007 var v = 1; |
| 2994 } | 3008 } |
| 2995 '''); | 3009 '''); |
| 2996 } | 3010 } |
| 2997 | 3011 |
| 2998 void test_joinVariableDeclaration_onDeclaration_wrong_hasInitializer() { | 3012 test_joinVariableDeclaration_onDeclaration_wrong_hasInitializer() async { |
| 2999 resolveTestUnit(''' | 3013 resolveTestUnit(''' |
| 3000 main() { | 3014 main() { |
| 3001 var v = 1; | 3015 var v = 1; |
| 3002 v = 2; | 3016 v = 2; |
| 3003 } | 3017 } |
| 3004 '''); | 3018 '''); |
| 3005 assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 3019 await assertNoAssistAt('v = 1', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 3006 } | 3020 } |
| 3007 | 3021 |
| 3008 void test_joinVariableDeclaration_onDeclaration_wrong_lastStatement() { | 3022 test_joinVariableDeclaration_onDeclaration_wrong_lastStatement() async { |
| 3009 resolveTestUnit(''' | 3023 resolveTestUnit(''' |
| 3010 main() { | 3024 main() { |
| 3011 if (true) | 3025 if (true) |
| 3012 var v; | 3026 var v; |
| 3013 } | 3027 } |
| 3014 '''); | 3028 '''); |
| 3015 assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 3029 await assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 3016 } | 3030 } |
| 3017 | 3031 |
| 3018 void test_joinVariableDeclaration_onDeclaration_wrong_nextNotAssignmentExpress
ion() { | 3032 test_joinVariableDeclaration_onDeclaration_wrong_nextNotAssignmentExpression()
async { |
| 3019 resolveTestUnit(''' | 3033 resolveTestUnit(''' |
| 3020 main() { | 3034 main() { |
| 3021 var v; | 3035 var v; |
| 3022 42; | 3036 42; |
| 3023 } | 3037 } |
| 3024 '''); | 3038 '''); |
| 3025 assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 3039 await assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 3026 } | 3040 } |
| 3027 | 3041 |
| 3028 void test_joinVariableDeclaration_onDeclaration_wrong_nextNotExpressionStateme
nt() { | 3042 test_joinVariableDeclaration_onDeclaration_wrong_nextNotExpressionStatement()
async { |
| 3029 resolveTestUnit(''' | 3043 resolveTestUnit(''' |
| 3030 main() { | 3044 main() { |
| 3031 var v; | 3045 var v; |
| 3032 if (true) return; | 3046 if (true) return; |
| 3033 } | 3047 } |
| 3034 '''); | 3048 '''); |
| 3035 assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 3049 await assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 3036 } | 3050 } |
| 3037 | 3051 |
| 3038 void test_joinVariableDeclaration_onDeclaration_wrong_nextNotPureAssignment()
{ | 3052 test_joinVariableDeclaration_onDeclaration_wrong_nextNotPureAssignment() async
{ |
| 3039 resolveTestUnit(''' | 3053 resolveTestUnit(''' |
| 3040 main() { | 3054 main() { |
| 3041 var v; | 3055 var v; |
| 3042 v += 1; | 3056 v += 1; |
| 3043 } | 3057 } |
| 3044 '''); | 3058 '''); |
| 3045 assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 3059 await assertNoAssistAt('v;', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 3046 } | 3060 } |
| 3047 | 3061 |
| 3048 void test_joinVariableDeclaration_onDeclaration_wrong_notOneVariable() { | 3062 test_joinVariableDeclaration_onDeclaration_wrong_notOneVariable() async { |
| 3049 resolveTestUnit(''' | 3063 resolveTestUnit(''' |
| 3050 main() { | 3064 main() { |
| 3051 var v, v2; | 3065 var v, v2; |
| 3052 v = 1; | 3066 v = 1; |
| 3053 } | 3067 } |
| 3054 '''); | 3068 '''); |
| 3055 assertNoAssistAt('v, ', DartAssistKind.JOIN_VARIABLE_DECLARATION); | 3069 await assertNoAssistAt('v, ', DartAssistKind.JOIN_VARIABLE_DECLARATION); |
| 3056 } | 3070 } |
| 3057 | 3071 |
| 3058 void test_removeTypeAnnotation_classField_OK() { | 3072 test_removeTypeAnnotation_classField_OK() async { |
| 3059 resolveTestUnit(''' | 3073 resolveTestUnit(''' |
| 3060 class A { | 3074 class A { |
| 3061 int v = 1; | 3075 int v = 1; |
| 3062 } | 3076 } |
| 3063 '''); | 3077 '''); |
| 3064 assertHasAssistAt( | 3078 await assertHasAssistAt( |
| 3065 'v = ', | 3079 'v = ', |
| 3066 DartAssistKind.REMOVE_TYPE_ANNOTATION, | 3080 DartAssistKind.REMOVE_TYPE_ANNOTATION, |
| 3067 ''' | 3081 ''' |
| 3068 class A { | 3082 class A { |
| 3069 var v = 1; | 3083 var v = 1; |
| 3070 } | 3084 } |
| 3071 '''); | 3085 '''); |
| 3072 } | 3086 } |
| 3073 | 3087 |
| 3074 void test_removeTypeAnnotation_classField_OK_final() { | 3088 test_removeTypeAnnotation_classField_OK_final() async { |
| 3075 resolveTestUnit(''' | 3089 resolveTestUnit(''' |
| 3076 class A { | 3090 class A { |
| 3077 final int v = 1; | 3091 final int v = 1; |
| 3078 } | 3092 } |
| 3079 '''); | 3093 '''); |
| 3080 assertHasAssistAt( | 3094 await assertHasAssistAt( |
| 3081 'v = ', | 3095 'v = ', |
| 3082 DartAssistKind.REMOVE_TYPE_ANNOTATION, | 3096 DartAssistKind.REMOVE_TYPE_ANNOTATION, |
| 3083 ''' | 3097 ''' |
| 3084 class A { | 3098 class A { |
| 3085 final v = 1; | 3099 final v = 1; |
| 3086 } | 3100 } |
| 3087 '''); | 3101 '''); |
| 3088 } | 3102 } |
| 3089 | 3103 |
| 3090 void test_removeTypeAnnotation_localVariable_OK() { | 3104 test_removeTypeAnnotation_localVariable_OK() async { |
| 3091 resolveTestUnit(''' | 3105 resolveTestUnit(''' |
| 3092 main() { | 3106 main() { |
| 3093 int a = 1, b = 2; | 3107 int a = 1, b = 2; |
| 3094 } | 3108 } |
| 3095 '''); | 3109 '''); |
| 3096 assertHasAssistAt( | 3110 await assertHasAssistAt( |
| 3097 'int ', | 3111 'int ', |
| 3098 DartAssistKind.REMOVE_TYPE_ANNOTATION, | 3112 DartAssistKind.REMOVE_TYPE_ANNOTATION, |
| 3099 ''' | 3113 ''' |
| 3100 main() { | 3114 main() { |
| 3101 var a = 1, b = 2; | 3115 var a = 1, b = 2; |
| 3102 } | 3116 } |
| 3103 '''); | 3117 '''); |
| 3104 } | 3118 } |
| 3105 | 3119 |
| 3106 void test_removeTypeAnnotation_localVariable_OK_const() { | 3120 test_removeTypeAnnotation_localVariable_OK_const() async { |
| 3107 resolveTestUnit(''' | 3121 resolveTestUnit(''' |
| 3108 main() { | 3122 main() { |
| 3109 const int v = 1; | 3123 const int v = 1; |
| 3110 } | 3124 } |
| 3111 '''); | 3125 '''); |
| 3112 assertHasAssistAt( | 3126 await assertHasAssistAt( |
| 3113 'int ', | 3127 'int ', |
| 3114 DartAssistKind.REMOVE_TYPE_ANNOTATION, | 3128 DartAssistKind.REMOVE_TYPE_ANNOTATION, |
| 3115 ''' | 3129 ''' |
| 3116 main() { | 3130 main() { |
| 3117 const v = 1; | 3131 const v = 1; |
| 3118 } | 3132 } |
| 3119 '''); | 3133 '''); |
| 3120 } | 3134 } |
| 3121 | 3135 |
| 3122 void test_removeTypeAnnotation_localVariable_OK_final() { | 3136 test_removeTypeAnnotation_localVariable_OK_final() async { |
| 3123 resolveTestUnit(''' | 3137 resolveTestUnit(''' |
| 3124 main() { | 3138 main() { |
| 3125 final int v = 1; | 3139 final int v = 1; |
| 3126 } | 3140 } |
| 3127 '''); | 3141 '''); |
| 3128 assertHasAssistAt( | 3142 await assertHasAssistAt( |
| 3129 'int ', | 3143 'int ', |
| 3130 DartAssistKind.REMOVE_TYPE_ANNOTATION, | 3144 DartAssistKind.REMOVE_TYPE_ANNOTATION, |
| 3131 ''' | 3145 ''' |
| 3132 main() { | 3146 main() { |
| 3133 final v = 1; | 3147 final v = 1; |
| 3134 } | 3148 } |
| 3135 '''); | 3149 '''); |
| 3136 } | 3150 } |
| 3137 | 3151 |
| 3138 void test_removeTypeAnnotation_topLevelVariable_OK() { | 3152 test_removeTypeAnnotation_topLevelVariable_OK() async { |
| 3139 resolveTestUnit(''' | 3153 resolveTestUnit(''' |
| 3140 int V = 1; | 3154 int V = 1; |
| 3141 '''); | 3155 '''); |
| 3142 assertHasAssistAt( | 3156 await assertHasAssistAt( |
| 3143 'int ', | 3157 'int ', |
| 3144 DartAssistKind.REMOVE_TYPE_ANNOTATION, | 3158 DartAssistKind.REMOVE_TYPE_ANNOTATION, |
| 3145 ''' | 3159 ''' |
| 3146 var V = 1; | 3160 var V = 1; |
| 3147 '''); | 3161 '''); |
| 3148 } | 3162 } |
| 3149 | 3163 |
| 3150 void test_removeTypeAnnotation_topLevelVariable_OK_final() { | 3164 test_removeTypeAnnotation_topLevelVariable_OK_final() async { |
| 3151 resolveTestUnit(''' | 3165 resolveTestUnit(''' |
| 3152 final int V = 1; | 3166 final int V = 1; |
| 3153 '''); | 3167 '''); |
| 3154 assertHasAssistAt( | 3168 await assertHasAssistAt( |
| 3155 'int ', | 3169 'int ', |
| 3156 DartAssistKind.REMOVE_TYPE_ANNOTATION, | 3170 DartAssistKind.REMOVE_TYPE_ANNOTATION, |
| 3157 ''' | 3171 ''' |
| 3158 final V = 1; | 3172 final V = 1; |
| 3159 '''); | 3173 '''); |
| 3160 } | 3174 } |
| 3161 | 3175 |
| 3162 void test_replaceConditionalWithIfElse_OK_assignment() { | 3176 test_replaceConditionalWithIfElse_OK_assignment() async { |
| 3163 resolveTestUnit(''' | 3177 resolveTestUnit(''' |
| 3164 main() { | 3178 main() { |
| 3165 var v; | 3179 var v; |
| 3166 v = true ? 111 : 222; | 3180 v = true ? 111 : 222; |
| 3167 } | 3181 } |
| 3168 '''); | 3182 '''); |
| 3169 // on conditional | 3183 // on conditional |
| 3170 assertHasAssistAt( | 3184 await assertHasAssistAt( |
| 3171 '11 :', | 3185 '11 :', |
| 3172 DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, | 3186 DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, |
| 3173 ''' | 3187 ''' |
| 3174 main() { | 3188 main() { |
| 3175 var v; | 3189 var v; |
| 3176 if (true) { | 3190 if (true) { |
| 3177 v = 111; | 3191 v = 111; |
| 3178 } else { | 3192 } else { |
| 3179 v = 222; | 3193 v = 222; |
| 3180 } | 3194 } |
| 3181 } | 3195 } |
| 3182 '''); | 3196 '''); |
| 3183 // on variable | 3197 // on variable |
| 3184 assertHasAssistAt( | 3198 await assertHasAssistAt( |
| 3185 'v =', | 3199 'v =', |
| 3186 DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, | 3200 DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, |
| 3187 ''' | 3201 ''' |
| 3188 main() { | 3202 main() { |
| 3189 var v; | 3203 var v; |
| 3190 if (true) { | 3204 if (true) { |
| 3191 v = 111; | 3205 v = 111; |
| 3192 } else { | 3206 } else { |
| 3193 v = 222; | 3207 v = 222; |
| 3194 } | 3208 } |
| 3195 } | 3209 } |
| 3196 '''); | 3210 '''); |
| 3197 } | 3211 } |
| 3198 | 3212 |
| 3199 void test_replaceConditionalWithIfElse_OK_return() { | 3213 test_replaceConditionalWithIfElse_OK_return() async { |
| 3200 resolveTestUnit(''' | 3214 resolveTestUnit(''' |
| 3201 main() { | 3215 main() { |
| 3202 return true ? 111 : 222; | 3216 return true ? 111 : 222; |
| 3203 } | 3217 } |
| 3204 '''); | 3218 '''); |
| 3205 assertHasAssistAt( | 3219 await assertHasAssistAt( |
| 3206 'return ', | 3220 'return ', |
| 3207 DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, | 3221 DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, |
| 3208 ''' | 3222 ''' |
| 3209 main() { | 3223 main() { |
| 3210 if (true) { | 3224 if (true) { |
| 3211 return 111; | 3225 return 111; |
| 3212 } else { | 3226 } else { |
| 3213 return 222; | 3227 return 222; |
| 3214 } | 3228 } |
| 3215 } | 3229 } |
| 3216 '''); | 3230 '''); |
| 3217 } | 3231 } |
| 3218 | 3232 |
| 3219 void test_replaceConditionalWithIfElse_OK_variableDeclaration() { | 3233 test_replaceConditionalWithIfElse_OK_variableDeclaration() async { |
| 3220 resolveTestUnit(''' | 3234 resolveTestUnit(''' |
| 3221 main() { | 3235 main() { |
| 3222 int a = 1, vvv = true ? 111 : 222, b = 2; | 3236 int a = 1, vvv = true ? 111 : 222, b = 2; |
| 3223 } | 3237 } |
| 3224 '''); | 3238 '''); |
| 3225 assertHasAssistAt( | 3239 await assertHasAssistAt( |
| 3226 '11 :', | 3240 '11 :', |
| 3227 DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, | 3241 DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE, |
| 3228 ''' | 3242 ''' |
| 3229 main() { | 3243 main() { |
| 3230 int a = 1, vvv, b = 2; | 3244 int a = 1, vvv, b = 2; |
| 3231 if (true) { | 3245 if (true) { |
| 3232 vvv = 111; | 3246 vvv = 111; |
| 3233 } else { | 3247 } else { |
| 3234 vvv = 222; | 3248 vvv = 222; |
| 3235 } | 3249 } |
| 3236 } | 3250 } |
| 3237 '''); | 3251 '''); |
| 3238 } | 3252 } |
| 3239 | 3253 |
| 3240 void test_replaceConditionalWithIfElse_wrong_noEnclosingStatement() { | 3254 test_replaceConditionalWithIfElse_wrong_noEnclosingStatement() async { |
| 3241 resolveTestUnit(''' | 3255 resolveTestUnit(''' |
| 3242 var v = true ? 111 : 222; | 3256 var v = true ? 111 : 222; |
| 3243 '''); | 3257 '''); |
| 3244 assertNoAssistAt('? 111', DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE); | 3258 await assertNoAssistAt( |
| 3259 '? 111', DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE); |
| 3245 } | 3260 } |
| 3246 | 3261 |
| 3247 void test_replaceConditionalWithIfElse_wrong_notConditional() { | 3262 test_replaceConditionalWithIfElse_wrong_notConditional() async { |
| 3248 resolveTestUnit(''' | 3263 resolveTestUnit(''' |
| 3249 main() { | 3264 main() { |
| 3250 var v = 42; | 3265 var v = 42; |
| 3251 } | 3266 } |
| 3252 '''); | 3267 '''); |
| 3253 assertNoAssistAt('v = 42', DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE); | 3268 await assertNoAssistAt( |
| 3269 'v = 42', DartAssistKind.REPLACE_CONDITIONAL_WITH_IF_ELSE); |
| 3254 } | 3270 } |
| 3255 | 3271 |
| 3256 void test_replaceIfElseWithConditional_OK_assignment() { | 3272 test_replaceIfElseWithConditional_OK_assignment() async { |
| 3257 resolveTestUnit(''' | 3273 resolveTestUnit(''' |
| 3258 main() { | 3274 main() { |
| 3259 int vvv; | 3275 int vvv; |
| 3260 if (true) { | 3276 if (true) { |
| 3261 vvv = 111; | 3277 vvv = 111; |
| 3262 } else { | 3278 } else { |
| 3263 vvv = 222; | 3279 vvv = 222; |
| 3264 } | 3280 } |
| 3265 } | 3281 } |
| 3266 '''); | 3282 '''); |
| 3267 assertHasAssistAt( | 3283 await assertHasAssistAt( |
| 3268 'if (true)', | 3284 'if (true)', |
| 3269 DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL, | 3285 DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL, |
| 3270 ''' | 3286 ''' |
| 3271 main() { | 3287 main() { |
| 3272 int vvv; | 3288 int vvv; |
| 3273 vvv = true ? 111 : 222; | 3289 vvv = true ? 111 : 222; |
| 3274 } | 3290 } |
| 3275 '''); | 3291 '''); |
| 3276 } | 3292 } |
| 3277 | 3293 |
| 3278 void test_replaceIfElseWithConditional_OK_return() { | 3294 test_replaceIfElseWithConditional_OK_return() async { |
| 3279 resolveTestUnit(''' | 3295 resolveTestUnit(''' |
| 3280 main() { | 3296 main() { |
| 3281 if (true) { | 3297 if (true) { |
| 3282 return 111; | 3298 return 111; |
| 3283 } else { | 3299 } else { |
| 3284 return 222; | 3300 return 222; |
| 3285 } | 3301 } |
| 3286 } | 3302 } |
| 3287 '''); | 3303 '''); |
| 3288 assertHasAssistAt( | 3304 await assertHasAssistAt( |
| 3289 'if (true)', | 3305 'if (true)', |
| 3290 DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL, | 3306 DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL, |
| 3291 ''' | 3307 ''' |
| 3292 main() { | 3308 main() { |
| 3293 return true ? 111 : 222; | 3309 return true ? 111 : 222; |
| 3294 } | 3310 } |
| 3295 '''); | 3311 '''); |
| 3296 } | 3312 } |
| 3297 | 3313 |
| 3298 void test_replaceIfElseWithConditional_wrong_expressionVsReturn() { | 3314 test_replaceIfElseWithConditional_wrong_expressionVsReturn() async { |
| 3299 resolveTestUnit(''' | 3315 resolveTestUnit(''' |
| 3300 main() { | 3316 main() { |
| 3301 if (true) { | 3317 if (true) { |
| 3302 print(42); | 3318 print(42); |
| 3303 } else { | 3319 } else { |
| 3304 return; | 3320 return; |
| 3305 } | 3321 } |
| 3306 } | 3322 } |
| 3307 '''); | 3323 '''); |
| 3308 assertNoAssistAt('else', DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL); | 3324 await assertNoAssistAt( |
| 3325 'else', DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL); |
| 3309 } | 3326 } |
| 3310 | 3327 |
| 3311 void test_replaceIfElseWithConditional_wrong_notIfStatement() { | 3328 test_replaceIfElseWithConditional_wrong_notIfStatement() async { |
| 3312 resolveTestUnit(''' | 3329 resolveTestUnit(''' |
| 3313 main() { | 3330 main() { |
| 3314 print(0); | 3331 print(0); |
| 3315 } | 3332 } |
| 3316 '''); | 3333 '''); |
| 3317 assertNoAssistAt('print', DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL); | 3334 await assertNoAssistAt( |
| 3335 'print', DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL); |
| 3318 } | 3336 } |
| 3319 | 3337 |
| 3320 void test_replaceIfElseWithConditional_wrong_notSingleStatement() { | 3338 test_replaceIfElseWithConditional_wrong_notSingleStatement() async { |
| 3321 resolveTestUnit(''' | 3339 resolveTestUnit(''' |
| 3322 main() { | 3340 main() { |
| 3323 int vvv; | 3341 int vvv; |
| 3324 if (true) { | 3342 if (true) { |
| 3325 print(0); | 3343 print(0); |
| 3326 vvv = 111; | 3344 vvv = 111; |
| 3327 } else { | 3345 } else { |
| 3328 print(0); | 3346 print(0); |
| 3329 vvv = 222; | 3347 vvv = 222; |
| 3330 } | 3348 } |
| 3331 } | 3349 } |
| 3332 '''); | 3350 '''); |
| 3333 assertNoAssistAt( | 3351 await assertNoAssistAt( |
| 3334 'if (true)', DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL); | 3352 'if (true)', DartAssistKind.REPLACE_IF_ELSE_WITH_CONDITIONAL); |
| 3335 } | 3353 } |
| 3336 | 3354 |
| 3337 void test_splitAndCondition_OK_innerAndExpression() { | 3355 test_splitAndCondition_OK_innerAndExpression() async { |
| 3338 resolveTestUnit(''' | 3356 resolveTestUnit(''' |
| 3339 main() { | 3357 main() { |
| 3340 if (1 == 1 && 2 == 2 && 3 == 3) { | 3358 if (1 == 1 && 2 == 2 && 3 == 3) { |
| 3341 print(0); | 3359 print(0); |
| 3342 } | 3360 } |
| 3343 } | 3361 } |
| 3344 '''); | 3362 '''); |
| 3345 assertHasAssistAt( | 3363 await assertHasAssistAt( |
| 3346 '&& 2 == 2', | 3364 '&& 2 == 2', |
| 3347 DartAssistKind.SPLIT_AND_CONDITION, | 3365 DartAssistKind.SPLIT_AND_CONDITION, |
| 3348 ''' | 3366 ''' |
| 3349 main() { | 3367 main() { |
| 3350 if (1 == 1) { | 3368 if (1 == 1) { |
| 3351 if (2 == 2 && 3 == 3) { | 3369 if (2 == 2 && 3 == 3) { |
| 3352 print(0); | 3370 print(0); |
| 3353 } | 3371 } |
| 3354 } | 3372 } |
| 3355 } | 3373 } |
| 3356 '''); | 3374 '''); |
| 3357 } | 3375 } |
| 3358 | 3376 |
| 3359 void test_splitAndCondition_OK_thenBlock() { | 3377 test_splitAndCondition_OK_thenBlock() async { |
| 3360 resolveTestUnit(''' | 3378 resolveTestUnit(''' |
| 3361 main() { | 3379 main() { |
| 3362 if (true && false) { | 3380 if (true && false) { |
| 3363 print(0); | 3381 print(0); |
| 3364 if (3 == 3) { | 3382 if (3 == 3) { |
| 3365 print(1); | 3383 print(1); |
| 3366 } | 3384 } |
| 3367 } | 3385 } |
| 3368 } | 3386 } |
| 3369 '''); | 3387 '''); |
| 3370 assertHasAssistAt( | 3388 await assertHasAssistAt( |
| 3371 '&& false', | 3389 '&& false', |
| 3372 DartAssistKind.SPLIT_AND_CONDITION, | 3390 DartAssistKind.SPLIT_AND_CONDITION, |
| 3373 ''' | 3391 ''' |
| 3374 main() { | 3392 main() { |
| 3375 if (true) { | 3393 if (true) { |
| 3376 if (false) { | 3394 if (false) { |
| 3377 print(0); | 3395 print(0); |
| 3378 if (3 == 3) { | 3396 if (3 == 3) { |
| 3379 print(1); | 3397 print(1); |
| 3380 } | 3398 } |
| 3381 } | 3399 } |
| 3382 } | 3400 } |
| 3383 } | 3401 } |
| 3384 '''); | 3402 '''); |
| 3385 } | 3403 } |
| 3386 | 3404 |
| 3387 void test_splitAndCondition_OK_thenStatement() { | 3405 test_splitAndCondition_OK_thenStatement() async { |
| 3388 resolveTestUnit(''' | 3406 resolveTestUnit(''' |
| 3389 main() { | 3407 main() { |
| 3390 if (true && false) | 3408 if (true && false) |
| 3391 print(0); | 3409 print(0); |
| 3392 } | 3410 } |
| 3393 '''); | 3411 '''); |
| 3394 assertHasAssistAt( | 3412 await assertHasAssistAt( |
| 3395 '&& false', | 3413 '&& false', |
| 3396 DartAssistKind.SPLIT_AND_CONDITION, | 3414 DartAssistKind.SPLIT_AND_CONDITION, |
| 3397 ''' | 3415 ''' |
| 3398 main() { | 3416 main() { |
| 3399 if (true) | 3417 if (true) |
| 3400 if (false) | 3418 if (false) |
| 3401 print(0); | 3419 print(0); |
| 3402 } | 3420 } |
| 3403 '''); | 3421 '''); |
| 3404 } | 3422 } |
| 3405 | 3423 |
| 3406 void test_splitAndCondition_wrong() { | 3424 test_splitAndCondition_wrong() async { |
| 3407 resolveTestUnit(''' | 3425 resolveTestUnit(''' |
| 3408 main() { | 3426 main() { |
| 3409 if (1 == 1 && 2 == 2) { | 3427 if (1 == 1 && 2 == 2) { |
| 3410 print(0); | 3428 print(0); |
| 3411 } | 3429 } |
| 3412 print(3 == 3 && 4 == 4); | 3430 print(3 == 3 && 4 == 4); |
| 3413 } | 3431 } |
| 3414 '''); | 3432 '''); |
| 3415 // not binary expression | 3433 // not binary expression |
| 3416 assertNoAssistAt('main() {', DartAssistKind.SPLIT_AND_CONDITION); | 3434 await assertNoAssistAt('main() {', DartAssistKind.SPLIT_AND_CONDITION); |
| 3417 // selection is not empty and includes more than just operator | 3435 // selection is not empty and includes more than just operator |
| 3418 { | 3436 { |
| 3419 length = 5; | 3437 length = 5; |
| 3420 assertNoAssistAt('&& 2 == 2', DartAssistKind.SPLIT_AND_CONDITION); | 3438 await assertNoAssistAt('&& 2 == 2', DartAssistKind.SPLIT_AND_CONDITION); |
| 3421 } | 3439 } |
| 3422 } | 3440 } |
| 3423 | 3441 |
| 3424 void test_splitAndCondition_wrong_hasElse() { | 3442 test_splitAndCondition_wrong_hasElse() async { |
| 3425 resolveTestUnit(''' | 3443 resolveTestUnit(''' |
| 3426 main() { | 3444 main() { |
| 3427 if (1 == 1 && 2 == 2) { | 3445 if (1 == 1 && 2 == 2) { |
| 3428 print(1); | 3446 print(1); |
| 3429 } else { | 3447 } else { |
| 3430 print(2); | 3448 print(2); |
| 3431 } | 3449 } |
| 3432 } | 3450 } |
| 3433 '''); | 3451 '''); |
| 3434 assertNoAssistAt('&& 2', DartAssistKind.SPLIT_AND_CONDITION); | 3452 await assertNoAssistAt('&& 2', DartAssistKind.SPLIT_AND_CONDITION); |
| 3435 } | 3453 } |
| 3436 | 3454 |
| 3437 void test_splitAndCondition_wrong_notAnd() { | 3455 test_splitAndCondition_wrong_notAnd() async { |
| 3438 resolveTestUnit(''' | 3456 resolveTestUnit(''' |
| 3439 main() { | 3457 main() { |
| 3440 if (1 == 1 || 2 == 2) { | 3458 if (1 == 1 || 2 == 2) { |
| 3441 print(0); | 3459 print(0); |
| 3442 } | 3460 } |
| 3443 } | 3461 } |
| 3444 '''); | 3462 '''); |
| 3445 assertNoAssistAt('|| 2', DartAssistKind.SPLIT_AND_CONDITION); | 3463 await assertNoAssistAt('|| 2', DartAssistKind.SPLIT_AND_CONDITION); |
| 3446 } | 3464 } |
| 3447 | 3465 |
| 3448 void test_splitAndCondition_wrong_notPartOfIf() { | 3466 test_splitAndCondition_wrong_notPartOfIf() async { |
| 3449 resolveTestUnit(''' | 3467 resolveTestUnit(''' |
| 3450 main() { | 3468 main() { |
| 3451 print(1 == 1 && 2 == 2); | 3469 print(1 == 1 && 2 == 2); |
| 3452 } | 3470 } |
| 3453 '''); | 3471 '''); |
| 3454 assertNoAssistAt('&& 2', DartAssistKind.SPLIT_AND_CONDITION); | 3472 await assertNoAssistAt('&& 2', DartAssistKind.SPLIT_AND_CONDITION); |
| 3455 } | 3473 } |
| 3456 | 3474 |
| 3457 void test_splitAndCondition_wrong_notTopLevelAnd() { | 3475 test_splitAndCondition_wrong_notTopLevelAnd() async { |
| 3458 resolveTestUnit(''' | 3476 resolveTestUnit(''' |
| 3459 main() { | 3477 main() { |
| 3460 if (true || (1 == 1 && 2 == 2)) { | 3478 if (true || (1 == 1 && 2 == 2)) { |
| 3461 print(0); | 3479 print(0); |
| 3462 } | 3480 } |
| 3463 if (true && (3 == 3 && 4 == 4)) { | 3481 if (true && (3 == 3 && 4 == 4)) { |
| 3464 print(0); | 3482 print(0); |
| 3465 } | 3483 } |
| 3466 } | 3484 } |
| 3467 '''); | 3485 '''); |
| 3468 assertNoAssistAt('&& 2', DartAssistKind.SPLIT_AND_CONDITION); | 3486 await assertNoAssistAt('&& 2', DartAssistKind.SPLIT_AND_CONDITION); |
| 3469 assertNoAssistAt('&& 4', DartAssistKind.SPLIT_AND_CONDITION); | 3487 await assertNoAssistAt('&& 4', DartAssistKind.SPLIT_AND_CONDITION); |
| 3470 } | 3488 } |
| 3471 | 3489 |
| 3472 void test_splitVariableDeclaration_OK_onName() { | 3490 test_splitVariableDeclaration_OK_onName() async { |
| 3473 resolveTestUnit(''' | 3491 resolveTestUnit(''' |
| 3474 main() { | 3492 main() { |
| 3475 var v = 1; | 3493 var v = 1; |
| 3476 } | 3494 } |
| 3477 '''); | 3495 '''); |
| 3478 assertHasAssistAt( | 3496 await assertHasAssistAt( |
| 3479 'v =', | 3497 'v =', |
| 3480 DartAssistKind.SPLIT_VARIABLE_DECLARATION, | 3498 DartAssistKind.SPLIT_VARIABLE_DECLARATION, |
| 3481 ''' | 3499 ''' |
| 3482 main() { | 3500 main() { |
| 3483 var v; | 3501 var v; |
| 3484 v = 1; | 3502 v = 1; |
| 3485 } | 3503 } |
| 3486 '''); | 3504 '''); |
| 3487 } | 3505 } |
| 3488 | 3506 |
| 3489 void test_splitVariableDeclaration_OK_onType() { | 3507 test_splitVariableDeclaration_OK_onType() async { |
| 3490 resolveTestUnit(''' | 3508 resolveTestUnit(''' |
| 3491 main() { | 3509 main() { |
| 3492 int v = 1; | 3510 int v = 1; |
| 3493 } | 3511 } |
| 3494 '''); | 3512 '''); |
| 3495 assertHasAssistAt( | 3513 await assertHasAssistAt( |
| 3496 'int ', | 3514 'int ', |
| 3497 DartAssistKind.SPLIT_VARIABLE_DECLARATION, | 3515 DartAssistKind.SPLIT_VARIABLE_DECLARATION, |
| 3498 ''' | 3516 ''' |
| 3499 main() { | 3517 main() { |
| 3500 int v; | 3518 int v; |
| 3501 v = 1; | 3519 v = 1; |
| 3502 } | 3520 } |
| 3503 '''); | 3521 '''); |
| 3504 } | 3522 } |
| 3505 | 3523 |
| 3506 void test_splitVariableDeclaration_OK_onVar() { | 3524 test_splitVariableDeclaration_OK_onVar() async { |
| 3507 resolveTestUnit(''' | 3525 resolveTestUnit(''' |
| 3508 main() { | 3526 main() { |
| 3509 var v = 1; | 3527 var v = 1; |
| 3510 } | 3528 } |
| 3511 '''); | 3529 '''); |
| 3512 assertHasAssistAt( | 3530 await assertHasAssistAt( |
| 3513 'var ', | 3531 'var ', |
| 3514 DartAssistKind.SPLIT_VARIABLE_DECLARATION, | 3532 DartAssistKind.SPLIT_VARIABLE_DECLARATION, |
| 3515 ''' | 3533 ''' |
| 3516 main() { | 3534 main() { |
| 3517 var v; | 3535 var v; |
| 3518 v = 1; | 3536 v = 1; |
| 3519 } | 3537 } |
| 3520 '''); | 3538 '''); |
| 3521 } | 3539 } |
| 3522 | 3540 |
| 3523 void test_splitVariableDeclaration_wrong_notOneVariable() { | 3541 test_splitVariableDeclaration_wrong_notOneVariable() async { |
| 3524 resolveTestUnit(''' | 3542 resolveTestUnit(''' |
| 3525 main() { | 3543 main() { |
| 3526 var v = 1, v2; | 3544 var v = 1, v2; |
| 3527 } | 3545 } |
| 3528 '''); | 3546 '''); |
| 3529 assertNoAssistAt('v = 1', DartAssistKind.SPLIT_VARIABLE_DECLARATION); | 3547 await assertNoAssistAt('v = 1', DartAssistKind.SPLIT_VARIABLE_DECLARATION); |
| 3530 } | 3548 } |
| 3531 | 3549 |
| 3532 void test_surroundWith_block() { | 3550 test_surroundWith_block() async { |
| 3533 resolveTestUnit(''' | 3551 resolveTestUnit(''' |
| 3534 main() { | 3552 main() { |
| 3535 // start | 3553 // start |
| 3536 print(0); | 3554 print(0); |
| 3537 print(1); | 3555 print(1); |
| 3538 // end | 3556 // end |
| 3539 } | 3557 } |
| 3540 '''); | 3558 '''); |
| 3541 _setStartEndSelection(); | 3559 _setStartEndSelection(); |
| 3542 assertHasAssist( | 3560 await assertHasAssist( |
| 3543 DartAssistKind.SURROUND_WITH_BLOCK, | 3561 DartAssistKind.SURROUND_WITH_BLOCK, |
| 3544 ''' | 3562 ''' |
| 3545 main() { | 3563 main() { |
| 3546 // start | 3564 // start |
| 3547 { | 3565 { |
| 3548 print(0); | 3566 print(0); |
| 3549 print(1); | 3567 print(1); |
| 3550 } | 3568 } |
| 3551 // end | 3569 // end |
| 3552 } | 3570 } |
| 3553 '''); | 3571 '''); |
| 3554 } | 3572 } |
| 3555 | 3573 |
| 3556 void test_surroundWith_doWhile() { | 3574 test_surroundWith_doWhile() async { |
| 3557 resolveTestUnit(''' | 3575 resolveTestUnit(''' |
| 3558 main() { | 3576 main() { |
| 3559 // start | 3577 // start |
| 3560 print(0); | 3578 print(0); |
| 3561 print(1); | 3579 print(1); |
| 3562 // end | 3580 // end |
| 3563 } | 3581 } |
| 3564 '''); | 3582 '''); |
| 3565 _setStartEndSelection(); | 3583 _setStartEndSelection(); |
| 3566 assertHasAssist( | 3584 await assertHasAssist( |
| 3567 DartAssistKind.SURROUND_WITH_DO_WHILE, | 3585 DartAssistKind.SURROUND_WITH_DO_WHILE, |
| 3568 ''' | 3586 ''' |
| 3569 main() { | 3587 main() { |
| 3570 // start | 3588 // start |
| 3571 do { | 3589 do { |
| 3572 print(0); | 3590 print(0); |
| 3573 print(1); | 3591 print(1); |
| 3574 } while (condition); | 3592 } while (condition); |
| 3575 // end | 3593 // end |
| 3576 } | 3594 } |
| 3577 '''); | 3595 '''); |
| 3578 } | 3596 } |
| 3579 | 3597 |
| 3580 void test_surroundWith_for() { | 3598 test_surroundWith_for() async { |
| 3581 resolveTestUnit(''' | 3599 resolveTestUnit(''' |
| 3582 main() { | 3600 main() { |
| 3583 // start | 3601 // start |
| 3584 print(0); | 3602 print(0); |
| 3585 print(1); | 3603 print(1); |
| 3586 // end | 3604 // end |
| 3587 } | 3605 } |
| 3588 '''); | 3606 '''); |
| 3589 _setStartEndSelection(); | 3607 _setStartEndSelection(); |
| 3590 assertHasAssist( | 3608 await assertHasAssist( |
| 3591 DartAssistKind.SURROUND_WITH_FOR, | 3609 DartAssistKind.SURROUND_WITH_FOR, |
| 3592 ''' | 3610 ''' |
| 3593 main() { | 3611 main() { |
| 3594 // start | 3612 // start |
| 3595 for (var v = init; condition; increment) { | 3613 for (var v = init; condition; increment) { |
| 3596 print(0); | 3614 print(0); |
| 3597 print(1); | 3615 print(1); |
| 3598 } | 3616 } |
| 3599 // end | 3617 // end |
| 3600 } | 3618 } |
| 3601 '''); | 3619 '''); |
| 3602 } | 3620 } |
| 3603 | 3621 |
| 3604 void test_surroundWith_forIn() { | 3622 test_surroundWith_forIn() async { |
| 3605 resolveTestUnit(''' | 3623 resolveTestUnit(''' |
| 3606 main() { | 3624 main() { |
| 3607 // start | 3625 // start |
| 3608 print(0); | 3626 print(0); |
| 3609 print(1); | 3627 print(1); |
| 3610 // end | 3628 // end |
| 3611 } | 3629 } |
| 3612 '''); | 3630 '''); |
| 3613 _setStartEndSelection(); | 3631 _setStartEndSelection(); |
| 3614 assertHasAssist( | 3632 await assertHasAssist( |
| 3615 DartAssistKind.SURROUND_WITH_FOR_IN, | 3633 DartAssistKind.SURROUND_WITH_FOR_IN, |
| 3616 ''' | 3634 ''' |
| 3617 main() { | 3635 main() { |
| 3618 // start | 3636 // start |
| 3619 for (var item in iterable) { | 3637 for (var item in iterable) { |
| 3620 print(0); | 3638 print(0); |
| 3621 print(1); | 3639 print(1); |
| 3622 } | 3640 } |
| 3623 // end | 3641 // end |
| 3624 } | 3642 } |
| 3625 '''); | 3643 '''); |
| 3626 } | 3644 } |
| 3627 | 3645 |
| 3628 void test_surroundWith_if() { | 3646 test_surroundWith_if() async { |
| 3629 resolveTestUnit(''' | 3647 resolveTestUnit(''' |
| 3630 main() { | 3648 main() { |
| 3631 // start | 3649 // start |
| 3632 print(0); | 3650 print(0); |
| 3633 print(1); | 3651 print(1); |
| 3634 // end | 3652 // end |
| 3635 } | 3653 } |
| 3636 '''); | 3654 '''); |
| 3637 _setStartEndSelection(); | 3655 _setStartEndSelection(); |
| 3638 assertHasAssist( | 3656 await assertHasAssist( |
| 3639 DartAssistKind.SURROUND_WITH_IF, | 3657 DartAssistKind.SURROUND_WITH_IF, |
| 3640 ''' | 3658 ''' |
| 3641 main() { | 3659 main() { |
| 3642 // start | 3660 // start |
| 3643 if (condition) { | 3661 if (condition) { |
| 3644 print(0); | 3662 print(0); |
| 3645 print(1); | 3663 print(1); |
| 3646 } | 3664 } |
| 3647 // end | 3665 // end |
| 3648 } | 3666 } |
| 3649 '''); | 3667 '''); |
| 3650 } | 3668 } |
| 3651 | 3669 |
| 3652 void test_surroundWith_tryCatch() { | 3670 test_surroundWith_tryCatch() async { |
| 3653 resolveTestUnit(''' | 3671 resolveTestUnit(''' |
| 3654 main() { | 3672 main() { |
| 3655 // start | 3673 // start |
| 3656 print(0); | 3674 print(0); |
| 3657 print(1); | 3675 print(1); |
| 3658 // end | 3676 // end |
| 3659 } | 3677 } |
| 3660 '''); | 3678 '''); |
| 3661 _setStartEndSelection(); | 3679 _setStartEndSelection(); |
| 3662 assertHasAssist( | 3680 await assertHasAssist( |
| 3663 DartAssistKind.SURROUND_WITH_TRY_CATCH, | 3681 DartAssistKind.SURROUND_WITH_TRY_CATCH, |
| 3664 ''' | 3682 ''' |
| 3665 main() { | 3683 main() { |
| 3666 // start | 3684 // start |
| 3667 try { | 3685 try { |
| 3668 print(0); | 3686 print(0); |
| 3669 print(1); | 3687 print(1); |
| 3670 } on Exception catch (e) { | 3688 } on Exception catch (e) { |
| 3671 // TODO | 3689 // TODO |
| 3672 } | 3690 } |
| 3673 // end | 3691 // end |
| 3674 } | 3692 } |
| 3675 '''); | 3693 '''); |
| 3676 } | 3694 } |
| 3677 | 3695 |
| 3678 void test_surroundWith_tryFinally() { | 3696 test_surroundWith_tryFinally() async { |
| 3679 resolveTestUnit(''' | 3697 resolveTestUnit(''' |
| 3680 main() { | 3698 main() { |
| 3681 // start | 3699 // start |
| 3682 print(0); | 3700 print(0); |
| 3683 print(1); | 3701 print(1); |
| 3684 // end | 3702 // end |
| 3685 } | 3703 } |
| 3686 '''); | 3704 '''); |
| 3687 _setStartEndSelection(); | 3705 _setStartEndSelection(); |
| 3688 assertHasAssist( | 3706 await assertHasAssist( |
| 3689 DartAssistKind.SURROUND_WITH_TRY_FINALLY, | 3707 DartAssistKind.SURROUND_WITH_TRY_FINALLY, |
| 3690 ''' | 3708 ''' |
| 3691 main() { | 3709 main() { |
| 3692 // start | 3710 // start |
| 3693 try { | 3711 try { |
| 3694 print(0); | 3712 print(0); |
| 3695 print(1); | 3713 print(1); |
| 3696 } finally { | 3714 } finally { |
| 3697 // TODO | 3715 // TODO |
| 3698 } | 3716 } |
| 3699 // end | 3717 // end |
| 3700 } | 3718 } |
| 3701 '''); | 3719 '''); |
| 3702 } | 3720 } |
| 3703 | 3721 |
| 3704 void test_surroundWith_while() { | 3722 test_surroundWith_while() async { |
| 3705 resolveTestUnit(''' | 3723 resolveTestUnit(''' |
| 3706 main() { | 3724 main() { |
| 3707 // start | 3725 // start |
| 3708 print(0); | 3726 print(0); |
| 3709 print(1); | 3727 print(1); |
| 3710 // end | 3728 // end |
| 3711 } | 3729 } |
| 3712 '''); | 3730 '''); |
| 3713 _setStartEndSelection(); | 3731 _setStartEndSelection(); |
| 3714 assertHasAssist( | 3732 await assertHasAssist( |
| 3715 DartAssistKind.SURROUND_WITH_WHILE, | 3733 DartAssistKind.SURROUND_WITH_WHILE, |
| 3716 ''' | 3734 ''' |
| 3717 main() { | 3735 main() { |
| 3718 // start | 3736 // start |
| 3719 while (condition) { | 3737 while (condition) { |
| 3720 print(0); | 3738 print(0); |
| 3721 print(1); | 3739 print(1); |
| 3722 } | 3740 } |
| 3723 // end | 3741 // end |
| 3724 } | 3742 } |
| 3725 '''); | 3743 '''); |
| 3726 } | 3744 } |
| 3727 | 3745 |
| 3728 /** | 3746 /** |
| 3729 * Computes assists and verifies that there is an assist of the given kind. | 3747 * Computes assists and verifies that there is an assist of the given kind. |
| 3730 */ | 3748 */ |
| 3731 Assist _assertHasAssist(AssistKind kind) { | 3749 Future<Assist> _assertHasAssist(AssistKind kind) async { |
| 3732 List<Assist> assists = computeAssists( | 3750 List<Assist> assists = await computeAssists( |
| 3733 plugin, context, testUnit.element.source, offset, length); | 3751 plugin, context, testUnit.element.source, offset, length); |
| 3734 for (Assist assist in assists) { | 3752 for (Assist assist in assists) { |
| 3735 if (assist.kind == kind) { | 3753 if (assist.kind == kind) { |
| 3736 return assist; | 3754 return assist; |
| 3737 } | 3755 } |
| 3738 } | 3756 } |
| 3739 throw fail('Expected to find assist $kind in\n${assists.join('\n')}'); | 3757 throw fail('Expected to find assist $kind in\n${assists.join('\n')}'); |
| 3740 } | 3758 } |
| 3741 | 3759 |
| 3742 void _assertLinkedGroup(LinkedEditGroup group, List<String> expectedStrings, | 3760 void _assertLinkedGroup(LinkedEditGroup group, List<String> expectedStrings, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 3755 positions.add(new Position(testFile, offset)); | 3773 positions.add(new Position(testFile, offset)); |
| 3756 } | 3774 } |
| 3757 return positions; | 3775 return positions; |
| 3758 } | 3776 } |
| 3759 | 3777 |
| 3760 void _setStartEndSelection() { | 3778 void _setStartEndSelection() { |
| 3761 offset = findOffset('// start\n') + '// start\n'.length; | 3779 offset = findOffset('// start\n') + '// start\n'.length; |
| 3762 length = findOffset('// end') - offset; | 3780 length = findOffset('// end') - offset; |
| 3763 } | 3781 } |
| 3764 } | 3782 } |
| OLD | NEW |