@@ -217,10 +217,8 @@ protected override void LoadChildren()
217217 switch ( loadResult . MetadataFile . Kind )
218218 {
219219 case MetadataFile . MetadataFileKind . PortableExecutable :
220- LoadChildrenForPEFile ( loadResult . MetadataFile ) ;
221- break ;
222220 case MetadataFile . MetadataFileKind . WebCIL :
223- LoadChildrenForWebCilFile ( ( WebCilFile ) loadResult . MetadataFile ) ;
221+ LoadChildrenForExecutableFile ( loadResult . MetadataFile ) ;
224222 break ;
225223 default :
226224 var metadata = loadResult . MetadataFile ;
@@ -244,73 +242,7 @@ protected override void LoadChildren()
244242 }
245243 }
246244
247- void LoadChildrenForPEFile ( MetadataFile module )
248- {
249- typeSystem = LoadedAssembly . GetTypeSystemOrNull ( ) ;
250- var assembly = ( MetadataModule ) typeSystem . MainModule ;
251- this . Children . Add ( new MetadataTreeNode ( module , Resources . Metadata ) ) ;
252- Decompiler . DebugInfo . IDebugInfoProvider debugInfo = LoadedAssembly . GetDebugInfoOrNull ( ) ;
253- if ( debugInfo is PortableDebugInfoProvider ppdb
254- && ppdb . GetMetadataReader ( ) is System . Reflection . Metadata . MetadataReader reader )
255- {
256- this . Children . Add ( new MetadataTreeNode ( ppdb . ToMetadataFile ( ) , $ "Debug Metadata ({ ( ppdb . IsEmbedded ? "Embedded" : "From portable PDB" ) } )") ) ;
257- }
258- this . Children . Add ( new ReferenceFolderTreeNode ( module , this ) ) ;
259- if ( module . Resources . Any ( ) )
260- this . Children . Add ( new ResourceListTreeNode ( module ) ) ;
261- foreach ( NamespaceTreeNode ns in namespaces . Values )
262- {
263- ns . Children . Clear ( ) ;
264- }
265- namespaces . Clear ( ) ;
266- bool useNestedStructure = SettingsService . DisplaySettings . UseNestedNamespaceNodes ;
267- foreach ( var type in assembly . TopLevelTypeDefinitions . OrderBy ( t => t . ReflectionName , NaturalStringComparer . Instance ) )
268- {
269- var ns = GetOrCreateNamespaceTreeNode ( type . Namespace ) ;
270- TypeTreeNode node = new TypeTreeNode ( type , this ) ;
271- typeDict [ ( TypeDefinitionHandle ) type . MetadataToken ] = node ;
272- ns . Children . Add ( node ) ;
273- }
274- foreach ( NamespaceTreeNode ns in namespaces . Values
275- . Where ( ns => ns . Children . Count > 0 && ns . Parent == null )
276- . OrderBy ( n => n . Name , NaturalStringComparer . Instance ) )
277- {
278- this . Children . Add ( ns ) ;
279- SetPublicAPI ( ns ) ;
280- }
281-
282- NamespaceTreeNode GetOrCreateNamespaceTreeNode ( string @namespace )
283- {
284- if ( ! namespaces . TryGetValue ( @namespace , out NamespaceTreeNode ns ) )
285- {
286- if ( useNestedStructure )
287- {
288- int decimalIndex = @namespace . LastIndexOf ( '.' ) ;
289- if ( decimalIndex < 0 )
290- {
291- var escapedNamespace = Language . EscapeName ( @namespace ) ;
292- ns = new NamespaceTreeNode ( escapedNamespace ) ;
293- }
294- else
295- {
296- var parentNamespaceTreeNode = GetOrCreateNamespaceTreeNode ( @namespace . Substring ( 0 , decimalIndex ) ) ;
297- var escapedInnerNamespace = Language . EscapeName ( @namespace . Substring ( decimalIndex + 1 ) ) ;
298- ns = new NamespaceTreeNode ( escapedInnerNamespace ) ;
299- parentNamespaceTreeNode . Children . Add ( ns ) ;
300- }
301- }
302- else
303- {
304- var escapedNamespace = Language . EscapeName ( @namespace ) ;
305- ns = new NamespaceTreeNode ( escapedNamespace ) ;
306- }
307- namespaces . Add ( @namespace , ns ) ;
308- }
309- return ns ;
310- }
311- }
312-
313- void LoadChildrenForWebCilFile ( WebCilFile module )
245+ void LoadChildrenForExecutableFile ( MetadataFile module )
314246 {
315247 typeSystem = LoadedAssembly . GetTypeSystemOrNull ( ) ;
316248 var assembly = ( MetadataModule ) typeSystem . MainModule ;
0 commit comments