[ ] Intellisense for methods that have builder arguments
[ ] Verify experience on some methods/overloads that will get builders (string.Create, Debug.Assert, Debug.Write{Line}If, StringBuilder.Append{Line}, MemoryExtensions.TryWrite)
[ ] Extract interpolated string to a local (risks changing meaning/perf)
[ ] Find all refs on custom handler type and constructor, and append methods
[ ] go to definition
LDM:
[x] conversion operator to string? (details) (answer: no)
[x] parentheses and additive expressions (details) (answer: allow parens and suppressions)
Proposal: https://github.com/dotnet/csharplang/issues/4487
Spec: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-10.0/improved-interpolated-strings.md
Feature Branch: https://github.com/dotnet/roslyn/tree/features/interpolated-string
Compiler:
DefaultInterpolatedStringHandler
async
method with noawait
holesasync
method withawait
holes+
operator+
operator with non interp stringInterpolatedStringHandler
int
?AppendLiteral
AppendLiteral
bool
orvoid
AppendFormatted
AppendFormatted
bool
orvoid
AppendFormatted
andAppendLiteral
return typesval
overin
val
overref
val
ref
in
ref
(allow mismatch)out
InterpolatedStringHandlerArgumentAttribute
""
this
Ref
parameterProductivity:
string.Create
,Debug.Assert
,Debug.Write{Line}If
,StringBuilder.Append{Line}
,MemoryExtensions.TryWrite
)LDM: