diff --git a/ILSpy/TreeNodes/AssemblyListTreeNode.cs b/ILSpy/TreeNodes/AssemblyListTreeNode.cs index 67aa3b50d..2341e15bc 100644 --- a/ILSpy/TreeNodes/AssemblyListTreeNode.cs +++ b/ILSpy/TreeNodes/AssemblyListTreeNode.cs @@ -184,7 +184,8 @@ namespace ICSharpCode.ILSpy.TreeNodes var bundle = FindAssemblyNode(asm.ParentBundle); if (bundle == null) return null; - foreach (var node in TreeTraversal.PreOrder(bundle.Children, r => (r as PackageFolderTreeNode)?.Children).OfType()) + bundle.EnsureLazyChildren(); + foreach (var node in TreeTraversal.PreOrder(bundle.Children, ExpandAndGetChildren).OfType()) { if (node.LoadedAssembly == asm) return node; @@ -199,6 +200,14 @@ namespace ICSharpCode.ILSpy.TreeNodes } } return null; + + static SharpTreeNodeCollection ExpandAndGetChildren(SharpTreeNode node) + { + if (node is not PackageFolderTreeNode) + return null; + node.EnsureLazyChildren(); + return node.Children; + } } ///