[Version 12.0] Feature support for primary constructors - #1766
Draft
RexJaeschke wants to merge 10 commits into
Draft
[Version 12.0] Feature support for primary constructors#1766RexJaeschke wants to merge 10 commits into
RexJaeschke wants to merge 10 commits into
Conversation
BillWagner
pushed a commit
that referenced
this pull request
Aug 10, 2026
Source: #1766 PR head SHA: 4c6db90 Merge-base SHA: 39ca753 Aggregate diff SHA-256: 9454ceb8bd7a3c7fab219fb7f41c753a4a7d330f7b51dd0a7160999ebd0c89f9 Applied: cleanly (no conflicts) Squashed from upstream/v12-primary-constructors (10 commits) Status: REVIEW_REQUIRED — not ECMA-approved; alpha-v12 working draft only Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7c07b608-2471-41d5-845a-152b2378a43d
BillWagner
pushed a commit
that referenced
this pull request
Aug 10, 2026
Ran StandardAnchorTags (tools/StandardAnchorTags/) against alpha-v12 after applying six C# 12 feature patches (PRs #1766, #1638, #1620, #1624, #1623, #1622). Three operations performed: Section renumber and cross-reference update (StandardAnchorTags phases 1–2): Resolved all 12 symbolic §-anchor headings introduced by the feature patches to real section numbers in document order: §struct-prim-constructors → §16.4 (structs.md) §InlineArray → §16.6 (structs.md) §declaring-a-collection-type → §15.17 (classes.md) §declaring-a-collection-type-general → §15.17.1 §collection-construction → §15.17.2 §prim-constructor → §15.11.6 (classes.md) §InlineArrayElementAccess → §12.8.12.3 (expressions.md) §collection-expressions → §12.8.25 (expressions.md) §imp-collection-expression-conv → §10.2.22 (conversions.md) §ImplicitInlineArrayConversions → §10.2.23 (conversions.md) §collection-builder-attr → §23.5.12 (attributes.md) §InlineArrayAttribute → §23.5.13 (attributes.md) Existing sections displaced by new insertions were renumbered: structs.md: §16.4 Record structs → §16.5; §16.5 → §16.7; §16.6 → §16.8 (cascade: §16.6.15 safe-context-constraint → §16.8.15 throughout) classes.md: §15.17 Record class differences → §15.18 expressions.md: §12.8.12.3 String access → §12.8.12.4; §12.8.12.4 Indexer access → §12.8.12.5 All cross-references to displaced sections updated in: arrays.md, attributes.md, classes.md, conversions.md, expressions.md, interfaces.md, namespaces.md, ranges.md, structs.md, types.md, unsafe-code.md, variables.md. README TOC update (WriteUpdatedTOC): standard/README.md regenerated to reflect new section numbers and entries for all six C# 12 features. New TOC entries include §15.17 Declaring a collection type, §16.4 Primary constructors, §16.6 Inline arrays, §10.2.22–§10.2.23, §12.8.12.3, §23.5.12–§23.5.13. Grammar regeneration (GenerateNewGrammar): standard/grammar.md regenerated from grammar blocks embedded in all standard/*.md files. C# 12 grammar additions from the six feature deltas now present: - collection_expression / collection_element / expression_element / spread_element (PR #1638, §12.8.25) - non_record_class_with_positional_members with delimited_parameter_list (PR #1766); non_record_class_without_positional_members split out - non_record_struct_with/without_positional_members (PR #1766) - class_body / struct_body / interface_body / enum_body: added semicolon-body alternative '| ;' (PR #1766) - base_argument_list moved to non-record class context; record_class_body and record_struct_body productions eliminated (PR #1766) - explicit_anonymous_function_signature simplified to '(' parameter_list? ')' reusing standard parameter_list (PR #1623) - parameter_mode_modifier uses ref_kind (PR #1624) - using_alias_directive: added 'unsafe'? and (namespace_name | type) (PR #1622); using_static_directive: added 'unsafe'? (PR #1622) - Source-comment section numbers updated throughout grammar.md Eight independently reviewed manual link corrections applied to the generated renumber output before commit (reviewed by Bill Wagner): - expressions.md: lower-bound inference link corrected from §12.6.3.10 (exact inferences) to §12.6.3.11 (lower-bound inferences) - namespaces.md: pointer-types link corrected from attributes.md §23.3 (attribute specification) to unsafe-code.md §24.3 (pointer types) - classes.md §15.16.4.6.2: symbolic §prim-constructor resolved to [§15.11.6] - classes.md §15.17.1: symbolic §collection-expressions resolved to [§12.8.25] - classes.md §15.17.1: symbolic §imp-collection-expression-conv resolved to [§10.2.22] - classes.md §15.17.1: symbolic §collection-builder-attr resolved to [§23.5.12] - classes.md §15.17.2: symbolic §collection-construction resolved to [§15.17.2] - classes.md §15.17.2: symbolic §declaring-a-collection-type-general resolved to [§15.17.1] This commit does not represent ECMA approval of any feature. All six source PRs remain open and unreviewed by the ECMA TC49-TG2 committee. The alpha-v12 branch is a working synthesis for committee review. Pending committee review flags (carried from feature commits): - expressions.md §12.6.3.14: **TBD** marker on lambda inference (PR #1638) - classes.md / conversions.md: PR #1623 Binder changes omitted per decision in session 7c07b608 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7c07b608-2471-41d5-845a-152b2378a43d
RexJaeschke
marked this pull request as draft
August 11, 2026 10:02
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is Rex's adaptation of the corresponding MS proposal.