Changeset a181494 for src/SymTab
- Timestamp:
- Feb 21, 2018, 4:07:10 PM (8 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:
- 5a806be4
- Parents:
- 599fbb6
- git-author:
- Rob Schluntz <rschlunt@…> (02/21/18 15:52:43)
- git-committer:
- Rob Schluntz <rschlunt@…> (02/21/18 16:07:10)
- Location:
- src/SymTab
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Indexer.cc
r599fbb6 ra181494 603 603 if ( dynamic_cast< StructInstType * >( t ) || dynamic_cast< UnionInstType * >( t ) ) { 604 604 Expression * base = expr->clone(); 605 ResolvExpr::referenceToRvalueConversion( base ); 605 ResolvExpr::Cost cost = ResolvExpr::Cost::zero; // xxx - carry this cost into the indexer as a base cost? 606 ResolvExpr::referenceToRvalueConversion( base, cost ); 606 607 addMembers( t->getAggr(), new MemberExpr( dwt, base ), handleConflicts ); 607 608 } … … 705 706 } 706 707 707 Expression * Indexer::IdData::combine( ) const {708 Expression * Indexer::IdData::combine( ResolvExpr::Cost & cost ) const { 708 709 Expression * ret = nullptr; 709 710 if ( baseExpr ) { 710 711 Expression * base = baseExpr->clone(); 711 ResolvExpr::referenceToRvalueConversion( base );712 ResolvExpr::referenceToRvalueConversion( base, cost ); 712 713 ret = new MemberExpr( id, base ); 713 714 // xxx - this introduces hidden environments, for now remove them. -
src/SymTab/Indexer.h
r599fbb6 ra181494 23 23 #include "SynTree/Visitor.h" // for Visitor 24 24 #include "SynTree/SynTree.h" // for AST nodes 25 26 namespace ResolvExpr { 27 class Cost; 28 } 25 29 26 30 namespace SymTab { … … 51 55 IdData( DeclarationWithType * id, Expression * baseExpr, BaseSyntaxNode * deleteStmt ) : id( id ), baseExpr( baseExpr ), deleteStmt( deleteStmt ) {} 52 56 53 Expression * combine( ) const;57 Expression * combine( ResolvExpr::Cost & cost ) const; 54 58 }; 55 59
Note:
See TracChangeset
for help on using the changeset viewer.