dmd.location
Encapsulates file/line/column locations.
License
Source: location.d
Documentation: https://dlang.org/phobos/dmd_location.html
-
Declaration
enum
MessageStyle
: ubyte;How code locations are formatted for diagnostic reporting
-
Declaration
digitalmars
filename.d(line): message
-
Declaration
gnu
filename.d:line: message, see https://www.gnu.org/prep/standards/html_node/Errors.html
-
-
Declaration
struct
Loc
;A source code location
Discussion
Used for error messages,
__FILE__
and__LINE__
tokens,__traits(getLocation, XXX)
, debug info etc.-
Declaration
const(char)*
filename
;zero-terminated
filename
string, either absolute or relative to cwd -
Declaration
uint
linnum
;line number, starting from 1
-
Declaration
uint
charnum
;utf8 code unit index relative to start of line, starting from 1
-
Declaration
static immutable Loc
initial
;use for default initialization of const ref Loc's
-
Declaration
static nothrow void
set
(boolshowColumns
, MessageStylemessageStyle
);Configure how display is done
Parameters
bool
showColumns
when to display columns
MessageStyle
messageStyle
digitalmars or gnu style messages
-
Declaration
const nothrow bool
equals
(ref const(Loc)loc
);Checks for equivalence by comparing the filename contents (not the pointer) and character location.
Note:
- Uses case-insensitive comparison on Windows
- Ignores
charnum
ifColumns
isfalse
.
-
Declaration
const pure nothrow @nogc @trusted bool
opEquals
(ref const(Loc)loc
);
const pure nothrow @trusted size_ttoHash
();
/opEquals
()
for AA key usagetoHash
()Discussion
Compare filename contents (case-sensitively on Windows too), not the pointer - a static foreach loop repeatedly mixing in a mixin may lead to multiple equivalent filenames (
foo.d-mixin-<line>
), e.g., for test/runnable/test18880.d. -
Declaration
const pure nothrow bool
isValid
();Return Value
true
if Loc has been set to other than the default initialization
-