Skip to content

Commit acac158

Browse files
Remove single use of RazorCodeGenerationOptions.Builder.LanguageVersion
There's just one use of RazorCodeGenerationOptions.Builder.LanguageVersion blocking its removal, and it can easily be removed.
1 parent 437fe15 commit acac158

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/Compiler/Microsoft.CodeAnalysis.Razor.Compiler/src/Language/RazorProjectEngineBuilderExtensions.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public static RazorProjectEngineBuilder SetCSharpLanguageVersion(this RazorProje
157157

158158
// This will convert any "latest", "default" or "LatestMajor" LanguageVersions into their numerical equivalent.
159159
var effectiveCSharpLanguageVersion = LanguageVersionFacts.MapSpecifiedToEffectiveVersion(csharpLanguageVersion);
160-
builder.Features.Add(new ConfigureParserForCSharpVersionFeature(effectiveCSharpLanguageVersion));
160+
builder.Features.Add(new ConfigureParserForCSharpVersionFeature(builder.Configuration.LanguageVersion, effectiveCSharpLanguageVersion));
161161

162162
return builder;
163163
}
@@ -199,20 +199,21 @@ public void Configure(RazorCodeGenerationOptions.Builder builder)
199199
}
200200
}
201201

202-
private sealed class ConfigureParserForCSharpVersionFeature(LanguageVersion languageVersion) : RazorEngineFeatureBase, IConfigureRazorCodeGenerationOptionsFeature
202+
private sealed class ConfigureParserForCSharpVersionFeature(
203+
RazorLanguageVersion razorLanguageVersion,
204+
LanguageVersion csharpLanguageVersion)
205+
: RazorEngineFeatureBase, IConfigureRazorCodeGenerationOptionsFeature
203206
{
204-
public LanguageVersion CSharpLanguageVersion { get; } = languageVersion;
205-
206207
public int Order { get; set; }
207208

208209
public void Configure(RazorCodeGenerationOptions.Builder builder)
209210
{
210-
if (builder.LanguageVersion.Major is < 3)
211+
if (razorLanguageVersion.Major is < 3)
211212
{
212213
// Prior to 3.0 there were no C# version specific controlled features. Suppress nullability enforcement.
213214
builder.SuppressNullabilityEnforcement = true;
214215
}
215-
else if (CSharpLanguageVersion < LanguageVersion.CSharp8)
216+
else if (csharpLanguageVersion < LanguageVersion.CSharp8)
216217
{
217218
// Having nullable flags < C# 8.0 would cause compile errors.
218219
builder.SuppressNullabilityEnforcement = true;
@@ -231,13 +232,13 @@ public void Configure(RazorCodeGenerationOptions.Builder builder)
231232
builder.SuppressNullabilityEnforcement = false;
232233
}
233234

234-
if (builder.LanguageVersion.Major is >= 5)
235+
if (razorLanguageVersion.Major is >= 5)
235236
{
236237
// This is a useful optimization but isn't supported by older framework versions
237238
builder.OmitMinimizedComponentAttributeValues = true;
238239
}
239240

240-
if (CSharpLanguageVersion >= LanguageVersion.CSharp10)
241+
if (csharpLanguageVersion >= LanguageVersion.CSharp10)
241242
{
242243
builder.UseEnhancedLinePragma = true;
243244
}

0 commit comments

Comments
 (0)