Changeset 4d860ea3 for src/Validate
- Timestamp:
- Oct 6, 2023, 2:58:48 PM (16 months ago)
- Branches:
- master
- Children:
- 500a60f
- Parents:
- 0860d9c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Validate/NoIdSymbolTable.hpp
r0860d9c r4d860ea3 20 20 namespace Validate { 21 21 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 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 24 29 // called by the Pass template (lookupId and addId). 25 30 class NoIdSymbolTable { 26 31 ast::SymbolTable base; 27 32 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 28 37 # define FORWARD_X( func, types_and_names, just_names ) \ 29 38 inline auto func types_and_names -> decltype( base.func just_names ) { \
Note: See TracChangeset
for help on using the changeset viewer.