UserAttributeDeclaration

User defined attributes look like: @foo(args, ...) @(args, ...)

extern (C++) final
class UserAttributeDeclaration : AttribDeclaration {
Expressions* atts;
}

Members

Static functions

checkGNUABITag
void checkGNUABITag(Dsymbol sym, LINK linkage)

Called from a symbol's semantic to check if gnuAbiTag UDA can be applied to them

isGNUABITag
bool isGNUABITag(Expression e)

Check if the provided expression references core.attribute.gnuAbiTag

Inherited Members

From AttribDeclaration

decl
Dsymbols* decl;

Dsymbol's affected by this AttribDeclaration

createNewScope
Scope* createNewScope(Scope* sc, StorageClass stc, LINK linkage, CPPMANGLE cppmangle, Visibility visibility, int explicitVisibility, AlignDeclaration aligndecl, PragmaDeclaration inlining)

Create a new scope if one or more given attributes are different from the sc's. If the returned scope != sc, the caller should pop the scope after it used.

newScope
Scope* newScope(Scope* sc)

A hook point to supply scope for members. addMember, setScope, importAll, semantic, semantic2 and semantic3 will use this.

addObjcSymbols
void addObjcSymbols(ClassDeclarations* classes, ClassDeclarations* categories)

Meta