Skip to content

Commit 69d8148

Browse files
FMorschelCommit Queue
authored andcommitted
[DAS] Fixes create member fixes to work with part files
Fixes: #60472 Change-Id: Id8b1ca400fb6cee325bc976d1575c333d4bfced0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/420460 Auto-Submit: Felipe Morschel <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent d3a0c15 commit 69d8148

File tree

5 files changed

+495
-1
lines changed

5 files changed

+495
-1
lines changed

pkg/analysis_server/test/src/services/correction/fix/create_getter_test.dart

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,82 @@ class CreateGetterMixinTest extends FixProcessorTest {
2020
@override
2121
FixKind get kind => DartFixKind.CREATE_GETTER;
2222

23+
Future<void> test_main_part() async {
24+
var partPath = join(testPackageLibPath, 'part.dart');
25+
newFile(partPath, '''
26+
part of 'test.dart';
27+
28+
mixin M {
29+
}
30+
''');
31+
await resolveTestCode('''
32+
part 'part.dart';
33+
34+
void foo(M a) {
35+
int? _ = a.myUndefinedGetter;
36+
}
37+
''');
38+
await assertHasFix('''
39+
part of 'test.dart';
40+
41+
mixin M {
42+
int? get myUndefinedGetter => null;
43+
}
44+
''', target: partPath);
45+
}
46+
47+
Future<void> test_part_main() async {
48+
var mainPath = join(testPackageLibPath, 'main.dart');
49+
newFile(mainPath, '''
50+
part 'test.dart';
51+
52+
mixin M {
53+
}
54+
''');
55+
await resolveTestCode('''
56+
part of 'main.dart';
57+
58+
void foo(M a) {
59+
int? _ = a.myUndefinedGetter;
60+
}
61+
''');
62+
await assertHasFix('''
63+
part 'test.dart';
64+
65+
mixin M {
66+
int? get myUndefinedGetter => null;
67+
}
68+
''', target: mainPath);
69+
}
70+
71+
Future<void> test_part_sibling() async {
72+
var part1Path = join(testPackageLibPath, 'part1.dart');
73+
newFile(part1Path, '''
74+
part of 'main.dart';
75+
76+
mixin M {
77+
}
78+
''');
79+
newFile(join(testPackageLibPath, 'main.dart'), '''
80+
part 'part1.dart';
81+
part 'test.dart';
82+
''');
83+
await resolveTestCode('''
84+
part of 'main.dart';
85+
86+
void foo(M a) {
87+
int? _ = a.myUndefinedGetter;
88+
}
89+
''');
90+
await assertHasFix('''
91+
part of 'main.dart';
92+
93+
mixin M {
94+
int? get myUndefinedGetter => null;
95+
}
96+
''', target: part1Path);
97+
}
98+
2399
Future<void> test_qualified_instance() async {
24100
await resolveTestCode('''
25101
mixin M {
@@ -193,6 +269,30 @@ void f(A a) {
193269
''');
194270
}
195271

272+
Future<void> test_main_part() async {
273+
var partPath = join(testPackageLibPath, 'part.dart');
274+
newFile(partPath, '''
275+
part of 'test.dart';
276+
277+
class A {
278+
}
279+
''');
280+
await resolveTestCode('''
281+
part 'part.dart';
282+
283+
void foo(A a) {
284+
int? _ = a.myUndefinedGetter;
285+
}
286+
''');
287+
await assertHasFix('''
288+
part of 'test.dart';
289+
290+
class A {
291+
int? get myUndefinedGetter => null;
292+
}
293+
''', target: partPath);
294+
}
295+
196296
Future<void> test_multiLevel() async {
197297
await resolveTestCode('''
198298
class A {
@@ -339,6 +439,58 @@ void f(String s) {
339439
''');
340440
}
341441

442+
Future<void> test_part_main() async {
443+
var mainPath = join(testPackageLibPath, 'main.dart');
444+
newFile(mainPath, '''
445+
part 'test.dart';
446+
447+
class A {
448+
}
449+
''');
450+
await resolveTestCode('''
451+
part of 'main.dart';
452+
453+
void foo(A a) {
454+
int? _ = a.myUndefinedGetter;
455+
}
456+
''');
457+
await assertHasFix('''
458+
part 'test.dart';
459+
460+
class A {
461+
int? get myUndefinedGetter => null;
462+
}
463+
''', target: mainPath);
464+
}
465+
466+
Future<void> test_part_sibling() async {
467+
var part1Path = join(testPackageLibPath, 'part1.dart');
468+
newFile(part1Path, '''
469+
part of 'main.dart';
470+
471+
class A {
472+
}
473+
''');
474+
newFile(join(testPackageLibPath, 'main.dart'), '''
475+
part 'part1.dart';
476+
part 'test.dart';
477+
''');
478+
await resolveTestCode('''
479+
part of 'main.dart';
480+
481+
void foo(A a) {
482+
int? _ = a.myUndefinedGetter;
483+
}
484+
''');
485+
await assertHasFix('''
486+
part of 'main.dart';
487+
488+
class A {
489+
int? get myUndefinedGetter => null;
490+
}
491+
''', target: part1Path);
492+
}
493+
342494
Future<void> test_qualified_instance() async {
343495
await resolveTestCode('''
344496
class A {

pkg/analysis_server/test/src/services/correction/fix/create_method_test.dart

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,82 @@ mixin M {
200200
useFunction(int g(double a, String b)) {}
201201
''');
202202
}
203+
204+
Future<void> test_main_part() async {
205+
var partPath = join(testPackageLibPath, 'part.dart');
206+
newFile(partPath, '''
207+
part of 'test.dart';
208+
209+
mixin M {
210+
}
211+
''');
212+
await resolveTestCode('''
213+
part 'part.dart';
214+
215+
void foo(M a) {
216+
a.myUndefinedMethod();
217+
}
218+
''');
219+
await assertHasFix('''
220+
part of 'test.dart';
221+
222+
mixin M {
223+
void myUndefinedMethod() {}
224+
}
225+
''', target: partPath);
226+
}
227+
228+
Future<void> test_part_main() async {
229+
var mainPath = join(testPackageLibPath, 'main.dart');
230+
newFile(mainPath, '''
231+
part 'test.dart';
232+
233+
mixin M {
234+
}
235+
''');
236+
await resolveTestCode('''
237+
part of 'main.dart';
238+
239+
void foo(M a) {
240+
a.myUndefinedMethod();
241+
}
242+
''');
243+
await assertHasFix('''
244+
part 'test.dart';
245+
246+
mixin M {
247+
void myUndefinedMethod() {}
248+
}
249+
''', target: mainPath);
250+
}
251+
252+
Future<void> test_part_sibling() async {
253+
var part1Path = join(testPackageLibPath, 'part1.dart');
254+
newFile(part1Path, '''
255+
part of 'main.dart';
256+
257+
mixin M {
258+
}
259+
''');
260+
newFile(join(testPackageLibPath, 'main.dart'), '''
261+
part 'part1.dart';
262+
part 'test.dart';
263+
''');
264+
await resolveTestCode('''
265+
part of 'main.dart';
266+
267+
void foo(M a) {
268+
a.myUndefinedMethod();
269+
}
270+
''');
271+
await assertHasFix('''
272+
part of 'main.dart';
273+
274+
mixin M {
275+
void myUndefinedMethod() {}
276+
}
277+
''', target: part1Path);
278+
}
203279
}
204280

