From e8a14223968b417c50d70fc04b1ee70413de7007 Mon Sep 17 00:00:00 2001 From: johnvg Date: Fri, 8 Apr 2011 15:50:13 +0000 Subject: 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 --- backend/backendconvert.icl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'backend') 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 -- cgit v1.2.3