From 7235115f36c3ef6e117c0400a7aee4e64be3e14d Mon Sep 17 00:00:00 2001 From: pq Date: Wed, 25 Sep 2019 17:56:45 +0000 Subject: [PATCH] statement completion for expression bodies See: https://github.com/flutter/flutter-intellij/issues/3253 Change-Id: Ib892833ecfa4500b726f4f6df42f16f0618c994d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118663 Reviewed-by: Steve Messick Commit-Queue: Phil Quitslund --- .../statement/statement_completion.dart | 5 +++-- .../statement/statement_completion_test.dart | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart index f82c19cb60d..e9a48d3d5ee 100644 --- a/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart +++ b/pkg/analysis_server/lib/src/services/completion/statement/statement_completion.dart @@ -207,8 +207,9 @@ class StatementCompletionProcessor { } else if (node is Declaration) { if (errors.isNotEmpty) { if (_complete_classDeclaration() || - _complete_functionDeclaration() || - _complete_variableDeclaration()) { + _complete_variableDeclaration() || + _complete_simpleSemicolon() || + _complete_functionDeclaration()) { return completion; } } diff --git a/pkg/analysis_server/test/services/completion/statement/statement_completion_test.dart b/pkg/analysis_server/test/services/completion/statement/statement_completion_test.dart index 7907820e102..1558593778a 100644 --- a/pkg/analysis_server/test/services/completion/statement/statement_completion_test.dart +++ b/pkg/analysis_server/test/services/completion/statement/statement_completion_test.dart @@ -1365,6 +1365,23 @@ main() { '''); } + test_expressionBody() async { + await _prepareCompletion( + '=> 1', + ''' +class Thing extends Object { + int foo() => 1 +} +''', + atEnd: true); + _assertHasChange('Add a semicolon and newline', ''' +class Thing extends Object { + int foo() => 1; + +} +'''); + } + test_noCloseParen() async { await _prepareCompletion( 'ing(3',