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
semantic2
phase 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 loc
source location of attribute token Prot p
protection attribute data Dsymbols* decl
declarations which are affected by this protection attribute - this(Loc
loc
, Identifiers*pkg_identifiers
, Dsymbols*decl
); - Parameters:
Loc loc
source location of attribute token Identifiers* pkg_identifiers
list of identifiers for a qualified package name Dsymbols* decl
declarations 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