Browse Source

Records: Exclude static members from copy constructor check

pull/3622/head
Siegfried Pammer 1 month ago
parent
commit
c34cc100b6
  1. 5
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/Records.cs
  2. 4
      ICSharpCode.Decompiler/CSharp/RecordDecompiler.cs

5
ICSharpCode.Decompiler.Tests/TestCases/Pretty/Records.cs

@ -30,6 +30,11 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
public record Empty; public record Empty;
public record EmptyWithStaticField
{
public static readonly Empty X = new Empty();
}
public record Fields public record Fields
{ {
public int A; public int A;

4
ICSharpCode.Decompiler/CSharp/RecordDecompiler.cs

@ -550,7 +550,9 @@ namespace ICSharpCode.Decompiler.CSharp
// Then all the fields are copied over // Then all the fields are copied over
foreach (var member in orderedMembers) foreach (var member in orderedMembers)
{ {
if (!(member is IField field)) if (member.IsStatic)
continue;
if (member is not IField field)
{ {
if (!autoPropertyToBackingField.TryGetValue((IProperty)member, out field!)) if (!autoPropertyToBackingField.TryGetValue((IProperty)member, out field!))
continue; continue;

Loading…
Cancel
Save