summaryrefslogtreecommitdiff
path: root/src/declare.cc
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2015-02-14 09:54:51 -0500
committerAdrian Thurston <thurston@complang.org>2015-02-14 09:54:51 -0500
commite730b33092cb1e2ce3e8bf8d54133d6e2b92a643 (patch)
tree49f178bc92a16b11517d007be3305a3f24747d98 /src/declare.cc
parentc61aaeda6a00d6133cd8042c6a978291ddd44bec (diff)
downloadcolm-e730b33092cb1e2ce3e8bf8d54133d6e2b92a643.tar.gz
vmap find: only upref result if it is a tree type
Diffstat (limited to 'src/declare.cc')
-rw-r--r--src/declare.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/declare.cc b/src/declare.cc
index b5ca8efd..9534feb5 100644
--- a/src/declare.cc
+++ b/src/declare.cc
@@ -354,10 +354,13 @@ void Compiler::addProdRHSVars( ObjectDef *localFrame, ProdElList *prodElList )
void GenericType::declare( Compiler *pd, Namespace *nspace )
{
- elUt = elTr->uniqueType;
+ elUt = elTr->resolveType( pd );
if ( typeId == GEN_MAP || typeId == GEN_VMAP )
- keyUt = keyTr->uniqueType;
+ keyUt = keyTr->resolveType( pd );
+
+ if ( typeId == GEN_VMAP )
+ valueUt = valueTr->resolveType( pd );
objDef = ObjectDef::cons( ObjectDef::BuiltinType,
"generic", pd->nextObjectId++ );