meetings/2022/LDM-2022-11-30.md
MemberNotNull for requiredhttps://github.com/dotnet/csharplang/issues/6754
https://github.com/dotnet/csharplang/issues/3630
Today we considered a revision to required members, part of the recently-shipped C# 11, before the current behavior gets too broadly used for us to
make changes without a language version bump. Specifically, we looked at whether we can use MemberNotNullAttributes on member declarations to inform
nullability error suppression for fields initialized by required properties. While we do think this will become less of an issue with future language
versions that take up the field feature, we think this is a good workaround for the moment. It uses MemberNotNullAttribute as a linking mechanism,
which was the intended purpose of the attribute, and we're in favor of making the change now while we still can.
Proposed change is accepted, targeted at 7.0.200.
params Span<T>https://github.com/dotnet/csharplang/issues/1757
https://github.com/dotnet/csharplang/blob/6ab4bbf1ec5183c65ad63887b8ec9e73ca0aab67/proposals/params-span.md
The params improvements working group has come back from their initial investigations with some initial work. Of the potential work, they looked at
params ReadOnlySpan<T> as the most interesting thing on the plate, as it makes for real performance improvements, while other ergonomic benefits
will potentially be addressed by collection literals. The performance benefits here are mainly targeted at new APIs, as existing APIs (such as
Console.WriteLine) have already manually optimized these cases by introducing a number of overloads, each taking another argument, until finally
leaving a last params API. While these APIs would likely still take advantage of them (the runtime is tracking what APIs will want to use the
feature in this issue), the main improvement will be in new APIs that don't need to write so many
overloads in the first place. Some questions we raised during discussion:
UnscopedAttribute on params? We don't think this is a real scenario, and it adds significant complexity to the rules.params ReadOnlySpan<T> parameters and recompiling will prefer the span overload. For callsites
with large numbers of params parameters this could end up causing StackOverflowExceptions. There are a few possible mitigations:
Feature is good to proceed to implementation.