public override void CallToString() { var variable = Il.DeclareLocal(_handleType); Il.SetLocal(variable); Il.LoadLocalAddress(variable); Il.Call(_tostr); }
public LocalHolder DeclareLocal(Type type) { Queue <GroboIL.Local> queue; if (!locals.TryGetValue(type, out queue)) { queue = new Queue <GroboIL.Local>(); locals.Add(type, queue); } if (queue.Count == 0) { queue.Enqueue(Il.DeclareLocal(type)); } return(new LocalHolder(this, type, queue.Dequeue())); }