meetings/2024/LDM-2024-11-13.md
Champion issue: https://github.com/dotnet/csharplang/issues/5497
Documents:
We once again return to extensions, today with a compromise proposal to rule them all: a grouping approach that allows many of the advantages of the type-based approach
(lack of repeating types, appears closer to a regular member definition) while also giving us the flexibility of the member-based approach, where a single Extensions
type can contain all of a user's extensions. After going through the proposal, we were overall very positive on the approach, and think we have something specific that
we can start to solve specific problems in and flesh out more. We noted a few things that need to be thought about more:
this in member bodies, but the attribute syntax uses
param. It's also referable to with parameter modifiers in the extension block, which looks like a parameter declaration. Which is it; this, or a parameter? While
there's definitely some amount of hybridization going on here, we think we want to lean towards the param side, rather than the this side, because parameter names
an provide valuable context. For example, source and destination are likely clearer names for a mapping method than this and destination.After this discussion, we were able to come to a few key decisions that will help us flesh out this proposal further.
this, for the next iteration of the proposal.