module volt.lowerer.manglewriter

Code Map

module volt.lowerer.manglewriter;


//! Apply mangle symbols to Types and Functions.
class MangleWriter : NullVisitor, Pass
{
public:
	parentNames: StringStack;
	functionDepth: i32;
	aggregateDepth: i32;


public:
	this() { }
	fn transform(m: ir.Module) { }
	fn close() { }
	fn push(name: string) { }
	fn pop(name: string) { }
	fn enter(s: ir.Struct) Status { }
	fn leave(s: ir.Struct) Status { }
	fn enter(u: ir.Union) Status { }
	fn leave(u: ir.Union) Status { }
	fn enter(c: ir.Class) Status { }
	fn leave(c: ir.Class) Status { }
	fn visit(pt: ir.PrimitiveType) Status { }
	fn enter(at: ir.ArrayType) Status { }
	fn enter(sat: ir.StaticArrayType) Status { }
	fn enter(pt: ir.PointerType) Status { }
	fn enter(e: ir.Enum) Status { }
	fn enter(i: ir._Interface) Status { }
	fn enter(ft: ir.FunctionType) Status { }
	fn enter(dt: ir.DelegateType) Status { }
	fn visit(tr: ir.TypeReference) Status { }
	fn enter(aat: ir.AAType) Status { }
	fn visit(nt: ir.NullType) Status { }
	fn enter(array: ir.AmbiguousArrayType) Status { }
	fn enter(attr: ir.Attribute) Status { }
	fn enter(typeOf: ir.TypeOf) Status { }
	fn enter(ed: ir.EnumDeclaration) Status { }
	fn visit(at: ir.AutoType) Status { }
	fn visit(at: ir.NoType) Status { }
	fn enter(func: ir.Function) Status { }
	fn enter(fp: ir.FunctionParam) Status { }
	fn leave(func: ir.Function) Status { }
	fn enter(a: ir.Alias) Status { }
	fn enter(v: ir.Variable) Status { }
	fn mangleType(n: ir.Node) { }
}
class MangleWriter : NullVisitor, Pass

Apply mangle symbols to Types and Functions.