Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/GenPoly.cc

    rae1b9ea r9b18044  
    432432        }
    433433
    434         bool needsBoxing( Type * param, Type * arg, const TyVarMap &exprTyVars, TypeSubstitution * env ) {
    435                 // is parameter is not polymorphic, don't need to box
    436                 if ( ! isPolyType( param, exprTyVars ) ) return false;
    437                 Type * newType = arg->clone();
    438                 if ( env ) env->apply( newType );
    439                 std::unique_ptr<Type> manager( newType );
    440                 // if the argument's type is polymorphic, we don't need to box again!
    441                 return ! isPolyType( newType );
    442         }
    443 
    444         bool needsBoxing( Type * param, Type * arg, ApplicationExpr * appExpr, TypeSubstitution * env ) {
    445                 FunctionType * function = getFunctionType( appExpr->function->result );
    446                 assertf( function, "ApplicationExpr has non-function type: %s", toString( appExpr->function->result ).c_str() );
    447                 TyVarMap exprTyVars( TypeDecl::Data{} );
    448                 makeTyVarMap( function, exprTyVars );
    449                 return needsBoxing( param, arg, exprTyVars, env );
    450         }
    451 
    452434        void addToTyVarMap( TypeDecl * tyVar, TyVarMap &tyVarMap ) {
    453435                // xxx - should this actually be insert?
Note: See TracChangeset for help on using the changeset viewer.