diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart index fa46209f1c5..cbe2eedf2da 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_into_block_body.dart @@ -82,10 +82,12 @@ class ConvertIntoBlockBody extends ResolvedCorrectionProducer { if (body == null) { return; } - var bodyRange = body.sourceRange; - await builder.addDartFileEdit(file, (builder) { - builder.addSimpleReplacement(bodyRange, ' {}'); - }); + if (body is EmptyClassBody || body is EmptyEnumBody) { + var bodyRange = body.sourceRange; + await builder.addDartFileEdit(file, (builder) { + builder.addSimpleReplacement(bodyRange, ' {}'); + }); + } } Future _computeMissingFunctionBody( diff --git a/pkg/analysis_server/test/src/services/correction/assist/convert_into_block_body_test.dart b/pkg/analysis_server/test/src/services/correction/assist/convert_into_block_body_test.dart index df1978dd665..07247c62882 100644 --- a/pkg/analysis_server/test/src/services/correction/assist/convert_into_block_body_test.dart +++ b/pkg/analysis_server/test/src/services/correction/assist/convert_into_block_body_test.dart @@ -80,6 +80,13 @@ class C {} '''); } + Future test_container_class_block() async { + await resolveTestCode(''' +class C ^{} +'''); + await assertNoAssist(); + } + Future test_container_enum() async { await resolveTestCode( ''' @@ -92,6 +99,16 @@ enum E {} '''); } + Future test_container_enum_block() async { + await resolveTestCode( + ''' +enum E ^{} +''', + ignore: [diag.enumWithoutConstants], + ); + await assertNoAssist(); + } + Future test_container_extension() async { await resolveTestCode(''' extension E on int^; @@ -101,6 +118,13 @@ extension E on int {} '''); } + Future test_container_extension_block() async { + await resolveTestCode(''' +extension E on int ^{} +'''); + await assertNoAssist(); + } + Future test_container_extensionType() async { await resolveTestCode(''' extension type ^E(int i); @@ -110,6 +134,13 @@ extension type E(int i) {} '''); } + Future test_container_extensionType_block() async { + await resolveTestCode(''' +extension type E(int i) ^{} +'''); + await assertNoAssist(); + } + Future test_container_mixin() async { await resolveTestCode(''' mixin M^; @@ -119,6 +150,13 @@ mixin M {} '''); } + Future test_container_mixin_block() async { + await resolveTestCode(''' +mixin M ^{} +'''); + await assertNoAssist(); + } + Future test_inExpression() async { await resolveTestCode(''' void f() => ^123;