TypeFunction

Constructors

this
this(ParameterList pl, Type treturn, LINK linkage, StorageClass stc)
Undocumented in source.

Members

Functions

accept
void accept(Visitor v)
Undocumented in source. Be warned that the author may not have intended to support it.
addStorageClass
Type addStorageClass(StorageClass stc)
Undocumented in source. Be warned that the author may not have intended to support it.
attributesEqual
bool attributesEqual(TypeFunction other)
callMatch
MATCH callMatch(Type tthis, Expression[] args, int flag, const(char)** pMessage, Scope* sc)

'args' are being matched to function 'this' Determine match level.

checkRetType
bool checkRetType(Loc loc)
Undocumented in source. Be warned that the author may not have intended to support it.
constConv
MATCH constConv(Type to)

Extends TypeNext.constConv by also checking for matching attributes *

hasLazyParameters
bool hasLazyParameters()

Return true if there are lazy parameters.

incomplete
bool incomplete()
void incomplete(bool v)

set or get if the return type or the default arguments are removed

isDstyleVariadic
bool isDstyleVariadic()

Check for extern (D) U func(T t, ...) variadic function type, which has _arguments[] added as the first argument.

isInOutParam
bool isInOutParam()
void isInOutParam(bool v)

set or get if the function has the inout on the parameters

isInOutQual
bool isInOutQual()
void isInOutQual(bool v)

set or get if the function has the inout on the parameters

isScopeQual
bool isScopeQual()
void isScopeQual(bool v)

set or get if the function has the scope attribute

islive
bool islive()
void islive(bool v)

set or get if the function has the @live attribute

isnogc
bool isnogc()
void isnogc(bool v)

set or get if the function has the @nogc attribute

isnothrow
bool isnothrow()
void isnothrow(bool v)

set or get if the function has the nothrow attribute

isproperty
bool isproperty()
void isproperty(bool v)

set or get if the function has the @property attribute

isref
bool isref()
void isref(bool v)

set or get if the function has the ref attribute

isreturn
bool isreturn()
void isreturn(bool v)

set or get if the function has the return attribute

isreturninferred
bool isreturninferred()
void isreturninferred(bool v)

set or get if the function has the return attribute inferred

isscopeinferred
bool isscopeinferred()

set or get if the function has the scope attribute inferred

isscopeinferred
void isscopeinferred(bool v)

ditoo

iswild
bool iswild()
kind
const(char)* kind()
Undocumented in source. Be warned that the author may not have intended to support it.
parameterEscapes
bool parameterEscapes(Type tthis, Parameter p)

Examine function signature for parameter p and see if the value of p can 'escape' the scope of the function. This is useful to minimize the needed annotations for the parameters.

parameterStorageClass
StorageClass parameterStorageClass(Type tthis, Parameter p)

Take the specified storage class for p, and use the function signature to infer whether STC.scope_ and STC.return_ should be OR'd in. (This will not affect the name mangling.)

purityLevel
void purityLevel()

Set 'purity' field of 'this'. Do this lazily, as the parameter types might be forward referenced.

substWildTo
Type substWildTo(uint )
Undocumented in source. Be warned that the author may not have intended to support it.
syntaxCopy
TypeFunction syntaxCopy()
Undocumented in source. Be warned that the author may not have intended to support it.

Static functions

create
TypeFunction create(Parameters* parameters, Type treturn, ubyte varargs, LINK linkage, StorageClass stc)
Undocumented in source. Be warned that the author may not have intended to support it.

Variables

fargs
Expressions* fargs;
Undocumented in source.
funcFlags
FunctionFlag funcFlags;
Undocumented in source.
inuse
byte inuse;
Undocumented in source.
linkage
LINK linkage;
Undocumented in source.
parameterList
ParameterList parameterList;
Undocumented in source.
purity
PURE purity;
Undocumented in source.
trust
TRUST trust;
Undocumented in source.

Inherited Members

From TypeNext

next
Type next;
Undocumented in source.
checkDeprecated
void checkDeprecated(Loc loc, Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
hasWild
int hasWild()
Undocumented in source. Be warned that the author may not have intended to support it.
nextOf
Type nextOf()

For TypeFunction, nextOf() can return NULL if the function return type is meant to be inferred, and semantic() hasn't yet ben run on the function. After semantic(), it must no longer be NULL.

makeConst
Type makeConst()
Undocumented in source. Be warned that the author may not have intended to support it.
makeImmutable
Type makeImmutable()
Undocumented in source. Be warned that the author may not have intended to support it.
makeShared
Type makeShared()
Undocumented in source. Be warned that the author may not have intended to support it.
makeSharedConst
Type makeSharedConst()
Undocumented in source. Be warned that the author may not have intended to support it.
makeWild
Type makeWild()
Undocumented in source. Be warned that the author may not have intended to support it.
makeWildConst
Type makeWildConst()
Undocumented in source. Be warned that the author may not have intended to support it.
makeSharedWild
Type makeSharedWild()
Undocumented in source. Be warned that the author may not have intended to support it.
makeSharedWildConst
Type makeSharedWildConst()
Undocumented in source. Be warned that the author may not have intended to support it.
makeMutable
Type makeMutable()
Undocumented in source. Be warned that the author may not have intended to support it.
constConv
MATCH constConv(Type to)
Undocumented in source. Be warned that the author may not have intended to support it.
deduceWild
MOD deduceWild(Type t, bool isRef)
Undocumented in source. Be warned that the author may not have intended to support it.
transitive
void transitive()
Undocumented in source. Be warned that the author may not have intended to support it.
accept
void accept(Visitor v)
Undocumented in source. Be warned that the author may not have intended to support it.

Meta