anchor.diff:      // Extract the inner expression.
       // TODO(paulberry): don't remove comments
       changes = _removeCode(
  -            sourceNode.offset,
  -            innerPlan.sourceNode.offset,
  +            offset,
  +            innerPlan.offset,
               _planner.removeViaComments
                   ? _RemovalStyle.commentSpace
                   : _RemovalStyle.delete,
               _infoBefore) +
           changes +
           _removeCode(
  -            innerPlan.sourceNode.end,
  -            sourceNode.end,
  +            innerPlan.end,
  +            end,
               _planner.removeViaComments
                   ? _RemovalStyle.spaceComment
                   : _RemovalStyle.delete,
  
positive.code: 
    NodeProducingEditPlan._(this.sourceNode) : super._();
  
    /// If the result of executing this [EditPlan] will be an expression,
    /// indicates whether the expression will end in an unparenthesized cascade.
    @visibleForTesting
    bool get endsInCascade;
  
    @override
    AstNode get parentNode => sourceNode.parent;
  
negative.code:     var changes = innerPlan._getChanges(false);
      if (!parens) {
        changes ??= {};
        (changes[offset] ??= []).insert(0, const AtomicEdit.delete(1));
        (changes[end - 1] ??= []).add(const AtomicEdit.delete(1));
      }
      return changes;
    }
  