dotnet / dotnet/csharplang

[Proposal]: Better Conversion from Collection Expression (VS 17.12, .NET 9)

Open
#8,374 0 comments 0 reactions 2 assignees Claimed by @CyrusNajmabadi View on GitHub
Implemented Needs ECMA Spec Proposal champion
Dominant language
C#
Stars
12.7k
Forks
1.1k
Avg merge
11h 1m
Merged PRs (30d)
3

Description

# Better conversion from collection expression

* [x] Proposed
* [ ] Prototype: Not Started
* [ ] Implementation: Not Started
* [x] Specification: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-13.0/collection-expressions-better-conversion.md

## Summary
[summary]: #summary

Updates to the better conversion rules to be more consistent with params, and better handle current ambiguity scenarios. For example, `ReadOnlySpan` vs `ReadOnlySpan` can currently cause ambiguities during overload resolution for `[""]`. This is an issue because .NET 9 is adding such methods to `string.Concat`, which we need to address in the language.

## Design meetings

- [Jul 17, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-07-17.md#better-conversion-from-collection-expression-with-readonlyspant-overloads): Ambiguity between `ReadOnlySpan` overloads
- [Jul 24, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-07-24.md#better-conversion-from-collection-expression-with-readonlyspant-overloads): Narrow fix versus recursive approach
- [Aug 19, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-08-19.md): Preferring element type
- [Aug 21, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-08-21.md#better-conversion-from-collection-expression): Review, prefering span types
- [Sep 11, 2024](https://github.com/dotnet/csharplang/blob/main/meetings/2024/LDM-2024-09-11.md#better-conversion-from-collection-expression-and-params-collections): Review

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.