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.
dmd.cond
Evaluate compile-time conditionals, such as static if version and debug.
Specification Conditional Compilation
Authors:
License:
Source cond.d
Documentation https://dlang.org/phobos/dmd_cond.html
- enum
Include
: ubyte; -
notComputed
- not computed yet
yes
- include the conditional code
no
- do not include the conditional code
- class
StaticForeach
: dmd.rootobject.RootObject; - Implements common functionality for StaticForeachDeclaration and StaticForeachStatement This performs the necessary lowerings before dmd.statementsem.makeTupleForeach can be used to expand the corresponding static foreach declaration or statement.
- ForeachStatement
aggrfe
; - Not null iff the static foreach is over an aggregate. In this case, it contains the corresponding ForeachStatement. For StaticForeachDeclaration, the body is null.
- ForeachRangeStatement
rangefe
; - Not null iff the static foreach is over a range. Exactly one of the aggrefe and
rangefe
fields is not null. See aggrfe field for more details. - bool
needExpansion
; - true if it is necessary to expand a tuple into multiple variables (see lowerNonArrayAggregate).
- void
prepare
(Scope*sc
); - Perform static foreach lowerings that are necessary in order to finally expand the static foreach using dmd.statementsem.makeTupleForeach.
- bool
ready
(); - Returns:true iff ready to call dmd.statementsem.makeTupleForeach.
- abstract class
DVCondition
: dmd.cond.Condition; - class
DebugCondition
: dmd.cond.DVCondition; -
- deprecated static void
addGlobalIdent
(const(char)*ident
);
static voidaddGlobalIdent
(stringident
);
static voidaddGlobalIdent
(const(char)[]ident
); - Add an user-supplied identifier to the list of global debug identifiersCan be called from either the driver or a debug = Ident; statement. Unlike version identifier, there isn't any reserved debug identifier so no validation takes place.Parameters:
const(char)* ident
identifier to add - @safe this(const ref Loc
loc
, Modulemod
, uintlevel
, Identifierident
); - Instantiate a new DebugConditionParameters:
Module mod
Module this node belongs to uint level
Minimum global level this condition needs to pass. Only used if ident
is null.Identifier ident
Identifier required for this condition to pass. If null, this conditiion will use an integer level. Loc loc
Location in the source file
- class
VersionCondition
: dmd.cond.DVCondition; - Node to represent a version conditionA version condition is of the form:
version (Identifier)
In user code. This class also provides means to add version identifier to the list of global (cross module) identifiers.- static void
checkReserved
(const ref Locloc
, const(char)[]ident
); - Raises an error if a version identifier is reserved.Called when setting a version identifier, e.g. -version=identifier parameter to the compiler or version = Foo in user code.Parameters:
Loc loc
Where the identifier is set const(char)[] ident
identifier being checked (ident[$] must be '\0') - deprecated static void
addGlobalIdent
(const(char)*ident
);
static voidaddGlobalIdent
(stringident
);
static voidaddGlobalIdent
(const(char)[]ident
); - Add an user-supplied global identifier to the listOnly called from the driver for -version=Ident parameters. Will raise an error if the identifier is reserved.Parameters:
const(char)* ident
identifier to add - deprecated static void
addPredefinedGlobalIdent
(const(char)*ident
);
static voidaddPredefinedGlobalIdent
(stringident
);
static voidaddPredefinedGlobalIdent
(const(char)[]ident
); - Add any global identifier to the list, without checking if it's predefinedOnly called from the driver after platform detection, and internally.Parameters:
const(char)* ident
identifier to add (ident[$] must be '\0') - @safe this(const ref Loc
loc
, Modulemod
, uintlevel
, Identifierident
); - Instantiate a new VersionConditionParameters:
Module mod
Module this node belongs to uint level
Minimum global level this condition needs to pass. Only used if ident
is null.Identifier ident
Identifier required for this condition to pass. If null, this conditiion will use an integer level. Loc loc
Location in the source file
- class
StaticIfCondition
: dmd.cond.Condition; - pure nothrow @safe bool
findCondition
(ref Identifiersids
, Identifierident
); - Find
ident
in an array of identifiers.Parameters:Identifiers ids
array of identifiers Identifier ident
identifier to search for Returns:true if found
Copyright © 1999-2024 by the D Language Foundation | Page generated by
Ddoc on Sun Nov 17 01:06:30 2024