Constructs a SemanticPass1 object.
Collects info about nodes which have to be evaluated later.
Adds a deferred node to the list.
Enters a new scope.
Creates an error report.
Exits the current scope.
Inserts a symbol into the current scope.
Inserts a symbol into the current scope.
Inserts a symbol into scopeSym.
Inserts a symbol, overloading on the name, into the current scope.
Returns true if this is the module scope.
Reports an error: new symbol s1 conflicts with existing symbol s2.
Starts processing the module.
Current align size.
The compilation context.
List of mixin, static if, static assert and pragma(msg,...) declarations.
Called when importing a module.
Current linkage type.
The module to be semantically checked.
Current protection attribute.
The current scope.
Current storage classes.
The first pass is the declaration pass.
The basic task of this class is to traverse the parse tree, find all kinds of declarations and add them to the symbol tables of their respective scopes.