-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Closed
Labels
Area-CompilersDev17 IDE PriorityFeature - Interpolated String ImprovementsInterpolated string improvementsInterpolated string improvementsTestTest failures in roslyn-CITest failures in roslyn-CIUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.
Milestone
Description
Proposal:
dotnet/csharplang#4487
Feature Branch:
https://github.com/dotnet/roslyn/tree/features/interpolated-string
Compiler:
- LangVersion
-
DefaultInterpolatedStringHandler- Not present
- Present
- Malformed
- In an
asyncmethod with noawaitholes - In an
asyncmethod withawaitholes
- Binary operator combination of interpolated strings
-
+operator -
+operator with non interp string
-
- Custom
InterpolatedStringHandler- Incorrect ctor
- implicit conversions to
int?
- implicit conversions to
- Incorrect ctor
- Missing
AppendLiteral - Incorect
AppendLiteral- Not return
boolorvoid
- Not return
- Missing
AppendFormatted - Incorrect
AppendFormatted- Not return
boolorvoid
- Not return
- Mismatched
AppendFormattedandAppendLiteralreturn types - Handler overloads
- Pick handler over regular string for non-const
- Regular string over handler for const
- Handler over conversion to string
- Handler overloads with arguments:
-
valoverin -
valoverref
-
- Handler args as:
-
val -
ref -
in - implicit
ref(allow mismatch) -
out - normal / expanded form
- other params after handler param
- default values
- reordered at call site
-
-
InterpolatedStringHandlerArgumentAttribute- Missing
- Malformed
- Parameter names
- Single parameter name
- Multiple parameters
-
""- Passes
this - On a static method
- On a ctor
- Passes
- Incorrect parameter name
- Mix of correct and incorrect param names
- Referring to self
- Nullable analysis for format holes and handler constructor (issue Proper nullable support for interpolated string handler constructors and conversions #54583)
- Await in interpolation hole
-
Refparameter
-
- Dynamic handler
- IOperation
- Control Flow Graph
- Semantic model
- GetConstantValue on additive expressions
Productivity:
- 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:
Reactions are currently unavailable
Metadata
Metadata
Labels
Area-CompilersDev17 IDE PriorityFeature - Interpolated String ImprovementsInterpolated string improvementsInterpolated string improvementsTestTest failures in roslyn-CITest failures in roslyn-CIUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.