Files
sdk/pkg/analysis_server/lib
Robert Nystrom ea1bc24fdc ConvertToInitializingFormal: Don't discard initializers when deleting the constructor body.
ConvertToInitializingFormal can convert an initializer to an initializing formal, or an assignment statement in the body:

```dart
class C {
  int x;
  C(int x) {
    this.x = x;
  }
}
```

When converting from an assignment statement, if there are no statements left in the block, it deletes the entire function body.

Prior to this CL, it would also erroneously delete any initializers that happened to be on the constructor:

```dart
// Before:
class C {
  int? x;
  int? y;

  C(int? x) : y = 1 {
    this.x = x;
  }
}

// Result of applying fix:
class C {
  int? x;
  int? y;

  C(this.x); // Oops! Where did ": y = 1" go?
}
```

Change-Id: I5bd27e925509adc82056b71f4c96432c819bc954
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/482966
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
2026-02-23 18:12:59 -08:00
..