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

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

Issue 2749373002: Correct target of ADD_MISSING_REQUIRED_ARGUMENT fixes (flutter-intellij#788) (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/analysis_server/lib/src/services/correction/fix_internal.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.fix; 5 library test.services.correction.fix;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart'; 9 import 'package:analysis_server/plugin/edit/fix/fix_core.dart';
10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart'; 10 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart';
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 main() { 70 main() {
71 bool b = true; 71 bool b = true;
72 $lineWithTest 72 $lineWithTest
73 } 73 }
74 74
75 bool test() { 75 bool test() {
76 } 76 }
77 '''); 77 ''');
78 } 78 }
79 79
80 assertHasFix(FixKind kind, String expected) async { 80 assertHasFix(FixKind kind, String expected, {String target}) async {
81 AnalysisError error = await _findErrorToFix(); 81 AnalysisError error = await _findErrorToFix();
82 fix = await _assertHasFix(kind, error); 82 fix = await _assertHasFix(kind, error);
83 change = fix.change; 83 change = fix.change;
84
84 // apply to "file" 85 // apply to "file"
85 List<SourceFileEdit> fileEdits = change.edits; 86 List<SourceFileEdit> fileEdits = change.edits;
86 expect(fileEdits, hasLength(1)); 87 expect(fileEdits, hasLength(1));
88
89 if (target != null) {
90 expect(target, fileEdits.first.file);
91 }
92
87 resultCode = SourceEdit.applySequence(testCode, change.edits[0].edits); 93 resultCode = SourceEdit.applySequence(testCode, change.edits[0].edits);
88 // verify 94 // verify
89 expect(resultCode, expected); 95 expect(resultCode, expected);
90 } 96 }
91 97
92 assertNoFix(FixKind kind) async { 98 assertNoFix(FixKind kind) async {
93 AnalysisError error = await _findErrorToFix(); 99 AnalysisError error = await _findErrorToFix();
94 List<Fix> fixes = await _computeFixes(error); 100 List<Fix> fixes = await _computeFixes(error);
95 for (Fix fix in fixes) { 101 for (Fix fix in fixes) {
96 if (fix.kind == kind) { 102 if (fix.kind == kind) {
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 test(int i) {} 428 test(int i) {}
423 main() { 429 main() {
424 test(1); 430 test(1);
425 } 431 }
426 } 432 }
427 '''); 433 ''');
428 } 434 }
429 435
430 test_addMissingRequiredArg_cons_single() async { 436 test_addMissingRequiredArg_cons_single() async {
431 _addMetaPackageSource(); 437 _addMetaPackageSource();
432 438 addSource(
433 await resolveTestUnit(''' 439 '/libA.dart',
440 r'''
441 library libA;
434 import 'package:meta/meta.dart'; 442 import 'package:meta/meta.dart';
435 443
436 class A { 444 class A {
437 A({@required int a}) {} 445 A({@required int a}) {}
438 } 446 }
447 ''');
448
449 await resolveTestUnit('''
450 import 'libA.dart';
451
439 main() { 452 main() {
440 A a = new A(); 453 A a = new A();
441 } 454 }
442 '''); 455 ''');
443 await assertHasFix( 456 await assertHasFix(
444 DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT, 457 DartFixKind.ADD_MISSING_REQUIRED_ARGUMENT,
445 ''' 458 '''
446 import 'package:meta/meta.dart'; 459 import 'libA.dart';
447 460
448 class A {
449 A({@required int a}) {}
450 }
451 main() { 461 main() {
452 A a = new A(a: null); 462 A a = new A(a: null);
453 } 463 }
454 '''); 464 ''',
465 target: '/test.dart');
455 } 466 }
456 467
457 test_addMissingRequiredArg_multiple() async { 468 test_addMissingRequiredArg_multiple() async {
458 _addMetaPackageSource(); 469 _addMetaPackageSource();
459 470
460 await resolveTestUnit(''' 471 await resolveTestUnit('''
461 import 'package:meta/meta.dart'; 472 import 'package:meta/meta.dart';
462 473
463 test({@required int a, @required int bcd}) {} 474 test({@required int a, @required int bcd}) {}
464 main() { 475 main() {
(...skipping 5366 matching lines...) Expand 10 before | Expand all | Expand 10 after
5831 5842
5832 @override 5843 @override
5833 final CompilationUnit unit; 5844 final CompilationUnit unit;
5834 5845
5835 @override 5846 @override
5836 final AnalysisError error; 5847 final AnalysisError error;
5837 5848
5838 _DartFixContextImpl(this.resourceProvider, this.getTopLevelDeclarations, 5849 _DartFixContextImpl(this.resourceProvider, this.getTopLevelDeclarations,
5839 this.analysisContext, this.astProvider, this.unit, this.error); 5850 this.analysisContext, this.astProvider, this.unit, this.error);
5840 } 5851 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/services/correction/fix_internal.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698