csharplang
csharplang copied to clipboard
Champion: relax ordering constraints around `ref` and `partial` modifiers on type declarations
Currently, partial must appear directly before struct, class, or another type declaration keyword. If the type is a ref struct, ref must appear immediately before partial or struct. It seems likely that various other keywords could be used to disambiguate these contextual modifiers and allow us to relax the constraints on where partial and ref can appear in the modifier list.
- [ ] Proposal added
- [x] Discussed in LDM
- [ ] Decision in LDM
- [ ] Finalized (done, rejected, inactive)
- [ ] Spec'ed
See https://github.com/dotnet/csharplang/blob/master/meetings/2017/LDM-2017-12-04.md
Note: i've looked at https://github.com/dotnet/csharplang/blob/master/meetings/2017/LDM-2017-12-04.md, but i can't find where in it it refers to this issue. Can you link/copy the appropriate section?
Thanks!
Can restrictions around partial just be relaxed entirely? I'd like it if partial abstract class worked just the same as abstract partial class.
See https://github.com/dotnet/csharplang/blob/master/meetings/2017/LDM-2017-12-04.md
So that link does not talk about partial anywhere (as @CyrusNajmabadi noted), so I did a quick search for the paper trail myself:
- https://github.com/dotnet/csharplang/blob/main/meetings/2017/LDM-2017-09-27.md (which was before this issue)
- https://github.com/dotnet/csharplang/blob/main/meetings/2018/LDM-2018-04-04.md (where it was approved)
- https://github.com/dotnet/csharplang/blob/main/meetings/2019/LDM-2019-09-16.md (where it was initially slated for 9.0)
- https://github.com/dotnet/csharplang/blob/main/meetings/2020/LDM-2020-09-09.md (where it was punted to later)