[Version 12.0] Feature support for inline arrays - #1620
Draft
RexJaeschke wants to merge 14 commits into
Draft
Conversation
RexJaeschke
marked this pull request as draft
April 6, 2026 22:38
BillWagner
force-pushed
the
v12-inline-arrays
branch
from
May 14, 2026 14:56
950f0f1 to
adf2dcd
Compare
BillWagner
force-pushed
the
v12-inline-arrays
branch
from
June 24, 2026 22:44
adf2dcd to
3f8efed
Compare
BillWagner
force-pushed
the
v12-inline-arrays
branch
from
July 24, 2026 19:57
3f8efed to
34a7d95
Compare
BillWagner
pushed a commit
that referenced
this pull request
Aug 10, 2026
Source: #1620 PR head SHA: 34a7d95 Merge-base SHA: 2ab4487 Aggregate diff SHA-256: 8f3563412bb5123d75a2af08cd2607b3db3a4164a924787fd8fc11dc63168052 Conflicts resolved (3 files, 4 blocks) — all lossless insertion collisions caused by 83f8fa7 (record-spec restore) landing after PR branch forked: attributes.md (2 blocks): §collection-builder-attr bullet + subsection (PR 1638, already applied) kept before §InlineArrayAttribute bullet + subsection (PR 1620). Both preserved. conversions.md (1 block): §imp-collection-expression-conv section (PR 1638) kept before §ImplicitInlineArrayConversions section (PR 1620). Both preserved. structs.md (1 block): §InlineArray Inline arrays section (PR 1620) inserted between §16.4 Record structs and §16.5 Record struct/non-record diffs. Stale pre-restore heading '## 16.5 Class and struct differences' from PR branch dropped (superseded by §16.6 in current draft-v12); §16.5 heading re-anchored. No normative content lost. 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
added a commit
that referenced
this pull request
Aug 10, 2026
1. conversions.md: Insert missing blank line before the §ImplicitInlineArrayConversions heading so it renders as a heading rather than paragraph text (PR #1620 integration gap). 2. conversions.md: Correct stale safe-context cross-reference from [§16.5.15](structs.md#16412-safe-context-constraint) to [§16.6.15](structs.md#16615-safe-context-constraint), fixing both the section number and the URL fragment introduced by the PR #1638 application commit (b799df08). 3. classes.md line 39: Add missing closing ')' to the §15.17 link so [§15.17](classes.md#1517-record-class-and-non-record-class-differences) is a valid Markdown link rather than malformed inline text. All three corrections independently reviewed and approved by Bill Wagner before this commit was created/amended. 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
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.