diff options
author | johnvg | 2011-04-08 15:50:13 +0000 |
---|---|---|
committer | johnvg | 2011-04-08 15:50:13 +0000 |
commit | e8a14223968b417c50d70fc04b1ee70413de7007 (patch) | |
tree | 11d75bbb9a5871b8351cd2d178dfb9ac0bb6d8a0 /backend | |
parent | fix 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.icl | 8 |
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 |