Ignore:
Timestamp:
Jun 4, 2018, 10:11:02 AM (6 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, with_gc
Children:
0a75b77
Parents:
41e16b1
Message:

Modify resolver to push code location to generate cast

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/Resolver.cc

    r41e16b1 r2a08c25  
    207207                        Alternative & choice = winners.front();
    208208                        if ( findDeletedExpr( choice.expr ) ) {
    209                                 SemanticError( choice.expr, "Unique best alternative includes deleted identifier in " );
     209                                SemanticError( untyped->location, choice.expr, "Unique best alternative includes deleted identifier in " );
    210210                        }
    211211                        alt = std::move( choice );
     
    242242
    243243                static CastExpr untyped( nullptr ); // cast to void
     244                untyped.location = expr->location;
    244245
    245246                // set up and resolve expression cast to void
     
    274275        void findSingleExpression( Expression *& untyped, Type * type, const SymTab::Indexer & indexer ) {
    275276                assert( untyped && type );
     277                // transfer location to generated cast for error purposes
     278                CodeLocation location = untyped->location;
    276279                untyped = new CastExpr( untyped, type );
     280                untyped->location = location;
    277281                findSingleExpression( untyped, indexer );
    278282                removeExtraneousCast( untyped, indexer );
Note: See TracChangeset for help on using the changeset viewer.