Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/AlternativeFinder.cc

    r6137fbb rb6d6e97  
    7575
    7676        namespace {
    77                 void printAlts( const AltList &list, std::ostream &os, unsigned int indentAmt = 0 ) {
    78                         Indenter indent = { Indenter::tabsize, indentAmt };
     77                void printAlts( const AltList &list, std::ostream &os, int indent = 0 ) {
    7978                        for ( AltList::const_iterator i = list.begin(); i != list.end(); ++i ) {
    8079                                i->print( os, indent );
     
    196195                                AltList winners;
    197196                                findMinCost( alternatives.begin(), alternatives.end(), back_inserter( winners ) );
    198                                 stream << "Cannot choose between " << winners.size() << " alternatives for expression\n";
     197                                stream << "Cannot choose between " << winners.size() << " alternatives for expression ";
    199198                                expr->print( stream );
    200                                 stream << "Alternatives are:\n";
    201                                 printAlts( winners, stream, 1 );
     199                                stream << "Alternatives are:";
     200                                printAlts( winners, stream, 8 );
    202201                                throw SemanticError( stream.str() );
    203202                        }
     
    605604                                Alternative newerAlt( newAlt );
    606605                                newerAlt.env = newEnv;
    607                                 assertf( (*candidate)->get_uniqueId(), "Assertion candidate does not have a unique ID: %s", toString( *candidate ).c_str() );
     606                                assert( (*candidate)->get_uniqueId() );
    608607                                DeclarationWithType *candDecl = static_cast< DeclarationWithType* >( Declaration::declFromId( (*candidate)->get_uniqueId() ) );
    609608
     
    729728                PRINT(
    730729                        std::cerr << "known function ops:" << std::endl;
    731                         printAlts( funcOpFinder.alternatives, std::cerr, 1 );
     730                        printAlts( funcOpFinder.alternatives, std::cerr, 8 );
    732731                )
    733732
     
    839838        bool isLvalue( Expression *expr ) {
    840839                // xxx - recurse into tuples?
    841                 return expr->result && ( expr->get_result()->get_lvalue() || dynamic_cast< ReferenceType * >( expr->get_result() ) );
     840                return expr->has_result() && ( expr->get_result()->get_lvalue() || dynamic_cast< ReferenceType * >( expr->get_result() ) );
    842841        }
    843842
     
    973972                PRINT( std::cerr << "nameExpr is " << nameExpr->get_name() << std::endl; )
    974973                for ( std::list< DeclarationWithType* >::iterator i = declList.begin(); i != declList.end(); ++i ) {
    975                         VariableExpr newExpr( *i );
     974                        VariableExpr newExpr( *i, nameExpr->get_argName() );
    976975                        alternatives.push_back( Alternative( newExpr.clone(), env, Cost::zero ) );
    977976                        PRINT(
     
    12681267                // O(N^2) checks of d-types with e-types
    12691268                for ( InitAlternative & initAlt : initExpr->get_initAlts() ) {
    1270                         Type * toType = resolveTypeof( initAlt.type->clone(), indexer );
     1269                        Type * toType = resolveTypeof( initAlt.type, indexer );
    12711270                        SymTab::validateType( toType, &indexer );
    12721271                        adjustExprType( toType, env, indexer );
Note: See TracChangeset for help on using the changeset viewer.