aboutsummaryrefslogtreecommitdiff
path: root/frontend/syntax.dcl
diff options
context:
space:
mode:
authorjohnvg2011-04-08 15:50:13 +0000
committerjohnvg2011-04-08 15:50:13 +0000
commite8a14223968b417c50d70fc04b1ee70413de7007 (patch)
tree11d75bbb9a5871b8351cd2d178dfb9ac0bb6d8a0 /frontend/syntax.dcl
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 'frontend/syntax.dcl')
-rw-r--r--frontend/syntax.dcl6
1 files changed, 2 insertions, 4 deletions
diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl
index 0e01bde..b8b2c97 100644
--- a/frontend/syntax.dcl
+++ b/frontend/syntax.dcl
@@ -314,7 +314,6 @@ cNameLocationDependent :== True
to store the index of the function that has been specialized.
*/
-
:: Specials
= SP_ParsedSubstitutions ![Env Type TypeVar]
| SP_Substitutions ![SpecialSubstitution]
@@ -433,9 +432,6 @@ cNameLocationDependent :== True
, gt_arity :: !Int // number of generic arguments
}
-//getGenericClassForKind :: !GenericDef !TypeKind -> (!Bool, DefinedSymbol)
-//addGenericKind :: !GenericDef !TypeKind -> !GenericDef
-
:: InstanceType =
{ it_vars :: [TypeVar]
, it_types :: ![Type]
@@ -987,6 +983,7 @@ cNonRecursiveAppl :== False
| TQV TypeVar
| TempQV !TempVarId /* Auxiliary, used during type checking */
+ | TempQDV !TempVarId // Auxiliary, used during type checking, existential type variable in dynamic pattern
| TLifted !TypeVar /* Auxiliary, used during type checking of lifted arguments */
| TQualifiedIdent !Ident !String ![AType]
@@ -998,6 +995,7 @@ cNonRecursiveAppl :== False
:: ConsVariable = CV !TypeVar
| TempCV !TempVarId
| TempQCV !TempVarId
+ | TempQCDV !TempVarId // existential type variable in dynamic pattern
:: DynamicType =
{ dt_uni_vars :: ![ATypeVar]