@@ -110,6 +110,7 @@ public CSharpTest()
110
110
public CSharpTest ( LanguageVersion ? languageVersion )
111
111
{
112
112
this . ReferenceAssemblies = GenericAnalyzerTest . ReferenceAssemblies ;
113
+ this . LanguageVersion = languageVersion ;
113
114
114
115
this . OptionsTransforms . Add ( options =>
115
116
options
@@ -120,15 +121,6 @@ public CSharpTest(LanguageVersion? languageVersion)
120
121
this . TestState . AdditionalFilesFactories . Add ( GenerateSettingsFile ) ;
121
122
this . CodeActionValidationMode = CodeActionValidationMode . None ;
122
123
123
- if ( languageVersion != null )
124
- {
125
- this . SolutionTransforms . Add ( ( solution , projectId ) =>
126
- {
127
- var parseOptions = ( CSharpParseOptions ) solution . GetProject ( projectId ) . ParseOptions ;
128
- return solution . WithProjectParseOptions ( projectId , parseOptions . WithLanguageVersion ( languageVersion . Value ) ) ;
129
- } ) ;
130
- }
131
-
132
124
this . SolutionTransforms . Add ( ( solution , projectId ) =>
133
125
{
134
126
var corlib = solution . GetProject ( projectId ) . MetadataReferences . OfType < PortableExecutableReference > ( )
@@ -248,6 +240,8 @@ public CSharpTest(LanguageVersion? languageVersion)
248
240
/// </value>
249
241
public List < string > ExplicitlyEnabledDiagnostics { get ; } = new List < string > ( ) ;
250
242
243
+ private LanguageVersion ? LanguageVersion { get ; }
244
+
251
245
protected override CompilationOptions CreateCompilationOptions ( )
252
246
{
253
247
var compilationOptions = base . CreateCompilationOptions ( ) ;
@@ -261,6 +255,17 @@ protected override CompilationOptions CreateCompilationOptions()
261
255
return compilationOptions . WithSpecificDiagnosticOptions ( specificDiagnosticOptions ) ;
262
256
}
263
257
258
+ protected override ParseOptions CreateParseOptions ( )
259
+ {
260
+ var parseOptions = base . CreateParseOptions ( ) ;
261
+ if ( this . LanguageVersion is { } languageVersion )
262
+ {
263
+ parseOptions = ( ( CSharpParseOptions ) parseOptions ) . WithLanguageVersion ( languageVersion ) ;
264
+ }
265
+
266
+ return parseOptions ;
267
+ }
268
+
264
269
protected override IEnumerable < CodeFixProvider > GetCodeFixProviders ( )
265
270
{
266
271
var codeFixProvider = new TCodeFix ( ) ;
0 commit comments