205281
@reflectiveTest
@@ -1176,6 +1252,30 @@ extension E on String {
11761252
''');
11771253
}
11781254

1255+
Future<void> test_main_part() async {
1256+
var partPath = join(testPackageLibPath, 'part.dart');
1257+
newFile(partPath, '''
1258+
part of 'test.dart';
1259+
1260+
class A {
1261+
}
1262+
''');
1263+
await resolveTestCode('''
1264+
part 'part.dart';
1265+
1266+
void foo(A a) {
1267+
a.myUndefinedMethod();
1268+
}
1269+
''');
1270+
await assertHasFix('''
1271+
part of 'test.dart';
1272+
1273+
class A {
1274+
void myUndefinedMethod() {}
1275+
}
1276+
''', target: partPath);
1277+
}
1278+
11791279
Future<void> test_override() async {
11801280
await resolveTestCode('''
11811281
extension E on String {}
@@ -1253,6 +1353,58 @@ class E {}
12531353
''', target: '$testPackageLibPath/test2.dart');
12541354
}
12551355

1356+
Future<void> test_part_main() async {
1357+
var mainPath = join(testPackageLibPath, 'main.dart');
1358+
newFile(mainPath, '''
1359+
part 'test.dart';
1360+
1361+
class A {
1362+
}
1363+
''');
1364+
await resolveTestCode('''
1365+
part of 'main.dart';
1366+
1367+
void foo(A a) {
1368+
a.myUndefinedMethod();
1369+
}
1370+
''');
1371+
await assertHasFix('''
1372+
part 'test.dart';
1373+
1374+
class A {
1375+
void myUndefinedMethod() {}
1376+
}
1377+
''', target: mainPath);
1378+
}
1379+
1380+
Future<void> test_part_sibling() async {
1381+
var part1Path = join(testPackageLibPath, 'part1.dart');
1382+
newFile(part1Path, '''
1383+
part of 'main.dart';
1384+
1385+
class A {
1386+
}
1387+
''');
1388+
newFile(join(testPackageLibPath, 'main.dart'), '''
1389+
part 'part1.dart';
1390+
part 'test.dart';
1391+
''');
1392+
await resolveTestCode('''
1393+
part of 'main.dart';
1394+
1395+
void foo(A a) {
1396+
a.myUndefinedMethod();
1397+
}
1398+
''');
1399+
await assertHasFix('''
1400+
part of 'main.dart';
1401+
1402+
class A {
1403+
void myUndefinedMethod() {}
1404+
}
1405+
''', target: part1Path);
1406+
}
1407+
12561408
Future<void> test_returnType_closure_expression() async {
12571409
await resolveTestCode('''
12581410
class A {

0 commit comments

Comments
 (0)