module volt.exceptions

Code Map

module volt.exceptions;


//! Base class for compiler exceptions.
class CompilerException : Exception
{
public:
	loc: Location;
	hasLocation: bool;
	neverIgnore: bool;
	more: CompilerError;
	fixHint: string;
	allocationLocation: string;


public:
	this(message: string, more: CompilerError, neverIgnore: bool, file: string, line: const(i32)) { }
	this(loc: const(Location), message: string, more: CompilerError, neverIgnore: bool, file: string, line: const(i32)) { }


protected:
	fn errorFormat() string { }
	fn locationFormat() string { }
}

//! Exception for compiler error messages arising from source code.
class CompilerError : CompilerException
{
public:
	this(message: string, file: string, line: const(i32)) { }
	this(message: string, more: CompilerError, file: string, line: const(i32)) { }
	this(loc: const(Location), message: string, neverIgnore: bool, file: string, line: const(i32)) { }
	this(loc: const(Location), message: string, file: string, line: const(i32)) { }
	this(loc: const(Location), message: string, more: CompilerError, file: string, line: const(i32)) { }
	this(loc: const(Location), message: string, more: CompilerError, neverIgnore: bool, file: string, line: const(i32)) { }
}

class MissingSemicolonError : CompilerError
{
public:
	this(loc: Location, type: string, file: string, line: const(i32)) { }
}

class PairMismatchError : CompilerError
{
public:
	this(pairStart: Location, loc: Location, type: string, token: string, file: string, line: const(i32)) { }
}

class ArgumentMismatchError : CompilerError
{
public:
	enum unspecified;


public:
	argNumber: ptrdiff_t;


public:
	this(loc: const(Location), message: string, file: string, line: const(i32)) { }
	this(loc: const(Location), message: string, argNumber: ptrdiff_t, file: string, line: const(i32)) { }
}

//! Aka Internal Compiler Error, aka ICE, aka CompilerPanic.
class CompilerPanic : CompilerException
{
public:
	this(message: string, file: string, line: const(i32)) { }
	this(loc: const(Location), message: string, file: string, line: const(i32)) { }


protected:
	fn errorFormat() string { }
	fn locationFormat() string { }
}

fn errorMessageOnly(loc: const(Location), message: string, file: string, line: const(i32)) { }
class CompilerException : Exception

Base class for compiler exceptions.

class CompilerError : CompilerException

Exception for compiler error messages arising from source code.

Is subclassed by more specialized error messages.

class CompilerPanic : CompilerException

Aka Internal Compiler Error, aka ICE, aka CompilerPanic.