| Index: pkg/analysis_server/lib/src/services/correction/fix_internal.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
|
| index a6f30996f764cb4478efd28223f74ccd7307b9ab..0ad6b878ae190c370606d2c05608626e5fdd6b03 100644
|
| --- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
|
| +++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
|
| @@ -159,6 +159,9 @@ class FixProcessor {
|
| _addFix_createPartUri();
|
| _addFix_replaceImportUri();
|
| }
|
| + if (errorCode == HintCode.CAN_BE_NULL_AFTER_NULL_AWARE) {
|
| + _addFix_canBeNullAfterNullAware();
|
| + }
|
| if (errorCode == HintCode.DEAD_CODE) {
|
| _addFix_removeDeadCode();
|
| }
|
| @@ -445,6 +448,25 @@ class FixProcessor {
|
| _addFix(DartFixKind.REPLACE_BOOLEAN_WITH_BOOL, []);
|
| }
|
|
|
| + void _addFix_canBeNullAfterNullAware() {
|
| + AstNode node = coveredNode;
|
| + if (node is Expression) {
|
| + AstNode parent = node.parent;
|
| + while (parent != null) {
|
| + if (parent is MethodInvocation && parent.target == node) {
|
| + _addReplaceEdit(rf.rangeToken(parent.operator), '?.');
|
| + } else if (parent is PropertyAccess && parent.target == node) {
|
| + _addReplaceEdit(rf.rangeToken(parent.operator), '?.');
|
| + } else {
|
| + break;
|
| + }
|
| + node = parent;
|
| + parent = node.parent;
|
| + }
|
| + _addFix(DartFixKind.REPLACE_WITH_NULL_AWARE, []);
|
| + }
|
| + }
|
| +
|
| void _addFix_createClass() {
|
| Element prefixElement = null;
|
| String name = null;
|
|
|