From 4575ef65d3221fec641851334918b38ec145ef1e Mon Sep 17 00:00:00 2001 From: SilverFox Date: Mon, 2 Dec 2019 11:35:59 +0800 Subject: [PATCH] Display System.Void as struct --- ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs | 3 ++- ILSpy/TreeNodes/TypeTreeNode.cs | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs b/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs index ecf39fc27..75b516614 100644 --- a/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs @@ -1362,6 +1362,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax ClassType classType; switch (typeDefinition.Kind) { case TypeKind.Struct: + case TypeKind.Void: classType = ClassType.Struct; modifiers &= ~Modifiers.Sealed; if (ShowModifiers) { @@ -1420,7 +1421,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax decl.BaseTypes.Add(ConvertType(typeDefinition.EnumUnderlyingType)); } // if the declared type is a struct, ignore System.ValueType - } else if (typeDefinition.Kind == TypeKind.Struct && baseType.IsKnownType(KnownTypeCode.ValueType)) { + } else if ((typeDefinition.Kind == TypeKind.Struct || typeDefinition.Kind == TypeKind.Void) && baseType.IsKnownType(KnownTypeCode.ValueType)) { continue; // always ignore System.Object } else if (baseType.IsKnownType(KnownTypeCode.Object)) { diff --git a/ILSpy/TreeNodes/TypeTreeNode.cs b/ILSpy/TreeNodes/TypeTreeNode.cs index 750c5bc61..be9bc9546 100644 --- a/ILSpy/TreeNodes/TypeTreeNode.cs +++ b/ILSpy/TreeNodes/TypeTreeNode.cs @@ -122,6 +122,7 @@ namespace ICSharpCode.ILSpy.TreeNodes case TypeKind.Interface: return TypeIcon.Interface; case TypeKind.Struct: + case TypeKind.Void: return TypeIcon.Struct; case TypeKind.Delegate: return TypeIcon.Delegate;