Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.


Compiler implementation of the D programming language.

Source identifier.d

class Identifier: dmd.root.rootobject.RootObject;
nothrow this(const(char)* name, size_t length, int value);
Construct an identifier from a D slice

Note Since name needs to be \0 terminated for toChars, no slice overload is provided yet.

const(char)* name the identifier name There must be '\0' at name[length].
size_t length the length of name, excluding the terminating '\0'
int value Identifier value (e.g. Id.unitTest) or TOK.identifier
static nothrow Identifier anonymous();
Sentinel for an anonymous identifier.
static nothrow Identifier generateIdWithLoc(string prefix, ref const Loc loc);
Generate deterministic named identifier based on a source location, such that the name is consistent across multiple compilations. A new unique name is generated. If the prefix+location is already in the stringtable, an extra suffix is added (starting the count at "1").
string prefix first part of the identifier name.
Loc loc source location to use in the identifier name.
Identifier (inside Identifier.idPool) with deterministic name based on the source location.
static nothrow Identifier idPool(const(char)* s, uint len);
Create an identifier in the string table.
static nothrow bool isValidIdentifier(const(char)* str);

static nothrow bool isValidIdentifier(const(char)[] str);
Determine if string is a valid Identifier.
const(char)* str string to check
false for invalid