diff --git a/src/EditorFeatures/Core/Implementation/MetadataAsSource/MetadataAsSourceFileService.cs b/src/EditorFeatures/Core/Implementation/MetadataAsSource/MetadataAsSourceFileService.cs index 9dcdccb1b3bcd0cd7589b26094a39b94cdb128ee..837a1ecbbbf95c6a3b8a0df61597537dc1593bc1 100644 --- a/src/EditorFeatures/Core/Implementation/MetadataAsSource/MetadataAsSourceFileService.cs +++ b/src/EditorFeatures/Core/Implementation/MetadataAsSource/MetadataAsSourceFileService.cs @@ -225,11 +225,13 @@ private async Task DecompileSymbolAsync(Document temporaryDocument, IS } // Load the assembly. - // TODO: Use a different PEFile overload that allows us to reuse the PEReader or Stream already created by Roslyn. + // TODO: Use a different PEFile ctor overload that allows us to reuse the PEReader or Stream already created by Roslyn. var pefile = new PEFile(assemblyLocation, PEStreamOptions.PrefetchEntireImage); // Initialize a decompiler with default settings. - var decompiler = new CSharpDecompiler(pefile, new RoslynAssemblyResolver(compilation), new DecompilerSettings()); + // TODO: Use language version currently used by the project. + var settings = new DecompilerSettings(LanguageVersion.Latest); + var decompiler = new CSharpDecompiler(pefile, new RoslynAssemblyResolver(compilation), settings); // Escape invalid identifiers to prevent Roslyn from failing to parse the generated code. // (This happens for example, when there is compiler-generated code that is not yet recognized/transformed by the decompiler.) decompiler.AstTransforms.Add(new EscapeInvalidIdentifiers()); @@ -287,7 +289,7 @@ public PEFile Resolve(IAssemblyReference name) // reference assemblies should be fine here, we only need the metadata of references. var reference = parentCompilation.GetMetadataReference(assembly); - // TODO: Use a different PEFile overload that allows us to reuse the PEReader or Stream already created by Roslyn. + // TODO: Use a different PEFile ctor overload that allows us to reuse the PEReader or Stream already created by Roslyn. return new PEFile(reference.Display, PEStreamOptions.PrefetchMetadata); }