public GeneratedDelegate(MethodBodyContext context, GeneratedMethod method, DelegateGenerator generator) { this.context = context; this.method = method; this.generator = generator; }
public GeneratedVariable CreateVariable(Func <BuilderBundle> variableType) { GeneratedMethod.AddLocal(variableType); return(new GeneratedVariable(variableType, GeneratedMethod.LocalCount - 1, TypeGenerationContext.TypeGenerationActions, GeneratedMethod)); }
internal void SetMethod(GeneratedMethod method) { GeneratedMethod = method; }
public Func <ILocalIndexer> Instantiate(Func <BuilderBundle> type, Type[] constructorArguments) { return(() => new LocalIndexer(GeneratedMethod.Instantiate(type, constructorArguments))); }
public GeneratedArray CreateArray(Type variableType) { GeneratedMethod.AddLocal(variableType.MakeArrayType()); return(new GeneratedArray(GeneratedMethod.LocalCount - 1, TypeGenerationContext.TypeGenerationActions, GeneratedMethod)); }
public void TargettingSelf() { GeneratedMethod.TargettingSelf(); }
public Func <ILocalIndexer> Instantiate(Type type, Type[] constructorArguments, ILocalIndexer[] arguments) { return(() => new LocalIndexer(GeneratedMethod.Instantiate(type, constructorArguments, arguments))); }
public void Return() { MethodContext.ReturnDeclared = true; GeneratedMethod.ReturnFrom(); }
public Func <ILocalIndexer> InstantiateArray <TType>(int size) { return(() => new LocalIndexer(GeneratedMethod.InstantiateArray(typeof(TType), size))); }
public ILocalIndexer Call(Func <GeneratedMethod> info, Func <List <GeneratedField> > fields) { return(GeneratedMethod.Call(info, fields)); }
public void Return(ILocalIndexer index) { MethodContext.ReturnDeclared = true; GeneratedMethod.Return(() => index); }
public ILocalIndexer Call(GeneratedMethod info, Type returnType) { return(GeneratedMethod.Call(() => info, returnType)); }
public ILocalIndexer Call(Func <MethodInfo> info, Func <List <IGeneratedParameter> > parameters) { return(GeneratedMethod.Call(info, parameters)); }
public ILocalIndexer CallBase(MethodInfo info) { return(GeneratedMethod.CallBase(info, TypeGenerationContext.BaseType)); }
public Func <ILocalIndexer> Instantiate(Func <ConstructorBuilder> type) { return(() => new LocalIndexer(GeneratedMethod.Instantiate(type))); }
public OverrideMethodContext(MethodInfo info, GeneratedMethod method, BaseTypeGenerationContext typeGenerationContext) : base(typeGenerationContext) { this.info = info; SetMethod(method); }