Ignore:
Timestamp:
Apr 25, 2018, 3:42:34 PM (4 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
new-env, with_gc
Children:
1cdfa82
Parents:
5af7306
Message:

Assorted GC bugfixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Resolver.cc

    r5af7306 r2efe4b8  
    148148                        assertf( untyped, "expected a non-null expression." );
    149149
    150                         new_generation();  // set up GC young generation for this top-level expression
     150                        auto guard = new_generation();  // set up GC generation for this top-level expression
    151151
    152152                        TypeEnvironment env;
     
    177177                        findMinCost( candidates.begin(), candidates.end(), back_inserter( winners ) );
    178178                        if ( winners.size() == 0 ) {
    179                                 collect_young();
    180179                                SemanticError( untyped, toString(
    181180                                        "No reasonable alternatives for ", kindStr, (kindStr != "" ? " " : ""),
     
    189188                                printAlts( winners, stream, 1 );
    190189                               
    191                                 collect_young();
    192190                                SemanticError( untyped->location, stream.str() );
    193191                        }
     
    196194                        Alternative & choice = winners.front();
    197195                        if ( findDeletedExpr( choice.expr ) ) {
    198                                 collect_young( choice.expr );
     196                                trace( choice.expr );
    199197                                SemanticError( choice.expr,
    200198                                        "Unique best alternative includes deleted identifier in " );
    201199                        }
    202200                        alt = std::move( choice );
    203                         collect_young( alt );
     201                        trace( alt );
    204202                }
    205203
Note: See TracChangeset for help on using the changeset viewer.