dotnet / dotnet/csharpstandard

Reorganize how record structs are spec'd

Open
#1,697 0 comments 0 reactions 1 assignee Claimed by @RexJaeschke View on GitHub
type: clarity
Dominant language
C#
Stars
815
Forks
99
Avg merge
1d 14h
Merged PRs (30d)
16

Description

[This issue was spun off from Issue #1683.]

During the 2026-05-06 TG2 call, we had a lengthy discussion about whether `record` is a modifier on a class/struct, or a different type entirely. We ended up with the following position:

1. We'll treat `record` as a modifier. (This is how it is currently treated in [Draft PR #1458](https://github.com/dotnet/csharpstandard/pull/1556).)
1. Add a new subclause to the end of 16, “Structs” that describes the diffs between a record struct and a non-record struct, and remove from the current Draft PR mentions of “record struct” in earlier subclauses in that clause. This allows all information about a record struct to be found in one subclause rather than it being spread around multiple earlier subclauses. A reader of the earlier subclauses not interested in record structs will no longer be distracted by text on that topic.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.