From 2dfcc9d781b2df3637fd96f1c5007703377b8109 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 13 Oct 2009 22:15:04 +0000 Subject: Move TEnv::buildSubst to unify.cpp. git-svn-id: http://svn.drobilla.net/resp/tuplr@212 ad02d1e2-f140-0410-9f75-f8b11f17cedd --- src/constrain.cpp | 33 --------------------------------- 1 file changed, 33 deletions(-) (limited to 'src/constrain.cpp') diff --git a/src/constrain.cpp b/src/constrain.cpp index e751895..7106ec8 100644 --- a/src/constrain.cpp +++ b/src/constrain.cpp @@ -22,39 +22,6 @@ #include #include "tuplr.hpp" -/** Build a type substitution for calling a generic function type - * with a specific set of argument types - */ -Subst -TEnv::buildSubst(AType* genericT, const AType& argsT) -{ - Subst subst; - - // Build substitution to apply to generic type - const ATuple* genericProtT = genericT->at(1)->as(); - assert(argsT.size() == genericProtT->size()); - ATuple::const_iterator g = genericProtT->begin(); - AType::const_iterator a = argsT.begin(); - for (; a != argsT.end(); ++a, ++g) { - const AType* genericArgT = (*g)->to(); - AType* callArgT = (*a)->to(); - if (callArgT->kind == AType::EXPR) { - assert(genericArgT->kind == AType::EXPR); - assert(callArgT->size() == genericArgT->size()); - for (size_t i = 0; i < callArgT->size(); ++i) { - const AType* gT = genericArgT->at(i)->to(); - AType* aT = callArgT->at(i)->to(); - if (gT && aT) - subst.add(gT, aT); - } - } else { - subst.add(genericArgT, callArgT); - } - } - - return subst; -} - #define CONSTRAIN_LITERAL(CT, NAME) \ template<> void \ ALiteral::constrain(TEnv& tenv, Constraints& c) const { \ -- cgit v1.2.1