Preserve array-based string.Concat binding

Proprietary

Group originally expanded string.Concat string/object values into an explicit array inside a proven expression-tree lambda before retargeting, and disambiguate empty calls in any context. Preserve the array overload when .NET 9 span params would prevent compilation. Retain ordinary delegates, fixed/normal-array calls, named/generic arguments, comments and conditional snapshots.

OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.PreserveStringConcatArrayBinding
mod run . --recipe=OpenRewrite.Recipes.CSharp.Migration.Dotnet.Net9.PreserveStringConcatArrayBinding

Install it once, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.