mirror of https://github.com/icsharpcode/ILSpy.git
Browse Source
ILSpyTreeNode cached the SettingsService (and LanguageService) in a static field that was never invalidated. In the headless suite the MEF container is rebuilt per test, so from the second test onward the filter cascade (ApplyFilterToChild / OnIsVisibleChanged) read a previous test's disposed SettingsService and its stale ShowApiLevel. A test that set ShowApiLevel=All on its own fresh settings then expanded a large type still had ~a third of the members marked IsHidden against the stale level, so the flattener dropped them and the rows never realised -- surfacing as an order-dependent timeout (NonPublic_Member_Rows_Render and the in-place refilter test). GetSuffixString already resolves the service fresh for exactly this reason; apply the same to CurrentLanguageSettings and LanguageService and drop the dead caches. A warm GetExport is a dictionary lookup, and in production (one container for the app lifetime) behaviour is unchanged.pull/3755/head
1 changed files with 9 additions and 6 deletions
Loading…
Reference in new issue