| Index: pkg/analysis_server/lib/src/services/correction/assist_internal.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
|
| index 6059cbb60fa6ce6ea8084431f31999caedb04bc7..1ae32010c43a880e3315aa4522df77a07153134d 100644
|
| --- a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
|
| +++ b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
|
| @@ -98,6 +98,7 @@ class AssistProcessor {
|
| _addProposal_addTypeAnnotation_VariableDeclaration();
|
| _addProposal_assignToLocalVariable();
|
| _addProposal_convertIntoFinalField();
|
| + _addProposal_convertIntoGetter();
|
| _addProposal_convertDocumentationIntoBlock();
|
| _addProposal_convertDocumentationIntoLine();
|
| _addProposal_convertToBlockFunctionBody();
|
| @@ -545,6 +546,50 @@ class AssistProcessor {
|
| }
|
| }
|
|
|
| + void _addProposal_convertIntoGetter() {
|
| + // Find the enclosing field declaration.
|
| + FieldDeclaration fieldDeclaration;
|
| + for (AstNode n = node; n != null; n = n.parent) {
|
| + if (n is FieldDeclaration) {
|
| + fieldDeclaration = n;
|
| + break;
|
| + }
|
| + if (n is SimpleIdentifier ||
|
| + n is VariableDeclaration ||
|
| + n is VariableDeclarationList ||
|
| + n is TypeName ||
|
| + n is TypeArgumentList) {
|
| + continue;
|
| + }
|
| + break;
|
| + }
|
| + if (fieldDeclaration == null) {
|
| + return;
|
| + }
|
| + // The field must be final and has only one variable.
|
| + VariableDeclarationList fieldList = fieldDeclaration.fields;
|
| + if (!fieldList.isFinal || fieldList.variables.length != 1) {
|
| + return;
|
| + }
|
| + VariableDeclaration field = fieldList.variables.first;
|
| + // Prepare the initializer.
|
| + Expression initializer = field.initializer;
|
| + if (initializer == null) {
|
| + return;
|
| + }
|
| + // Add proposal.
|
| + String code = '';
|
| + if (fieldList.type != null) {
|
| + code += _getNodeText(fieldList.type) + ' ';
|
| + }
|
| + code += 'get';
|
| + code += ' ' + _getNodeText(field.name);
|
| + code += ' => ' + _getNodeText(initializer);
|
| + code += ';';
|
| + _addReplaceEdit(rangeStartEnd(fieldList.keyword, fieldDeclaration), code);
|
| + _addAssist(DartAssistKind.CONVERT_INTO_GETTER, []);
|
| + }
|
| +
|
| void _addProposal_convertToBlockFunctionBody() {
|
| FunctionBody body = getEnclosingFunctionBody();
|
| // prepare expression body
|
|
|