From 2938e92dc80a97a8d89287d3ca4e38a171c74e94 Mon Sep 17 00:00:00 2001 From: Andreas Weizel Date: Sat, 18 Feb 2023 00:50:00 +0100 Subject: [PATCH] Explicitly remove property accessors from search results Currently backend won't decompile accessors, because they don't appear as normal members in tree, although they come back as normal type members from search. --- .../src/ILSpy.Backend/Decompiler/ILSpySettings.cs | 2 -- .../src/ILSpy.Backend/Decompiler/SearchBackend.cs | 12 +++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/src/ILSpy.Backend/Decompiler/ILSpySettings.cs b/backend/src/ILSpy.Backend/Decompiler/ILSpySettings.cs index 6027f6f4..283cfdf2 100644 --- a/backend/src/ILSpy.Backend/Decompiler/ILSpySettings.cs +++ b/backend/src/ILSpy.Backend/Decompiler/ILSpySettings.cs @@ -11,8 +11,6 @@ public ILSpySettings() public DecompilerSettings DecompilerSettings { get; } = new DecompilerSettings { ThrowOnAssemblyResolveErrors = false, - AutomaticProperties = false, - AutomaticEvents = false }; } } diff --git a/backend/src/ILSpy.Backend/Decompiler/SearchBackend.cs b/backend/src/ILSpy.Backend/Decompiler/SearchBackend.cs index b0d96b19..a2114854 100644 --- a/backend/src/ILSpy.Backend/Decompiler/SearchBackend.cs +++ b/backend/src/ILSpy.Backend/Decompiler/SearchBackend.cs @@ -89,7 +89,7 @@ await Task.Factory.StartNew(() => { }, cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Current).ConfigureAwait(false); - return resultQueue.OrderBy(r => r, resultsComparer).Select(ConvertResultToNode); + return resultQueue.Where(IsNotAccessor).OrderBy(r => r, resultsComparer).Select(ConvertResultToNode); } catch (TaskCanceledException) { @@ -100,6 +100,16 @@ await Task.Factory.StartNew(() => { return Enumerable.Empty(); } + bool IsNotAccessor(SearchResult searchResult) + { + if (searchResult is MemberSearchResult memberSearchResult) + { + return memberSearchResult.Member.SymbolKind != SymbolKind.Accessor; + } + + return true; + } + NodeData ConvertResultToNode(SearchResult result) { var memberSearchResult = result as MemberSearchResult;