Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/AlternativeFinder.h

    r6d2f993 ra8b27c6  
    3232
    3333namespace ResolvExpr {
    34         struct ArgPack;
    35 
    36         /// First index is which argument, second index is which alternative for that argument,
     34        class ArgPack;
     35       
     36        /// First index is which argument, second index is which alternative for that argument, 
    3737        /// third index is which exploded element of that alternative
    3838        using ExplodedArgs = std::vector< std::vector< ExplodedActual > >;
    39 
     39       
    4040        class AlternativeFinder : public Visitor {
    4141          public:
     
    4343
    4444                AlternativeFinder( const AlternativeFinder& o )
    45                         : indexer(o.indexer), alternatives(o.alternatives), env(o.env),
     45                        : indexer(o.indexer), alternatives(o.alternatives), env(o.env), 
    4646                          targetType(o.targetType) {}
    47 
     47               
    4848                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), 
    5050                          targetType(o.targetType) {}
    51 
     51               
    5252                AlternativeFinder& operator= ( const AlternativeFinder& o ) {
    5353                        if (&o == this) return *this;
    54 
     54                       
    5555                        // horrific nasty hack to rebind references...
    5656                        alternatives.~AltList();
     
    6161                AlternativeFinder& operator= ( AlternativeFinder&& o ) {
    6262                        if (&o == this) return *this;
    63 
     63                       
    6464                        // horrific nasty hack to rebind references...
    6565                        alternatives.~AltList();
     
    142142                template< typename OutputIterator >
    143143                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 );
    144145
    145146                const SymTab::Indexer &indexer;
     
    150151
    151152        Expression *resolveInVoidContext( Expression *expr, const SymTab::Indexer &indexer, TypeEnvironment &env );
     153        void referenceToRvalueConversion( Expression *& expr );
    152154
    153155        template< typename InputIterator, typename OutputIterator >
     
    172174
    173175        Cost sumCost( const AltList &in );
    174         void printAlts( const AltList &list, std::ostream &os, unsigned int indentAmt = 0 );
    175176
    176177        template< typename InputIterator >
     
    180181                }
    181182        }
    182 
    183183} // namespace ResolvExpr
    184184
Note: See TracChangeset for help on using the changeset viewer.