C# Class clojure.lang.GenClass

显示文件 Open project: richhickey/clojure-clr Class Usage Examples

Public Methods

Method Description
GenerateClass ( string className, Type superClass, ISeq interfaces, ISeq ctors, ISeq ctorTypes, ISeq methods, IPersistentMap exposesFields, IPersistentMap exposesMethods, string prefix, bool hasMain, string factoryName, string stateName, string initName, string postInitName, string implCname, string implNamespace, bool loadImplNamespace ) : Type
SaveContext ( ) : void

Private Methods

Method Description
ComputeOverloadNames ( Dictionary overloads ) : HashSet
ComputeOverloads ( List sigs ) : List>.Dictionary
CreateSuperCall ( TypeBuilder proxyTB, Symbol p, MethodInfo mi ) : void
CreateTypeArray ( ISeq seq ) : System.Type[]
CreateTypeArray ( ParameterInfo ps ) : System.Type[]
DefineCtors ( TypeBuilder proxyTB, Type superClass, string initName, string postInitName, ISeq ctorsTypes, FieldBuilder initFB, FieldBuilder postInitFB, FieldBuilder stateFB, string factoryName ) : void
DefineStateField ( TypeBuilder proxyTB, string stateName ) : FieldBuilder
DefineStaticCtor ( TypeBuilder proxyTB, string prefix, FieldBuilder>.Dictionary varMap, bool loadImplNameSpace, string implNamespace, string implCname ) : void

Set up Var fields and (maybe) load assembly for the namespace.

DefineStaticFields ( TypeBuilder proxyTB, HashSet varNames ) : FieldBuilder>.Dictionary
EmitExposers ( TypeBuilder proxyTB, Type superClass, IPersistentMap exposesFields ) : void
EmitForwardingMethod ( TypeBuilder proxyTB, bool isStatic, FieldBuilder regularFB, FieldBuilder overloadFB, MethodSignature sig, ElseGenDelegate elseGen ) : void
EmitGetVar ( ILGen gen, FieldBuilder fb ) : void
EmitMain ( GenContext context, TypeBuilder proxyTB, string mainName, FieldBuilder mainFB ) : void
EmitMethods ( TypeBuilder proxyTB, List sigs, Dictionary overloads, FieldBuilder>.Dictionary varMap, IPersistentMap exposesMethods ) : void
EmitUnsupported ( ILGen gen, string name ) : void
EscapeTypeName ( Type t ) : string
GetAllMethods ( Type type, HashSet considered, List todo, string source ) : void
GetAllSignatures ( Type superClass, List interfaces, ISeq methods ) : List
GetStaticVarName ( string var ) : string
OverloadName ( MethodSignature sig ) : string

Method Details

GenerateClass() public static method

public static GenerateClass ( string className, Type superClass, ISeq interfaces, ISeq ctors, ISeq ctorTypes, ISeq methods, IPersistentMap exposesFields, IPersistentMap exposesMethods, string prefix, bool hasMain, string factoryName, string stateName, string initName, string postInitName, string implCname, string implNamespace, bool loadImplNamespace ) : Type
className string
superClass System.Type
interfaces ISeq
ctors ISeq
ctorTypes ISeq
methods ISeq
exposesFields IPersistentMap
exposesMethods IPersistentMap
prefix string
hasMain bool
factoryName string
stateName string
initName string
postInitName string
implCname string
implNamespace string
loadImplNamespace bool
return System.Type

SaveContext() public static method

public static SaveContext ( ) : void
return void