Changeset 3f27b9a
- Timestamp:
- Aug 15, 2017, 3:03:34 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- fcc88a4
- Parents:
- c6c6f2ae
- Location:
- src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/Resolver.cc
rc6c6f2ae r3f27b9a 394 394 395 395 void Resolver::visit( CatchStmt *catchStmt ) { 396 Parent::visit( catchStmt ); 396 // inline Indexer::visit so that the exception variable is still in-scope for 397 // findSingleExpression() below 398 Parent::enterScope(); 399 Visitor::visit( catchStmt ); 397 400 398 401 if ( catchStmt->get_cond() ) { … … 403 406 catchStmt->set_cond( findSingleExpression( wrapped, *this ) ); 404 407 } 408 409 Parent::leaveScope(); 405 410 } 406 411 -
src/SymTab/Indexer.cc
rc6c6f2ae r3f27b9a 353 353 } 354 354 355 void Indexer::visit( ForStmt *forStmt ) { 356 // for statements introduce a level of scope 357 enterScope(); 358 Visitor::visit( forStmt ); 359 leaveScope(); 360 } 361 362 void Indexer::visit( CatchStmt *catchStmt ) { 363 // catch statements introduce a level of scope (for the caught exception) 364 enterScope(); 365 Visitor::visit( catchStmt ); 366 leaveScope(); 367 } 355 368 356 369 void Indexer::visit( ApplicationExpr *applicationExpr ) { … … 556 569 leaveScope(); 557 570 } 558 559 void Indexer::visit( ForStmt *forStmt ) {560 // for statements introduce a level of scope561 enterScope();562 Visitor::visit( forStmt );563 leaveScope();564 }565 566 567 571 568 572 void Indexer::lookupId( const std::string &id, std::list< DeclarationWithType* > &out ) const { -
src/SymTab/Indexer.h
rc6c6f2ae r3f27b9a 45 45 46 46 virtual void visit( CompoundStmt *compoundStmt ); 47 virtual void visit( ForStmt *forStmt ); 48 virtual void visit( CatchStmt *catchStmt ); 47 49 48 50 virtual void visit( ApplicationExpr *applicationExpr ); … … 81 83 virtual void visit( StructInstType *contextInst ); 82 84 virtual void visit( UnionInstType *contextInst ); 83 84 virtual void visit( ForStmt *forStmt );85 85 86 86 // when using an indexer manually (e.g., within a mutator traversal), it is necessary to tell the indexer
Note: See TracChangeset
for help on using the changeset viewer.