- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/AlternativeFinder.h
ra8b27c6 r6d2f993 32 32 33 33 namespace ResolvExpr { 34 classArgPack;35 36 /// First index is which argument, second index is which alternative for that argument, 34 struct ArgPack; 35 36 /// First index is which argument, second index is which alternative for that argument, 37 37 /// third index is which exploded element of that alternative 38 38 using ExplodedArgs = std::vector< std::vector< ExplodedActual > >; 39 39 40 40 class AlternativeFinder : public Visitor { 41 41 public: … … 43 43 44 44 AlternativeFinder( const AlternativeFinder& o ) 45 : indexer(o.indexer), alternatives(o.alternatives), env(o.env), 45 : indexer(o.indexer), alternatives(o.alternatives), env(o.env), 46 46 targetType(o.targetType) {} 47 47 48 48 AlternativeFinder( AlternativeFinder&& o ) 49 : indexer(o.indexer), alternatives(std::move(o.alternatives)), env(o.env), 49 : indexer(o.indexer), alternatives(std::move(o.alternatives)), env(o.env), 50 50 targetType(o.targetType) {} 51 51 52 52 AlternativeFinder& operator= ( const AlternativeFinder& o ) { 53 53 if (&o == this) return *this; 54 54 55 55 // horrific nasty hack to rebind references... 56 56 alternatives.~AltList(); … … 61 61 AlternativeFinder& operator= ( AlternativeFinder&& o ) { 62 62 if (&o == this) return *this; 63 63 64 64 // horrific nasty hack to rebind references... 65 65 alternatives.~AltList(); … … 142 142 template< typename OutputIterator > 143 143 void inferParameters( const AssertionSet &need, AssertionSet &have, const Alternative &newAlt, OpenVarSet &openVars, OutputIterator out ); 144 void resolveAttr( DeclarationWithType *funcDecl, FunctionType *function, Type *argType, const TypeEnvironment &env );145 144 146 145 const SymTab::Indexer &indexer; … … 151 150 152 151 Expression *resolveInVoidContext( Expression *expr, const SymTab::Indexer &indexer, TypeEnvironment &env ); 153 void referenceToRvalueConversion( Expression *& expr );154 152 155 153 template< typename InputIterator, typename OutputIterator > … … 174 172 175 173 Cost sumCost( const AltList &in ); 174 void printAlts( const AltList &list, std::ostream &os, unsigned int indentAmt = 0 ); 176 175 177 176 template< typename InputIterator > … … 181 180 } 182 181 } 182 183 183 } // namespace ResolvExpr 184 184
Note:
See TracChangeset
for help on using the changeset viewer.