Commit 952a6cd
committed
[generator] Avoid interpolated strings
Context: dotnet/roslyn#55564
Context: https://discord.com/channels/732297728826277939/732297837953679412/874959446747533323
.NET 6 Preview 7 introduced a compiler regression: use of
[C#6 string interpolation][0] when `$(LangVersion)` < 10.0
results in a CS8400 error:
error CS8400: Feature 'interpolated string handlers' is not available in C# 8.0. Please use language version 10.0 or greater.
Because `azure-pipelines.yaml` specifies `DotNetCoreVersion: 6.0.x`,
our CI machines get auto-bumped to .NET 6 Preview 7, causing *all*
PR builds to now fail with this CS8400 failure.
There are two possible solutions:
1. *Avoid* .NET 6 Preview 7.
2. Remove select use of string interpolation.
(1) was initially done on dotnet#865, by using:
DotNetCoreVersion: 6.0.100-preview.6.21355.2
However, it's not *all* use of string interpolation which triggers
the CS8400 error. It's just use of string interpolation within
`RegisterAttr.cs`, in 3 locations.
Update `RegisterAttr.cs` to use `StringBuilder.Append()` calls
instead of string interpolation. The resulting code is slightly
more annoying to read, but should perform better (slightly), and
avoids the CS8400 error.
[0]: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated1 parent ff27142 commit 952a6cd
1 file changed
+3
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
0 commit comments