Skip to content

Commit cd24493

Browse files
FMorschelCommit Queue
authored and
Commit Queue
committed
[DAS] Fixes Add required parameter quick-fix
Bug: #53707 Change-Id: I461b2a74ae4d8a9b1794b1e47574783f31d29a67 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/422440 Reviewed-by: Samuel Rawlins <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]> Auto-Submit: Felipe Morschel <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent b0f1748 commit cd24493

File tree

2 files changed

+32
-8
lines changed

2 files changed

+32
-8
lines changed

pkg/analysis_server/lib/src/services/correction/dart/add_super_parameter.dart

+9-8
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,10 @@ class AddSuperParameter extends ResolvedCorrectionProducer {
7474
i >= superPositionalParameters.length ||
7575
parameter.name.lexeme != superPositionalParameters[i].name3) {
7676
arePositionalOrdered = false;
77-
break;
7877
}
7978
lastPositionalParameter = parameter;
79+
} else {
80+
break;
8081
}
8182
}
8283

@@ -102,13 +103,11 @@ class AddSuperParameter extends ResolvedCorrectionProducer {
102103
needsInitialComma: false,
103104
);
104105

105-
if (missingNamedParameters.isNotEmpty) {
106-
_writeNamed(
107-
builder,
108-
missingNamedParameters,
109-
needsInitialComma: missingPositionalParameters.isNotEmpty,
110-
);
111-
}
106+
_writeNamed(
107+
builder,
108+
missingNamedParameters,
109+
needsInitialComma: missingPositionalParameters.isNotEmpty,
110+
);
112111
});
113112
});
114113
} else {
@@ -171,6 +170,7 @@ class AddSuperParameter extends ResolvedCorrectionProducer {
171170
FormalParameter? lastNamedParameter,
172171
required bool needsInitialComma,
173172
}) {
173+
if (parameters.isEmpty) return;
174174
var firstParameter = true;
175175
void writeComma() {
176176
if (firstParameter) {
@@ -214,6 +214,7 @@ class AddSuperParameter extends ResolvedCorrectionProducer {
214214
List<FormalParameterElement> parameters, {
215215
required bool needsInitialComma,
216216
}) {
217+
if (parameters.isEmpty) return;
217218
var firstParameter = true;
218219
void writeComma() {
219220
if (firstParameter && !needsInitialComma) {

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

+23
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,29 @@ class B extends A {
4242

4343
Future<void> test_named_first_existingPositional() async {
4444
await resolveTestCode('''
45+
class A {
46+
A({required int a, required int b});
47+
}
48+
class B extends A {
49+
B(this.i);
50+
51+
final int i;
52+
}
53+
''');
54+
await assertHasFix('''
55+
class A {
56+
A({required int a, required int b});
57+
}
58+
class B extends A {
59+
B(this.i, {required super.a, required super.b});
60+
61+
final int i;
62+
}
63+
''');
64+
}
65+
66+
Future<void> test_named_first_existingPositional2() async {
67+
await resolveTestCode('''
4568
class A {
4669
A(int i, {required int a, required int b});
4770
}

0 commit comments

Comments
 (0)