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 /frontend/syntax.dcl | |
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 'frontend/syntax.dcl')
-rw-r--r-- | frontend/syntax.dcl | 6 |
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] |