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.
ddmd.attrib
Compiler implementation of the
D programming language.
Authors:
License:
Source: attrib.d
- abstract class
AttribDeclaration: ddmd.dsymbol.Dsymbol; -
- static Scope*
createNewScope(Scope*sc, StorageClassstc, LINKlinkage, CPPMANGLEcppmangle, Protprotection, intexplicitProtection, AlignDeclarationaligndecl, PINLINEinlining); - 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. - Scope*
newScope(Scope*sc); - A hook point to supply scope for members. addMember, setScope, importAll, semantic, semantic2 and semantic3 will use this.
- final void
addLocalClass(ClassDeclarations*aclasses);
- class
StorageClassDeclaration: ddmd.attrib.AttribDeclaration; - class
DeprecatedDeclaration: ddmd.attrib.StorageClassDeclaration; -
- Scope*
newScope(Scope*sc); - Provides a new scope with STCdeprecated and Scope.depdecl setCalls StorageClassDeclaration.
newScope(as it must be called or copied in any function overridingnewScope), then set the Scope's depdecl.Returns:Always a new scope, to use for this DeprecatedDeclaration's members. - void
semantic2(Scope*sc); - Run the DeprecatedDeclaration's
semantic2phase then its members.The message set via a DeprecatedDeclaration can be either of: - a string literal - an enum - a static immutable So we need to call ctfe to resolve it. Afterward forwards to the members'semantic2.
- class
LinkDeclaration: ddmd.attrib.AttribDeclaration; - class
CPPMangleDeclaration: ddmd.attrib.AttribDeclaration; - class
ProtDeclaration: ddmd.attrib.AttribDeclaration; -
- this(Loc
loc, Protp, Dsymbols*decl); - Parameters:
Loc locsource location of attribute token Prot pprotection attribute data Dsymbols* decldeclarations which are affected by this protection attribute - this(Loc
loc, Identifiers*pkg_identifiers, Dsymbols*decl); - Parameters:
Loc locsource location of attribute token Identifiers* pkg_identifierslist of identifiers for a qualified package name Dsymbols* decldeclarations which are affected by this protection attribute
- class
AlignDeclaration: ddmd.attrib.AttribDeclaration; - class
AnonDeclaration: ddmd.attrib.AttribDeclaration; - class
PragmaDeclaration: ddmd.attrib.AttribDeclaration; - class
ConditionalDeclaration: ddmd.attrib.AttribDeclaration; - class
StaticIfDeclaration: ddmd.attrib.ConditionalDeclaration; -
- Dsymbols*
include(Scope*sc, ScopeDsymbolsds); - Different from other AttribDeclaration subclasses,
include() call requires the completion of addMember and setScope phases.
- class
CompileDeclaration: ddmd.attrib.AttribDeclaration; - Mixin declarations, like: mixin("int x");
- class
UserAttributeDeclaration: ddmd.attrib.AttribDeclaration; - User defined attributes look like: @(args, ...)
Copyright © 1999-2017 by the D Language Foundation | Page generated by
Ddoc on Wed Jul 19 22:16:36 2017