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

Side by Side Diff: pkg/analysis_server/test/services/correction/assist_test.dart

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

Powered by Google App Engine
This is Rietveld 408576698