@@ -174,13 +174,19 @@ class CreateConstructorForFinalFields extends ResolvedCorrectionProducer {
174
174
),
175
175
);
176
176
builder.write (' key' );
177
+ var fieldsForInitializers = < _Field > [];
177
178
178
179
_writeFlutterParameters (
179
180
builder: builder,
180
181
variableLists: fixContext.variableLists,
182
+ fieldsForInitializers: fieldsForInitializers,
181
183
);
182
184
183
- builder.write ('}) : super(key: key);' );
185
+ builder.write ('}) : ' );
186
+ if (fieldsForInitializers.isNotEmpty) {
187
+ builder.write ('${_getInitalizersString (fieldsForInitializers )}, ' );
188
+ }
189
+ builder.write ('super(key: key);' );
184
190
});
185
191
});
186
192
}
@@ -198,16 +204,29 @@ class CreateConstructorForFinalFields extends ResolvedCorrectionProducer {
198
204
builder.write ('({' );
199
205
builder.write ('super.key' );
200
206
207
+ var fieldsForInitializers = < _Field > [];
201
208
_writeFlutterParameters (
202
209
builder: builder,
203
210
variableLists: fixContext.variableLists,
211
+ fieldsForInitializers: fieldsForInitializers,
204
212
);
205
213
206
- builder.write ('});' );
214
+ builder.write ('})' );
215
+ if (fieldsForInitializers.isNotEmpty) {
216
+ builder.write (' : ${_getInitalizersString (fieldsForInitializers )}' );
217
+ }
218
+ builder.write (';' );
207
219
});
208
220
});
209
221
}
210
222
223
+ String _getInitalizersString (List <_Field > fieldsForInitializers) =>
224
+ fieldsForInitializers
225
+ .map ((field) {
226
+ return '${field .fieldName } = ${field .namedFormalParameterName }' ;
227
+ })
228
+ .join (', ' );
229
+
211
230
Future <void > _notFlutterNamed ({
212
231
required _FixContext fixContext,
213
232
required NamedCompilationUnitMember containerDeclaration,
@@ -259,12 +278,7 @@ class CreateConstructorForFinalFields extends ResolvedCorrectionProducer {
259
278
builder.write ('})' );
260
279
261
280
if (fieldsForInitializers.isNotEmpty) {
262
- var code = fieldsForInitializers
263
- .map ((field) {
264
- return '${field .fieldName } = ${field .namedFormalParameterName }' ;
265
- })
266
- .join (', ' );
267
- builder.write (' : $code ' );
281
+ builder.write (' : ${_getInitalizersString (fieldsForInitializers )}' );
268
282
}
269
283
270
284
builder.write (';' );
@@ -332,6 +346,7 @@ class CreateConstructorForFinalFields extends ResolvedCorrectionProducer {
332
346
void _writeFlutterParameters ({
333
347
required DartEditBuilder builder,
334
348
required Iterable <VariableDeclarationList > variableLists,
349
+ required List <_Field > fieldsForInitializers,
335
350
}) {
336
351
var fields = _fieldsToWrite (variableLists);
337
352
if (fields == null ) {
@@ -345,8 +360,15 @@ class CreateConstructorForFinalFields extends ResolvedCorrectionProducer {
345
360
if (field.hasNonNullableType) {
346
361
builder.write ('required ' );
347
362
}
348
- builder.write ('this.' );
349
- builder.write (field.fieldName);
363
+ if (field.namedFormalParameterName == field.fieldName) {
364
+ builder.write ('this.' );
365
+ builder.write (field.fieldName);
366
+ } else {
367
+ builder.write (utils.getNodeText (field.typeAnnotation));
368
+ builder.write (' ' );
369
+ builder.write (field.namedFormalParameterName);
370
+ fieldsForInitializers.add (field);
371
+ }
350
372
}
351
373
}
352
374
}
0 commit comments