dotnet/roslyn
Default value of a struct type should give nullable initial state to some field-backed properties
開放
#84,987 建立於 2026年8月20日
Area-CompilersFeature - Nullable Reference Typeshelp wanted
倉庫指標
- 星標
- (20,414 顆星)
- PR 合併指標
- (平均合併 6天 17小時) (30 天內合併 256 個 PR)
描述
The current behavior is dependent on whether we are currently constructing the struct instance, and feels a little inconsistent.
Basically, it feels like we should be able to get a similar behavior for member flow states, when any default value of a struct type is used, as when we are working out the initial state of struct fields in a constructor.
Note that 'null-resilient' properties using field keyword would be excepted from this. Their initial flow state would be the same as the property. Currently working on a change to make that work more consistently in constructors. (resolving #77991).
I consider this issue low priority
struct S
{
public void M()
{
this = default;
this.Prop2.ToString(); // no warning
}
public S()
{
this = default;
Prop2.ToString(); // warning
}
public string Prop2 { get; set; }
}