module volta.visitor.scopemanager

Code Map

module volta.visitor.scopemanager;


class ScopeManager : NullVisitor
{
public:
	current: ir.Scope;
	functionStack: FunctionStack;


public:
	this(errSink: ErrorSink) { }
	fn enter(m: ir.Module) Status { }
	fn leave(m: ir.Module) Status { }
	fn visit(td: ir.TemplateDefinition) Status { }
	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 enter(i: ir._Interface) Status { }
	fn leave(i: ir._Interface) Status { }
	fn enter(func: ir.Function) Status { }
	fn leave(func: ir.Function) Status { }
	fn enter(bs: ir.BlockStatement) Status { }
	fn leave(bs: ir.BlockStatement) Status { }
	fn enter(e: ir.Enum) Status { }
	fn leave(e: ir.Enum) Status { }
	fn enter(ti: ir.TemplateInstance) Status { }
	fn leave(ti: ir.TemplateInstance) Status { }


protected:
	mThisModule: ir.Module;
	mErr: ErrorSink;
}