commit | 454e633461138516ea052fe869a793c64cf2e490 | [log] [tgz] |
---|---|---|
author | Brian Wilkerson <brianwilkerson@google.com> | Fri May 07 04:53:44 2021 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Fri May 07 04:53:44 2021 +0000 |
tree | 3b55ecc9ceb2d5f26b78107cd7ee8437f136c944 | |
parent | c65449b9fa1f29bbdf7df0e476ac2288a0de68a9 [diff] |
Fix a bug in the convert_into_expression_body fix Change-Id: Ieed0452eb1ec89b294e6d567df758b533ac4062f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198680 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_expression_function_body.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_expression_function_body.dart index ed84716e..ef03f62 100644 --- a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_expression_function_body.dart +++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_expression_function_body.dart
@@ -28,6 +28,10 @@ if (body is! BlockFunctionBody || body.isGenerator) { return; } + var parent = body.parent; + if (parent is ConstructorDeclaration && parent.factoryKeyword == null) { + return; + } // prepare return statement List<Statement> statements = body.block.statements; if (statements.length != 1) {
diff --git a/pkg/analysis_server/test/src/services/correction/assist/convert_into_expression_body_test.dart b/pkg/analysis_server/test/src/services/correction/assist/convert_into_expression_body_test.dart index 6e8152d..739509b 100644 --- a/pkg/analysis_server/test/src/services/correction/assist/convert_into_expression_body_test.dart +++ b/pkg/analysis_server/test/src/services/correction/assist/convert_into_expression_body_test.dart
@@ -90,7 +90,7 @@ '''); } - Future<void> test_constructor() async { + Future<void> test_constructor_factory() async { await resolveTestCode(''' class A { A.named(); @@ -109,6 +109,19 @@ '''); } + Future<void> test_constructor_generative() async { + await resolveTestCode(''' +class A { + int x; + + A() { + x = 3; + } +} +'''); + await assertNoAssistAt('A()'); + } + Future<void> test_function_onBlock() async { await resolveTestCode(''' fff() {