ddmd.func

Compiler implementation of the D programming language.

Members

Classes

CtorDeclaration
class CtorDeclaration
DeleteDeclaration
class DeleteDeclaration
DtorDeclaration
class DtorDeclaration
FuncAliasDeclaration
class FuncAliasDeclaration

Used as a way to import a set of functions from another scope into this one.

FuncDeclaration
class FuncDeclaration
FuncLiteralDeclaration
class FuncLiteralDeclaration
InvariantDeclaration
class InvariantDeclaration
NewDeclaration
class NewDeclaration
PostBlitDeclaration
class PostBlitDeclaration
SharedStaticCtorDeclaration
class SharedStaticCtorDeclaration
SharedStaticDtorDeclaration
class SharedStaticDtorDeclaration
StaticCtorDeclaration
class StaticCtorDeclaration
StaticDtorDeclaration
class StaticDtorDeclaration
UnitTestDeclaration
class UnitTestDeclaration

Functions

addInvariant
Expression addInvariant(Loc loc, Scope* sc, AggregateDeclaration ad, VarDeclaration vthis, bool direct)

Generate Expression to call the invariant. Input: ad aggregate with the invariant vthis variable with 'this' direct call invariant directly

getIndirection
Type getIndirection(Type t)

Returns an indirect type one step from t.

overloadApply
int overloadApply(Dsymbol fstart, scope int delegate(Dsymbol) dg)

Visit each overloaded function/template in turn, and call dg(s) on it. Exit when no more, or dg(s) returns nonzero.

resolveFuncCall
FuncDeclaration resolveFuncCall(Loc loc, Scope* sc, Dsymbol s, Objects* tiargs, Type tthis, Expressions* fargs, int flags = 0)

Given a symbol that could be either a FuncDeclaration or a function template, resolve it to a function symbol. loc instantiation location sc instantiation scope tiargs initial list of template arguments tthis if !NULL, the 'this' pointer argument fargs arguments to function flags 1: do not issue error message on no match, just return NULL 2: overloadResolve only

traverseIndirections
bool traverseIndirections(Type ta, Type tb, void* p = null, bool reversePass = false)

Returns true if memory reachable through a reference B to a value of type tb, which has been constructed with a reference A to a value of type ta available, can alias memory reachable from A based on the types involved (either directly or via any number of indirections).

Static functions

unitTestId
Identifier unitTestId(Loc loc)

Generate unique unittest function Id so we can have multiple instances per module.

Meta

Source

See Source File
$(DMDSRC _func.d)