aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorjohnvg2011-04-08 15:50:13 +0000
committerjohnvg2011-04-08 15:50:13 +0000
commite8a14223968b417c50d70fc04b1ee70413de7007 (patch)
tree11d75bbb9a5871b8351cd2d178dfb9ac0bb6d8a0 /backend
parentfix bug in the memory allocator (diff)
fix type checking of existential type variables that are used by a dynamic expression,
but do not occur in the type of a dynamic pattern. TempQDV is used for existential type variables in a dynamic pattern. git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1911 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backend')
-rw-r--r--backend/backendconvert.icl8
1 files changed, 6 insertions, 2 deletions
diff --git a/backend/backendconvert.icl b/backend/backendconvert.icl
index 52f2c77..962fabf 100644
--- a/backend/backendconvert.icl
+++ b/backend/backendconvert.icl
@@ -1390,10 +1390,12 @@ convertTypeNode (TAS typeSymbolIdent typeArgs strictness)
= beNormalTypeNode (convertTypeSymbolIdent typeSymbolIdent) (convertAnnotatedTypeArgs typeArgs strictness)
convertTypeNode (TV {tv_ident})
= beVarTypeNode tv_ident.id_name
-convertTypeNode (TempQV n)
- = beVarTypeNode ("_tqv" +++ toString n)
convertTypeNode (TempV n)
= beVarTypeNode ("_tv" +++ toString n)
+convertTypeNode (TempQV n)
+ = beVarTypeNode ("_tqv" +++ toString n)
+convertTypeNode (TempQDV n)
+ = beVarTypeNode ("_tqv" +++ toString n)
convertTypeNode (a --> b)
= beNormalTypeNode (beBasicSymbol BEFunType) (convertTypeArgs [a, b])
convertTypeNode (TArrow1 a)
@@ -1418,6 +1420,8 @@ consVariableToType (TempCV varId)
= TempV varId
consVariableToType (TempQCV varId)
= TempQV varId
+consVariableToType (TempQCDV varId)
+ = TempQDV varId
convertTypeArgs :: [AType] -> BEMonad BETypeArgP
convertTypeArgs args