From d48dba55f41bb493f223b3f9c2654ec5fb57660b Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Thu, 6 Nov 2025 14:09:15 -0500 Subject: [PATCH 01/10] Add new init-accessors Also, reformat the table for future updates to V9 features. --- admin/v9-feature-tracker.md | 40 ++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index 49830fb93..cddd1d010 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -8,26 +8,26 @@ Rex started with a set of [MS proposals](https://github.com/dotnet/csharplang/tr [Any work done by Rex that has not yet been turned into a Draft PR is stored in a Dropbox folder to which Bill, Mads, and Jon have access.] -Feature | PR | Status | Effort | Annotation | Notes -------- | -- | ------ | ------ | ---------- | ------ -Init accessors ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/init.md)) | [978](https://github.com/dotnet/csharpstandard/pull/978) | SPEC'D | medium | Done | -Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/top-level-statements.md)) | [980](https://github.com/dotnet/csharpstandard/pull/980) | SPEC'D | small | Done | -Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [1060](https://github.com/dotnet/csharpstandard/pull/1060) | SPEC'D | medium | Done | -Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [983](https://github.com/dotnet/csharpstandard/pull/983) | SPEC'D | large | Done | See open issues in the PR intro -Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/function-pointers.md)) | [984](https://github.com/dotnet/csharpstandard/pull/984) | SPEC'D | large | Done | See open issues in the PR intro -Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [1026](https://github.com/dotnet/csharpstandard/pull/1026) | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed +Feature | PR | Branch | Status | Effort | Annotation | Notes +------- | -- | ------ | ------ | ------ | ---------- | ------ +Init accessors ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/init.md)) | [#1452](https://github.com/dotnet/csharpstandard/pull/1492) | `v9-init-accessors` | SPEC'D | medium | Done. See review notes in [#978](https://github.com/dotnet/csharpstandard/pull/978) | +Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/top-level-statements.md)) | [980](https://github.com/dotnet/csharpstandard/pull/980) | N/A | SPEC'D | small | Done | +Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [1060](https://github.com/dotnet/csharpstandard/pull/1060) | N/A | SPEC'D | medium | Done | +Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [983](https://github.com/dotnet/csharpstandard/pull/983) | N/A | SPEC'D | large | Done | See open issues in the PR intro +Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/function-pointers.md)) | [984](https://github.com/dotnet/csharpstandard/pull/984) | N/A | SPEC'D | large | Done | See open issues in the PR intro +Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [1026](https://github.com/dotnet/csharpstandard/pull/1026) | N/A | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed Suppress emitting localsinit flag ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/skip-localsinit.md)) | | N/A | | | **This is a compiler feature and not a language feature** -static anonymous functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/static-anonymous-functions.md)) | [988](https://github.com/dotnet/csharpstandard/pull/988) | SPEC'D | small | N/A | -Target-typed conditional expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-conditional-expression.md)) | [1071](https://github.com/dotnet/csharpstandard/pull/1071)| SPEC'D | small | N/A | +static anonymous functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/static-anonymous-functions.md)) | [988](https://github.com/dotnet/csharpstandard/pull/988) | N/A | SPEC'D | small | N/A | +Target-typed conditional expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-conditional-expression.md)) | [1071](https://github.com/dotnet/csharpstandard/pull/1071) | N/A | SPEC'D | small | N/A | Covariant return types ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/covariant-returns.md)) | | partially SPEC'D | small | | waiting on adoption of V8 "impl. in interfaces" -Extension GetEnumerator support for foreach loops ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extension-getenumerator.md)) | [989](https://github.com/dotnet/csharpstandard/pull/989)| SPEC'D | small | N/A | -Lambda discard parameters ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/lambda-discard-parameters.md)) | [995](https://github.com/dotnet/csharpstandard/pull/995) | SPEC'D | small | N/A | -Attributes and extern on local functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/local-function-attributes.md)) | [994](https://github.com/dotnet/csharpstandard/pull/994)| SPEC'D | small | Done | +Extension GetEnumerator support for foreach loops ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extension-getenumerator.md)) | [989](https://github.com/dotnet/csharpstandard/pull/989) | N/A | SPEC'D | small | N/A | +Lambda discard parameters ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/lambda-discard-parameters.md)) | [995](https://github.com/dotnet/csharpstandard/pull/995) | N/A | SPEC'D | small | N/A | +Attributes and extern on local functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/local-function-attributes.md)) | [994](https://github.com/dotnet/csharpstandard/pull/994) | N/A | SPEC'D | small | Done | Module initializers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/module-initializers.md)) | [992](https://github.com/dotnet/csharpstandard/pull/992)| SPEC'D | small | Done | -New features for partial methods ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extending-partial-methods.md)) | [991](https://github.com/dotnet/csharpstandard/pull/991) | SPEC'D | small | Done | -Target-typed new expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-new.md)) | [990](https://github.com/dotnet/csharpstandard/pull/990) | SPEC'D | small | N/A | -Unconstrained type parameter annotations ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/unconstrained-type-parameter-annotations.md)) | [1326](https://github.com/dotnet/csharpstandard/pull/1326) | SPEC'D | small | N/A | -Variance safety for static interface members ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/variance-safety-for-static-interface-members.md)) | [1343](https://github.com/dotnet/csharpstandard/pull/1343) | SPEC'D | small | N/A | -Nullable reference types ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-reference-types-specification.md)) | [1221](https://github.com/dotnet/csharpstandard/pull/1221)| SPEC'D | small | Done | The `default` constraint part is handled by PR #[1326](https://github.com/dotnet/csharpstandard/pull/1326) -Nullable constructor analysis ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-constructor-analysis.md)) | None | | | | Contains implementation details only; no spec changes necessary -Nullable parameter default value analysis ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-parameter-default-value-analysis.md)) | None | | | | Contains implementation details only; no spec changes necessary +New features for partial methods ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extending-partial-methods.md)) | [991](https://github.com/dotnet/csharpstandard/pull/991) | N/A | SPEC'D | small | Done | +Target-typed new expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-new.md)) | [990](https://github.com/dotnet/csharpstandard/pull/990) | N/A | SPEC'D | small | N/A | +Unconstrained type parameter annotations ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/unconstrained-type-parameter-annotations.md)) | [1326](https://github.com/dotnet/csharpstandard/pull/1326) | N/A | SPEC'D | small | N/A | +Variance safety for static interface members ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/variance-safety-for-static-interface-members.md)) | [1343](https://github.com/dotnet/csharpstandard/pull/1343) | N/A | SPEC'D | small | N/A | +Nullable reference types ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-reference-types-specification.md)) | [1221](https://github.com/dotnet/csharpstandard/pull/1221) | N/A | SPEC'D | small | Done | The `default` constraint part is handled by PR #[1326](https://github.com/dotnet/csharpstandard/pull/1326) +Nullable constructor analysis ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-constructor-analysis.md)) | None | | | | | | Contains implementation details only; no spec changes necessary +Nullable parameter default value analysis ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-parameter-default-value-analysis.md)) | None | | | | | | Contains implementation details only; no spec changes necessary From 48351dd88eb68f8f66bc0744711cd713c67e9a3d Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Thu, 6 Nov 2025 15:25:45 -0500 Subject: [PATCH 02/10] New PR for toplevel statements Port changes to new feature branch. --- admin/v9-feature-tracker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index cddd1d010..c82e99a14 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -11,7 +11,7 @@ Rex started with a set of [MS proposals](https://github.com/dotnet/csharplang/tr Feature | PR | Branch | Status | Effort | Annotation | Notes ------- | -- | ------ | ------ | ------ | ---------- | ------ Init accessors ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/init.md)) | [#1452](https://github.com/dotnet/csharpstandard/pull/1492) | `v9-init-accessors` | SPEC'D | medium | Done. See review notes in [#978](https://github.com/dotnet/csharpstandard/pull/978) | -Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/top-level-statements.md)) | [980](https://github.com/dotnet/csharpstandard/pull/980) | N/A | SPEC'D | small | Done | +Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/top-level-statements.md)) | [#1454](https://github.com/dotnet/csharpstandard/pull/1454) | `v9-top-level-statements` | SPEC'D | small | Done | Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [1060](https://github.com/dotnet/csharpstandard/pull/1060) | N/A | SPEC'D | medium | Done | Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [983](https://github.com/dotnet/csharpstandard/pull/983) | N/A | SPEC'D | large | Done | See open issues in the PR intro Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/function-pointers.md)) | [984](https://github.com/dotnet/csharpstandard/pull/984) | N/A | SPEC'D | large | Done | See open issues in the PR intro From 4f6e072adc4f666b8c116df532095665e0957927 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Fri, 7 Nov 2025 15:36:12 -0500 Subject: [PATCH 03/10] Add notes for nint --- admin/v9-feature-tracker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index c82e99a14..c5f9c9bd2 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -12,7 +12,7 @@ Feature | PR | Branch | Status | Effort | Annotation | Notes ------- | -- | ------ | ------ | ------ | ---------- | ------ Init accessors ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/init.md)) | [#1452](https://github.com/dotnet/csharpstandard/pull/1492) | `v9-init-accessors` | SPEC'D | medium | Done. See review notes in [#978](https://github.com/dotnet/csharpstandard/pull/978) | Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/top-level-statements.md)) | [#1454](https://github.com/dotnet/csharpstandard/pull/1454) | `v9-top-level-statements` | SPEC'D | small | Done | -Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [1060](https://github.com/dotnet/csharpstandard/pull/1060) | N/A | SPEC'D | medium | Done | +Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [#1457](https://github.com/dotnet/csharpstandard/pull/1457) | `v9-native-sized-integers` | SPEC'D | medium | Done. See review notes in [#1060](https://github.com/dotnet/csharpstandard/pull/1060) | Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [983](https://github.com/dotnet/csharpstandard/pull/983) | N/A | SPEC'D | large | Done | See open issues in the PR intro Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/function-pointers.md)) | [984](https://github.com/dotnet/csharpstandard/pull/984) | N/A | SPEC'D | large | Done | See open issues in the PR intro Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [1026](https://github.com/dotnet/csharpstandard/pull/1026) | N/A | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed From 65269b28097fa29253570620b09faf663c190002 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Mon, 10 Nov 2025 15:54:22 -0500 Subject: [PATCH 04/10] Update for records --- admin/v9-feature-tracker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index c5f9c9bd2..cecbadebc 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -13,7 +13,7 @@ Feature | PR | Branch | Status | Effort | Annotation | Notes Init accessors ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/init.md)) | [#1452](https://github.com/dotnet/csharpstandard/pull/1492) | `v9-init-accessors` | SPEC'D | medium | Done. See review notes in [#978](https://github.com/dotnet/csharpstandard/pull/978) | Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/top-level-statements.md)) | [#1454](https://github.com/dotnet/csharpstandard/pull/1454) | `v9-top-level-statements` | SPEC'D | small | Done | Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [#1457](https://github.com/dotnet/csharpstandard/pull/1457) | `v9-native-sized-integers` | SPEC'D | medium | Done. See review notes in [#1060](https://github.com/dotnet/csharpstandard/pull/1060) | -Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [983](https://github.com/dotnet/csharpstandard/pull/983) | N/A | SPEC'D | large | Done | See open issues in the PR intro +Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [#1458](https://github.com/dotnet/csharpstandard/pull/1458) | v9-records | SPEC'D | large | Done | See open issues in the PR intro Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/function-pointers.md)) | [984](https://github.com/dotnet/csharpstandard/pull/984) | N/A | SPEC'D | large | Done | See open issues in the PR intro Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [1026](https://github.com/dotnet/csharpstandard/pull/1026) | N/A | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed Suppress emitting localsinit flag ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/skip-localsinit.md)) | | N/A | | | **This is a compiler feature and not a language feature** From ec72baa635712fcbd0685bbb282f06e5ba382118 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Mon, 10 Nov 2025 15:56:49 -0500 Subject: [PATCH 05/10] Add new PR for function pointers --- admin/v9-feature-tracker.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index cecbadebc..7f4c8bc6c 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -13,8 +13,8 @@ Feature | PR | Branch | Status | Effort | Annotation | Notes Init accessors ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/init.md)) | [#1452](https://github.com/dotnet/csharpstandard/pull/1492) | `v9-init-accessors` | SPEC'D | medium | Done. See review notes in [#978](https://github.com/dotnet/csharpstandard/pull/978) | Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/top-level-statements.md)) | [#1454](https://github.com/dotnet/csharpstandard/pull/1454) | `v9-top-level-statements` | SPEC'D | small | Done | Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [#1457](https://github.com/dotnet/csharpstandard/pull/1457) | `v9-native-sized-integers` | SPEC'D | medium | Done. See review notes in [#1060](https://github.com/dotnet/csharpstandard/pull/1060) | -Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [#1458](https://github.com/dotnet/csharpstandard/pull/1458) | v9-records | SPEC'D | large | Done | See open issues in the PR intro -Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/function-pointers.md)) | [984](https://github.com/dotnet/csharpstandard/pull/984) | N/A | SPEC'D | large | Done | See open issues in the PR intro +Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [#1458](https://github.com/dotnet/csharpstandard/pull/1458) | `v9-records` | SPEC'D | large | Done | See open issues in the PR intro +Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/function-pointers.md)) | [#1459](https://github.com/dotnet/csharpstandard/pull/1459) |`v9-function-pointers` | SPEC'D | large | Done | See open issues in the PR intro Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [1026](https://github.com/dotnet/csharpstandard/pull/1026) | N/A | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed Suppress emitting localsinit flag ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/skip-localsinit.md)) | | N/A | | | **This is a compiler feature and not a language feature** static anonymous functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/static-anonymous-functions.md)) | [988](https://github.com/dotnet/csharpstandard/pull/988) | N/A | SPEC'D | small | N/A | From 667024565c2f7d1dc6e94ee2049dd648bc91e312 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Mon, 10 Nov 2025 18:14:37 -0500 Subject: [PATCH 06/10] Add new patterns PR --- admin/v9-feature-tracker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index 7f4c8bc6c..d1693f352 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -15,7 +15,7 @@ Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/ma Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [#1457](https://github.com/dotnet/csharpstandard/pull/1457) | `v9-native-sized-integers` | SPEC'D | medium | Done. See review notes in [#1060](https://github.com/dotnet/csharpstandard/pull/1060) | Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [#1458](https://github.com/dotnet/csharpstandard/pull/1458) | `v9-records` | SPEC'D | large | Done | See open issues in the PR intro Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/function-pointers.md)) | [#1459](https://github.com/dotnet/csharpstandard/pull/1459) |`v9-function-pointers` | SPEC'D | large | Done | See open issues in the PR intro -Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [1026](https://github.com/dotnet/csharpstandard/pull/1026) | N/A | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed +Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [#1460](https://github.com/dotnet/csharpstandard/pull/1460) | v9-patterns | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed Suppress emitting localsinit flag ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/skip-localsinit.md)) | | N/A | | | **This is a compiler feature and not a language feature** static anonymous functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/static-anonymous-functions.md)) | [988](https://github.com/dotnet/csharpstandard/pull/988) | N/A | SPEC'D | small | N/A | Target-typed conditional expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-conditional-expression.md)) | [1071](https://github.com/dotnet/csharpstandard/pull/1071) | N/A | SPEC'D | small | N/A | From 22b3317b1170902982d7e78eba6051a057f6a0cf Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 11 Nov 2025 10:56:35 -0500 Subject: [PATCH 07/10] feature branch for static anonymous functions --- admin/v9-feature-tracker.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index d1693f352..8f998f9da 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -15,9 +15,9 @@ Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/ma Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [#1457](https://github.com/dotnet/csharpstandard/pull/1457) | `v9-native-sized-integers` | SPEC'D | medium | Done. See review notes in [#1060](https://github.com/dotnet/csharpstandard/pull/1060) | Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [#1458](https://github.com/dotnet/csharpstandard/pull/1458) | `v9-records` | SPEC'D | large | Done | See open issues in the PR intro Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/function-pointers.md)) | [#1459](https://github.com/dotnet/csharpstandard/pull/1459) |`v9-function-pointers` | SPEC'D | large | Done | See open issues in the PR intro -Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [#1460](https://github.com/dotnet/csharpstandard/pull/1460) | v9-patterns | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed +Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [#1460](https://github.com/dotnet/csharpstandard/pull/1460) | `v9-patterns` | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed Suppress emitting localsinit flag ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/skip-localsinit.md)) | | N/A | | | **This is a compiler feature and not a language feature** -static anonymous functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/static-anonymous-functions.md)) | [988](https://github.com/dotnet/csharpstandard/pull/988) | N/A | SPEC'D | small | N/A | +static anonymous functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/static-anonymous-functions.md)) | [#1461](https://github.com/dotnet/csharpstandard/pull/1461) | `v9-static-anonymous-functions`| SPEC'D | small | N/A | Target-typed conditional expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-conditional-expression.md)) | [1071](https://github.com/dotnet/csharpstandard/pull/1071) | N/A | SPEC'D | small | N/A | Covariant return types ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/covariant-returns.md)) | | partially SPEC'D | small | | waiting on adoption of V8 "impl. in interfaces" Extension GetEnumerator support for foreach loops ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extension-getenumerator.md)) | [989](https://github.com/dotnet/csharpstandard/pull/989) | N/A | SPEC'D | small | N/A | From ece7051c348c438238699105b0ba5caec86b2f35 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 11 Nov 2025 15:17:23 -0500 Subject: [PATCH 08/10] more new PRs --- admin/v9-feature-tracker.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index 8f998f9da..ad8cf1ed4 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -19,10 +19,10 @@ Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplan Suppress emitting localsinit flag ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/skip-localsinit.md)) | | N/A | | | **This is a compiler feature and not a language feature** static anonymous functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/static-anonymous-functions.md)) | [#1461](https://github.com/dotnet/csharpstandard/pull/1461) | `v9-static-anonymous-functions`| SPEC'D | small | N/A | Target-typed conditional expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-conditional-expression.md)) | [1071](https://github.com/dotnet/csharpstandard/pull/1071) | N/A | SPEC'D | small | N/A | -Covariant return types ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/covariant-returns.md)) | | partially SPEC'D | small | | waiting on adoption of V8 "impl. in interfaces" -Extension GetEnumerator support for foreach loops ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extension-getenumerator.md)) | [989](https://github.com/dotnet/csharpstandard/pull/989) | N/A | SPEC'D | small | N/A | -Lambda discard parameters ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/lambda-discard-parameters.md)) | [995](https://github.com/dotnet/csharpstandard/pull/995) | N/A | SPEC'D | small | N/A | -Attributes and extern on local functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/local-function-attributes.md)) | [994](https://github.com/dotnet/csharpstandard/pull/994) | N/A | SPEC'D | small | Done | +Covariant return types ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/covariant-returns.md)) | [#1462](https://github.com/dotnet/csharpstandard/pull/1462) | `v9-covariant-return-types` | partially SPEC'D | small | | waiting on adoption of V8 "impl. in interfaces" +Extension GetEnumerator support for foreach loops ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extension-getenumerator.md)) | [#1463](https://github.com/dotnet/csharpstandard/pull/1463) | `v9-extension-foreach` | SPEC'D | small | N/A | +Lambda discard parameters ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/lambda-discard-parameters.md)) | [#1464](https://github.com/dotnet/csharpstandard/pull/1464) | `v9-lambda-discards` | SPEC'D | small | N/A | +Attributes and extern on local functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/local-function-attributes.md)) | [#1466](https://github.com/dotnet/csharpstandard/pull/9914664) | `v9-attribute-locations` | SPEC'D | small | Done | Module initializers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/module-initializers.md)) | [992](https://github.com/dotnet/csharpstandard/pull/992)| SPEC'D | small | Done | New features for partial methods ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extending-partial-methods.md)) | [991](https://github.com/dotnet/csharpstandard/pull/991) | N/A | SPEC'D | small | Done | Target-typed new expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-new.md)) | [990](https://github.com/dotnet/csharpstandard/pull/990) | N/A | SPEC'D | small | N/A | From 233c9c1b788eae7d6ed88e357bd312c8ca853e5f Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Tue, 11 Nov 2025 17:31:11 -0500 Subject: [PATCH 09/10] update all branches for v9 Update branches and PRs for the V9 admin tracker --- admin/v9-feature-tracker.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index ad8cf1ed4..d71c5bb8f 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -18,16 +18,16 @@ Function pointers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/ Pattern matching enhancements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/patterns3.md)) | [#1460](https://github.com/dotnet/csharpstandard/pull/1460) | `v9-patterns` | SPEC'D | medium | Done | Might need tweaking after V8 pattern-matching additions merged + open issues addressed Suppress emitting localsinit flag ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/skip-localsinit.md)) | | N/A | | | **This is a compiler feature and not a language feature** static anonymous functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/static-anonymous-functions.md)) | [#1461](https://github.com/dotnet/csharpstandard/pull/1461) | `v9-static-anonymous-functions`| SPEC'D | small | N/A | -Target-typed conditional expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-conditional-expression.md)) | [1071](https://github.com/dotnet/csharpstandard/pull/1071) | N/A | SPEC'D | small | N/A | +Target-typed conditional expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-conditional-expression.md)) | [#1465](https://github.com/dotnet/csharpstandard/pull/1465) | `v9-target-typed-conditional-expression` | SPEC'D | small | N/A | Covariant return types ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/covariant-returns.md)) | [#1462](https://github.com/dotnet/csharpstandard/pull/1462) | `v9-covariant-return-types` | partially SPEC'D | small | | waiting on adoption of V8 "impl. in interfaces" Extension GetEnumerator support for foreach loops ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extension-getenumerator.md)) | [#1463](https://github.com/dotnet/csharpstandard/pull/1463) | `v9-extension-foreach` | SPEC'D | small | N/A | Lambda discard parameters ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/lambda-discard-parameters.md)) | [#1464](https://github.com/dotnet/csharpstandard/pull/1464) | `v9-lambda-discards` | SPEC'D | small | N/A | Attributes and extern on local functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/local-function-attributes.md)) | [#1466](https://github.com/dotnet/csharpstandard/pull/9914664) | `v9-attribute-locations` | SPEC'D | small | Done | -Module initializers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/module-initializers.md)) | [992](https://github.com/dotnet/csharpstandard/pull/992)| SPEC'D | small | Done | -New features for partial methods ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extending-partial-methods.md)) | [991](https://github.com/dotnet/csharpstandard/pull/991) | N/A | SPEC'D | small | Done | -Target-typed new expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-new.md)) | [990](https://github.com/dotnet/csharpstandard/pull/990) | N/A | SPEC'D | small | N/A | -Unconstrained type parameter annotations ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/unconstrained-type-parameter-annotations.md)) | [1326](https://github.com/dotnet/csharpstandard/pull/1326) | N/A | SPEC'D | small | N/A | -Variance safety for static interface members ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/variance-safety-for-static-interface-members.md)) | [1343](https://github.com/dotnet/csharpstandard/pull/1343) | N/A | SPEC'D | small | N/A | -Nullable reference types ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-reference-types-specification.md)) | [1221](https://github.com/dotnet/csharpstandard/pull/1221) | N/A | SPEC'D | small | Done | The `default` constraint part is handled by PR #[1326](https://github.com/dotnet/csharpstandard/pull/1326) +Module initializers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/module-initializers.md)) | [#1462](https://github.com/dotnet/csharpstandard/pull/1462)| | `v9-module-initializers` | SPEC'D | small | Done | +New features for partial methods ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extending-partial-methods.md)) | [#1468](https://github.com/dotnet/csharpstandard/pull/1468) | `v9-more-partial-methods` | SPEC'D | small | Done | +Target-typed new expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-new.md)) | [#1469](https://github.com/dotnet/csharpstandard/pull/1469) | `v9-target-typed-new` | SPEC'D | small | N/A | +Unconstrained type parameter annotations ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/unconstrained-type-parameter-annotations.md)) | [#1470](https://github.com/dotnet/csharpstandard/pull/1470) | `v9-unconstrained-type-parameters` | SPEC'D | small | N/A | +Variance safety for static interface members ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/variance-safety-for-static-interface-members.md)) | [#1471](https://github.com/dotnet/csharpstandard/pull/1471) | `v9-static-interface-variance-safetys` | SPEC'D | small | N/A | +Nullable reference types ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-reference-types-specification.md)) | [#1221](https://github.com/dotnet/csharpstandard/pull/1221) | `add-v9-nullable-attributes` | SPEC'D | small | Done | The `default` constraint part is handled by PR #[1326](https://github.com/dotnet/csharpstandard/pull/1326) Nullable constructor analysis ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-constructor-analysis.md)) | None | | | | | | Contains implementation details only; no spec changes necessary Nullable parameter default value analysis ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/nullable-parameter-default-value-analysis.md)) | None | | | | | | Contains implementation details only; no spec changes necessary From c9b02bd4c126a3d562da40b7686604ace32d9813 Mon Sep 17 00:00:00 2001 From: Rex Jaeschke Date: Wed, 12 Nov 2025 05:29:29 -0500 Subject: [PATCH 10/10] Apply suggestions from code review Correct 2 PR links --- admin/v9-feature-tracker.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/admin/v9-feature-tracker.md b/admin/v9-feature-tracker.md index d71c5bb8f..111a07246 100644 --- a/admin/v9-feature-tracker.md +++ b/admin/v9-feature-tracker.md @@ -10,7 +10,8 @@ Rex started with a set of [MS proposals](https://github.com/dotnet/csharplang/tr Feature | PR | Branch | Status | Effort | Annotation | Notes ------- | -- | ------ | ------ | ------ | ---------- | ------ -Init accessors ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/init.md)) | [#1452](https://github.com/dotnet/csharpstandard/pull/1492) | `v9-init-accessors` | SPEC'D | medium | Done. See review notes in [#978](https://github.com/dotnet/csharpstandard/pull/978) | +Init accessors ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/init.md)) | [#1452](https://github.com/dotnet/csharpstandard/pull/1452) | `v9-init-accessors` | SPEC'D | medium | Done. See review notes in [#978](https://github.com/dotnet/csharpstandard/pull/978) | + Top-level statements ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/top-level-statements.md)) | [#1454](https://github.com/dotnet/csharpstandard/pull/1454) | `v9-top-level-statements` | SPEC'D | small | Done | Native sized integers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/native-integers.md)) | [#1457](https://github.com/dotnet/csharpstandard/pull/1457) | `v9-native-sized-integers` | SPEC'D | medium | Done. See review notes in [#1060](https://github.com/dotnet/csharpstandard/pull/1060) | Records ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/records.md)) | [#1458](https://github.com/dotnet/csharpstandard/pull/1458) | `v9-records` | SPEC'D | large | Done | See open issues in the PR intro @@ -23,7 +24,8 @@ Covariant return types ([MS Proposal](https://github.com/dotnet/csharplang/blob/ Extension GetEnumerator support for foreach loops ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extension-getenumerator.md)) | [#1463](https://github.com/dotnet/csharpstandard/pull/1463) | `v9-extension-foreach` | SPEC'D | small | N/A | Lambda discard parameters ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/lambda-discard-parameters.md)) | [#1464](https://github.com/dotnet/csharpstandard/pull/1464) | `v9-lambda-discards` | SPEC'D | small | N/A | Attributes and extern on local functions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/local-function-attributes.md)) | [#1466](https://github.com/dotnet/csharpstandard/pull/9914664) | `v9-attribute-locations` | SPEC'D | small | Done | -Module initializers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/module-initializers.md)) | [#1462](https://github.com/dotnet/csharpstandard/pull/1462)| | `v9-module-initializers` | SPEC'D | small | Done | +Module initializers ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/module-initializers.md)) | [#1467](https://github.com/dotnet/csharpstandard/pull/1467)| | `v9-module-initializers` | SPEC'D | small | Done | + New features for partial methods ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/extending-partial-methods.md)) | [#1468](https://github.com/dotnet/csharpstandard/pull/1468) | `v9-more-partial-methods` | SPEC'D | small | Done | Target-typed new expressions ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/target-typed-new.md)) | [#1469](https://github.com/dotnet/csharpstandard/pull/1469) | `v9-target-typed-new` | SPEC'D | small | N/A | Unconstrained type parameter annotations ([MS Proposal](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-9.0/unconstrained-type-parameter-annotations.md)) | [#1470](https://github.com/dotnet/csharpstandard/pull/1470) | `v9-unconstrained-type-parameters` | SPEC'D | small | N/A |