@@ -2587,6 +2587,14 @@ let inline internal resetTypeKind flags =
25872587let (| HasFlag | _ |) ( flag : ILTypeDefAdditionalFlags ) flags =
25882588 flags &&& flag = flag
25892589
2590+ let inline typeKindByNames extendsName typeName =
2591+ match extendsName with
2592+ | " System.Enum" -> ILTypeDefAdditionalFlags.Enum
2593+ | " System.Delegate" when typeName <> " System.MulticastDelegate" -> ILTypeDefAdditionalFlags.Delegate
2594+ | " System.MulticastDelegate" -> ILTypeDefAdditionalFlags.Delegate
2595+ | " System.ValueType" when typeName <> " System.Enum" -> ILTypeDefAdditionalFlags.ValueType
2596+ | _ -> ILTypeDefAdditionalFlags.Class
2597+
25902598let typeKindOfFlags nm ( super : ILType option ) flags =
25912599 if ( flags &&& 0x00000020 ) <> 0x0 then
25922600 ILTypeDefAdditionalFlags.Interface
@@ -2595,18 +2603,7 @@ let typeKindOfFlags nm (super: ILType option) flags =
25952603 | None -> ILTypeDefAdditionalFlags.Class
25962604 | Some ty ->
25972605 let name = ty.TypeSpec.Name
2598-
2599- if name = " System.Enum" then
2600- ILTypeDefAdditionalFlags.Enum
2601- elif
2602- ( name = " System.Delegate" && nm <> " System.MulticastDelegate" )
2603- || name = " System.MulticastDelegate"
2604- then
2605- ILTypeDefAdditionalFlags.Delegate
2606- elif name = " System.ValueType" && nm <> " System.Enum" then
2607- ILTypeDefAdditionalFlags.ValueType
2608- else
2609- ILTypeDefAdditionalFlags.Class
2606+ typeKindByNames name nm
26102607
26112608let convertTypeAccessFlags access =
26122609 match access with
0 commit comments