mirror of
https://github.com/Smaug123/WoofWare.PawPrint
synced 2025-10-05 14:18:40 +00:00
Add namespace info to types (#75)
This commit is contained in:
@@ -23,6 +23,7 @@ type ConcreteType<'typeGeneric when 'typeGeneric : comparison and 'typeGeneric :
|
||||
_AssemblyName : AssemblyName
|
||||
_Definition : ComparableTypeDefinitionHandle
|
||||
_Name : string
|
||||
_Namespace : string
|
||||
_Generics : 'typeGeneric list
|
||||
}
|
||||
|
||||
@@ -30,6 +31,7 @@ type ConcreteType<'typeGeneric when 'typeGeneric : comparison and 'typeGeneric :
|
||||
member this.Definition : ComparableTypeDefinitionHandle = this._Definition
|
||||
member this.Generics : 'typeGeneric list = this._Generics
|
||||
member this.Name = this._Name
|
||||
member this.Namespace = this._Namespace
|
||||
|
||||
override this.Equals (other : obj) : bool =
|
||||
match other with
|
||||
@@ -71,6 +73,7 @@ type RuntimeConcreteType = ConcreteType<TypeDefn>
|
||||
module ConcreteType =
|
||||
let make
|
||||
(assemblyName : AssemblyName)
|
||||
(ns : string)
|
||||
(name : string)
|
||||
(defn : TypeDefinitionHandle)
|
||||
(generics : TypeDefn list)
|
||||
@@ -80,12 +83,14 @@ module ConcreteType =
|
||||
_AssemblyName = assemblyName
|
||||
_Definition = ComparableTypeDefinitionHandle.Make defn
|
||||
_Name = name
|
||||
_Namespace = ns
|
||||
_Generics = generics
|
||||
}
|
||||
|
||||
let make'
|
||||
(assemblyName : AssemblyName)
|
||||
(defn : TypeDefinitionHandle)
|
||||
(ns : string)
|
||||
(name : string)
|
||||
(genericParamCount : int)
|
||||
: ConcreteType<FakeUnit>
|
||||
@@ -94,6 +99,7 @@ module ConcreteType =
|
||||
_AssemblyName = assemblyName
|
||||
_Definition = ComparableTypeDefinitionHandle.Make defn
|
||||
_Name = name
|
||||
_Namespace = ns
|
||||
_Generics = List.replicate genericParamCount FakeUnit.FakeUnit
|
||||
}
|
||||
|
||||
@@ -110,4 +116,5 @@ module ConcreteType =
|
||||
_Definition = x._Definition
|
||||
_Generics = generics
|
||||
_Name = x._Name
|
||||
_Namespace = x._Namespace
|
||||
}
|
||||
|
@@ -51,10 +51,12 @@ module FieldInfo =
|
||||
let fieldSig = def.DecodeSignature (TypeDefn.typeProvider assembly, ())
|
||||
let declaringType = def.GetDeclaringType ()
|
||||
let typeGenerics = mr.GetTypeDefinition(declaringType).GetGenericParameters().Count
|
||||
let declaringTypeName = mr.GetString (mr.GetTypeDefinition(declaringType).Name)
|
||||
let decType = mr.GetTypeDefinition (declaringType)
|
||||
let declaringTypeNamespace = mr.GetString decType.Namespace
|
||||
let declaringTypeName = mr.GetString decType.Name
|
||||
|
||||
let declaringType =
|
||||
ConcreteType.make' assembly declaringType declaringTypeName typeGenerics
|
||||
ConcreteType.make' assembly declaringType declaringTypeNamespace declaringTypeName typeGenerics
|
||||
|
||||
{
|
||||
Name = name
|
||||
|
@@ -671,8 +671,11 @@ module MethodInfo =
|
||||
|
||||
let declaringType = methodDef.GetDeclaringType ()
|
||||
|
||||
let declaringTypeName =
|
||||
metadataReader.GetString (metadataReader.GetTypeDefinition(declaringType).Name)
|
||||
let declaringDefn = metadataReader.GetTypeDefinition (declaringType)
|
||||
|
||||
let declaringTypeNamespace = metadataReader.GetString declaringDefn.Namespace
|
||||
|
||||
let declaringTypeName = metadataReader.GetString declaringDefn.Name
|
||||
|
||||
let declaringTypeGenericParams =
|
||||
metadataReader.GetTypeDefinition(declaringType).GetGenericParameters().Count
|
||||
@@ -696,7 +699,12 @@ module MethodInfo =
|
||||
GenericParameter.readAll metadataReader (methodDef.GetGenericParameters ())
|
||||
|
||||
let declaringType =
|
||||
ConcreteType.make' assemblyName declaringType declaringTypeName declaringTypeGenericParams
|
||||
ConcreteType.make'
|
||||
assemblyName
|
||||
declaringType
|
||||
declaringTypeNamespace
|
||||
declaringTypeName
|
||||
declaringTypeGenericParams
|
||||
|
||||
{
|
||||
DeclaringType = declaringType
|
||||
|
Reference in New Issue
Block a user