Changeset 432ce7a for src/Tuples/Explode.h
- Timestamp:
- Jun 11, 2019, 5:52:50 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:
- 6625727
- Parents:
- 4b7cce6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Tuples/Explode.h
r4b7cce6 r432ce7a 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.