Branch: refs/heads/main
Home:
https://github.com/dart-lang/sdk
Commit: ea1bc24fdc6bf23b3a4ea2bc9a4e410a481b41dc
https://github.com/dart-lang/sdk/commit/ea1bc24fdc6bf23b3a4ea2bc9a4e410a481b41dc
Author: Robert Nystrom <
rnys...@google.com>
Date: 2026-02-23 (Mon, 23 Feb 2026)
Changed paths:
M pkg/analysis_server/lib/src/services/correction/dart/convert_to_initializing_formal.dart
M pkg/analysis_server/test/src/services/correction/fix/convert_to_initializing_formal_test.dart
Log Message:
-----------
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 <
sraw...@google.com>
Commit-Queue: Samuel Rawlins <
sraw...@google.com>
Auto-Submit: Bob Nystrom <
rnys...@google.com>
To unsubscribe from these emails, change your notification settings at
https://github.com/dart-lang/sdk/settings/notifications