Changeset 1fdfc23
- Timestamp:
- Oct 20, 2017, 1:37:11 PM (7 years ago)
- 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, resolv-new, with_gc
- Children:
- d551d0a
- Parents:
- 4b6ef70
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/AlternativeFinder.cc
r4b6ef70 r1fdfc23 625 625 626 626 /// Clones and adds an actual, returns this 627 ArgPack& withArg( Expression* expr ) {628 actuals.emplace_back( expr->clone(), this->env, Cost::zero);627 ArgPack& withArg( Expression* expr, Cost cost = Cost::zero ) { 628 actuals.emplace_back( expr->clone(), this->env, cost ); 629 629 if ( ! tupleEls.empty() ) ++tupleEls.back(); 630 630 return *this; … … 686 686 // add details of actual to result 687 687 aResult.env.addActual( actual.env, aResult.openVars ); 688 Cost cost = actual.cost; 688 689 689 690 // explode argument … … 693 694 // add exploded argument to tuple 694 695 for ( Alternative& aActual : exploded ) { 695 aResult.withArg( aActual.expr ); 696 aResult.withArg( aActual.expr, cost ); 697 cost = Cost::zero; 696 698 } 697 699 ++aResult.nextArg; … … 777 779 if ( unify( formalType, actualType, aResult.env, aResult.need, aResult.have, aResult.openVars, indexer ) ) { 778 780 // add argument 779 aResult.withArg( aActual.expr );781 aResult.withArg( aActual.expr, actual.cost ); 780 782 if ( exploded.size() == 1 ) { 781 783 // argument consumed
Note: See TracChangeset
for help on using the changeset viewer.