Changeset 0f79853 for src/ResolvExpr


Ignore:
Timestamp:
Jun 7, 2018, 9:55:28 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:
61d9b4b
Parents:
2a6c115
Message:

Remove conversion cost for default arguments

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ResolvExpr/AlternativeFinder.cc

    r2a6c115 r0f79853  
    437437                                }
    438438                        }
     439                        if ( DefaultArgExpr * def = dynamic_cast< DefaultArgExpr * >( *actualExpr ) ) {
     440                                // default arguments should be free - don't include conversion cost.
     441                                // Unwrap them here because they are not relevant to the rest of the system.
     442                                *actualExpr = def->expr;
     443                                ++formal;
     444                                continue;
     445                        }
    439446                        Type * formalType = (*formal)->get_type();
    440447                        convCost += computeExpressionConversionCost( *actualExpr, formalType, indexer, alt.env );
     
    872879                                                                indexer ) ) {
    873880                                                        results.emplace_back(
    874                                                                 i, cnstExpr, move(env), move(need), move(have),
     881                                                                i, new DefaultArgExpr( cnstExpr ), move(env), move(need), move(have),
    875882                                                                move(openVars), nextArg, nTuples );
    876883                                                }
Note: See TracChangeset for help on using the changeset viewer.