aboutsummaryrefslogtreecommitdiffstats
path: root/tuplr.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'tuplr.hpp')
-rw-r--r--tuplr.hpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/tuplr.hpp b/tuplr.hpp
index 69f6bfd..382b9d4 100644
--- a/tuplr.hpp
+++ b/tuplr.hpp
@@ -345,7 +345,11 @@ struct Subst : public map<const AType*,AType*,typeLessThan> {
} else {
const_iterator i = find(in);
if (i != end()) {
- return i->second;
+ AST* out = i->second;
+ AType* outT = out->to<AType*>();
+ if (outT && outT->kind == AType::EXPR && !outT->concrete())
+ out = apply(out);
+ return out;
} else {
return in;
}