From 0ba5174cdde8543380b088d04e0fce5005e3bb7d Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Thu, 2 Aug 2018 08:47:01 +0200 Subject: [PATCH] Add comment about language version used during decompilation. --- .../MetadataAsSource/MetadataAsSourceFileService.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/EditorFeatures/Core/Implementation/MetadataAsSource/MetadataAsSourceFileService.cs b/src/EditorFeatures/Core/Implementation/MetadataAsSource/MetadataAsSourceFileService.cs index 9dcdccb1b3b..837a1ecbbbf 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); } -- GitLab