Changeset 21300d7 for src/Tuples/Explode.h
- Timestamp:
- Jun 12, 2019, 4:06:37 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 462a7c7, d60780c
- Parents:
- aaeacf4 (diff), 6625727 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Tuples/Explode.h
raaeacf4 r21300d7 19 19 #include <utility> // for forward 20 20 21 #include "AST/Expr.hpp" 21 22 #include "ResolvExpr/Alternative.h" // for Alternative, AltList 23 #include "ResolvExpr/Candidate.hpp" // for Candidate, CandidateList 22 24 #include "ResolvExpr/ExplodedActual.h" // for ExplodedActual 25 #include "ResolvExpr/ExplodedArg.hpp" // for ExplodedArg 23 26 #include "SynTree/Expression.h" // for Expression, UniqueExpr, AddressExpr 24 27 #include "SynTree/Type.h" // for TupleType, Type 25 28 #include "Tuples.h" // for maybeImpure 29 30 namespace ast { 31 class SymbolTable; 32 } 26 33 27 34 namespace SymTab { … … 130 137 explode( alts.begin(), alts.end(), indexer, std::forward<Output>(out), isTupleAssign ); 131 138 } 139 140 /// helper function used by explode 141 template< typename Output > 142 void explodeUnique( 143 const ast::Expr * expr, const ResolvExpr::Candidate & arg, const ast::SymbolTable & symtab, 144 Output && out, bool isTupleAssign 145 ) { 146 #warning unimplemented 147 (void)expr; (void)arg; (void)symtab; (void)out; (void)isTupleAssign; 148 assert(false); 149 } 150 151 /// expands a tuple-valued candidate into multiple candidates, each with a non-tuple type 152 template< typename Output > 153 void explode( 154 const ResolvExpr::Candidate & arg, const ast::SymbolTable & symtab, Output && out, 155 bool isTupleAssign = false 156 ) { 157 explodeUnique( arg.expr, arg, symtab, std::forward< Output >( out ), isTupleAssign ); 158 } 159 132 160 } // namespace Tuples 133 161
Note: See TracChangeset
for help on using the changeset viewer.