- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Validate/NoIdSymbolTable.hpp
r4d860ea3 re0069bd 20 20 namespace Validate { 21 21 22 // A SymbolTable that only tracks names relevant to Validate passes. 23 // It tracks type names but not identifier names. 24 // Some of the canonicalization that occurs before the resolver 25 // affects how identifier name errors get reported to the user. 26 // The Validate phase needs to chase type names, 27 // but it is too early to try tracking identifier names. 28 // Identifier skipping is acheived by omitting methods that should not be 22 // A SymbolTable that only has the operations used in the Translate Dimension 23 // pass. More importantly, it doesn't have some methods that should no be 29 24 // called by the Pass template (lookupId and addId). 30 25 class NoIdSymbolTable { 31 26 ast::SymbolTable base; 32 27 public: 33 // All names that are tracked (now) are eligible for collision validation (now).34 // (Names that are only tracked later get their collision validation then.)35 NoIdSymbolTable() : base(ast::SymbolTable::ValidateOnAdd) {}36 37 28 # define FORWARD_X( func, types_and_names, just_names ) \ 38 29 inline auto func types_and_names -> decltype( base.func just_names ) { \
Note:
See TracChangeset
for help on using the changeset viewer.