mirror of
https://github.com/icsharpcode/ILSpy.git
synced 2026-10-12 02:15:58 +00:00
Searching a package resolves its entries by file name against a case-insensitive cache, which is right for an assembly reference but wrong for an archive entry: two entries differing only in case are two files, and they collapsed onto one LoadedAssembly, so one was searched twice and the other never. Keying the cache by the entry itself separates them, and the entry's package-relative path becomes the assembly's file name, which is what tells the copies of one assembly in a multi-target package apart wherever a search result shows a location. Cancellation was only checked between top-level list entries, so a walk the user had already replaced by typing another character kept extracting package entries alongside the run they were waiting for. The omnibar had no way to end its run at all: its view model is per document tab and nothing cancelled it when the tab went away. Assisted-by: Claude:claude-opus-5[1m]:Claude Code