diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_initializing_formal.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_initializing_formal.dart index 3dd3b253d08..32ea50026a8 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_initializing_formal.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_initializing_formal.dart @@ -181,7 +181,12 @@ class ConvertToInitializingFormal extends ResolvedCorrectionProducer { var functionBody = block.parent; if (statements.length == 1 && functionBody is BlockFunctionBody) { builder.addSimpleReplacement( - range.endEnd(constructor.parameters, functionBody), + range.endEnd( + constructor.initializers.isNotEmpty + ? constructor.initializers.last + : constructor.parameters, + functionBody, + ), ';', ); } else { diff --git a/pkg/analysis_server/test/src/services/correction/fix/convert_to_initializing_formal_test.dart b/pkg/analysis_server/test/src/services/correction/fix/convert_to_initializing_formal_test.dart index 743e9811ee4..18d383054eb 100644 --- a/pkg/analysis_server/test/src/services/correction/fix/convert_to_initializing_formal_test.dart +++ b/pkg/analysis_server/test/src/services/correction/fix/convert_to_initializing_formal_test.dart @@ -144,6 +144,27 @@ class C { '''); } + Future test_assignment_otherInitializer() async { + await resolveTestCode(''' +class C { + int? x; + int? y; + + C({int? x}) : y = 1 { + this.x = x; + } +} +'''); + await assertHasFix(''' +class C { + int? x; + int? y; + + C({this.x}) : y = 1; +} +'''); + } + Future test_assignment_positional_differentType() async { await resolveTestCode(''' class C {