@@ -110,6 +110,7 @@ public CSharpTest()
110110 public CSharpTest ( LanguageVersion ? languageVersion )
111111 {
112112 this . ReferenceAssemblies = GenericAnalyzerTest . ReferenceAssemblies ;
113+ this . LanguageVersion = languageVersion ;
113114
114115 this . OptionsTransforms . Add ( options =>
115116 options
@@ -120,15 +121,6 @@ public CSharpTest(LanguageVersion? languageVersion)
120121 this . TestState . AdditionalFilesFactories . Add ( GenerateSettingsFile ) ;
121122 this . CodeActionValidationMode = CodeActionValidationMode . None ;
122123
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-
132124 this . SolutionTransforms . Add ( ( solution , projectId ) =>
133125 {
134126 var corlib = solution . GetProject ( projectId ) . MetadataReferences . OfType < PortableExecutableReference > ( )
@@ -248,6 +240,8 @@ public CSharpTest(LanguageVersion? languageVersion)
248240 /// </value>
249241 public List < string > ExplicitlyEnabledDiagnostics { get ; } = new List < string > ( ) ;
250242
243+ private LanguageVersion ? LanguageVersion { get ; }
244+
251245 protected override CompilationOptions CreateCompilationOptions ( )
252246 {
253247 var compilationOptions = base . CreateCompilationOptions ( ) ;
@@ -261,6 +255,17 @@ protected override CompilationOptions CreateCompilationOptions()
261255 return compilationOptions . WithSpecificDiagnosticOptions ( specificDiagnosticOptions ) ;
262256 }
263257
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+
264269 protected override IEnumerable < CodeFixProvider > GetCodeFixProviders ( )
265270 {
266271 var codeFixProvider = new TCodeFix ( ) ;
0 commit comments