diff options
author | ronny | 2003-02-25 10:40:45 +0000 |
---|---|---|
committer | ronny | 2003-02-25 10:40:45 +0000 |
commit | e4f5cdc1de5411260dd9bd37c54839c1a83b492f (patch) | |
tree | bdb9f8960c43d78e84d063940c4ac0ed4676e680 /frontend/parse.icl | |
parent | added fusion of unboxed lists of records, moved (diff) |
fixed bug 8, incorrect parsing of dynamic id :: (A.a: a->a)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1323 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/parse.icl')
-rw-r--r-- | frontend/parse.icl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/frontend/parse.icl b/frontend/parse.icl index aa07de3..f008f38 100644 --- a/frontend/parse.icl +++ b/frontend/parse.icl @@ -2442,9 +2442,15 @@ determAttr attr1 attr2 type pState wantDynamicType :: !*ParseState -> *(!DynamicType,!*ParseState) wantDynamicType pState - # (type_vars, pState) = optionalUniversalQuantifiedVariables pState - (type, pState) = want pState + # (type, pState) = want pState + # (type_vars, type) = split_vars_and_type type = ({ dt_uni_vars = type_vars, dt_type = type, dt_global_vars = [] }, pState) +where + split_vars_and_type :: AType -> ([ATypeVar], AType) + split_vars_and_type atype=:{at_type=TFA vars type} + = (vars, {atype & at_type=type}) + split_vars_and_type atype + = ([], atype) optionalExistentialQuantifiedVariables :: !*ParseState -> *(![ATypeVar],!*ParseState) optionalExistentialQuantifiedVariables pState |