aboutsummaryrefslogtreecommitdiff
path: root/frontend/trans.icl
diff options
context:
space:
mode:
authorjohnvg2013-04-02 15:26:26 +0000
committerjohnvg2013-04-02 15:26:26 +0000
commitd4e397a35be100674c23b2c863210136d5b5d35c (patch)
treee314addf40d5e1b8ea31701a80dc2435d7ac2b90 /frontend/trans.icl
parentin function adjust_type_code, add alternative for TCE_Selector, (diff)
add type constraints in constructors and function arguments with universal quantifier (from iTask branch)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2218 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/trans.icl')
-rw-r--r--frontend/trans.icl16
1 files changed, 6 insertions, 10 deletions
diff --git a/frontend/trans.icl b/frontend/trans.icl
index 1e7b97d..3774926 100644
--- a/frontend/trans.icl
+++ b/frontend/trans.icl
@@ -211,7 +211,6 @@ where
(let_lazy_binds, ti) = transform let_lazy_binds ro ti
(let_expr, ti) = transform let_expr ro ti
lad = { lad & let_lazy_binds = let_lazy_binds, let_strict_binds = let_strict_binds, let_expr = let_expr}
-// ti = check_type_info lad ti
= (Let lad, ti)
where
store_type_info_of_bindings_in_heap {let_strict_binds, let_lazy_binds,let_info_ptr} ti
@@ -221,12 +220,7 @@ where
= {ti & ti_symbol_heap = ti_symbol_heap, ti_var_heap = ti_var_heap}
store_type_info_let_bind (var_type, {lb_dst={fv_info_ptr}}) var_heap
= setExtendedVarInfo fv_info_ptr (EVI_VarType var_type) var_heap
-/*
- check_type_info {let_strict_binds,let_lazy_binds,let_info_ptr} ti
- # (EI_LetType var_types, ti_symbol_heap) = readExprInfo let_info_ptr ti.ti_symbol_heap
- = { ti & ti_symbol_heap = ti_symbol_heap }
- // ---> ("check_type_info_of_bindings_in_heap",let_strict_binds,let_lazy_binds,var_types)
-*/
+
transform (Case kees) ro ti
# ti = store_type_info_of_patterns_in_heap kees ti
= transformCase kees ro ti
@@ -292,6 +286,9 @@ where
transform (DynamicExpr dynamic_expr) ro ti
# (dynamic_expr, ti) = transform dynamic_expr ro ti
= (DynamicExpr dynamic_expr, ti)
+ transform (DictionariesFunction dictionaries expr expr_type) ro ti
+ # (expr,ti) = transform expr ro ti
+ = (DictionariesFunction dictionaries expr expr_type,ti)
transform expr ro ti
= (expr, ti)
@@ -1671,7 +1668,6 @@ generateFunction app_symb fd=:{fun_body = TransformedBody {tb_args,tb_rhs},fun_i
f2b { fv_ident, fv_info_ptr }
= Var { var_ident = fv_ident, var_info_ptr = fv_info_ptr, var_expr_ptr = nilPtr }
-> add_args_to_fun_body act_args fresh_result_type tb_rhs ro ti
-
(new_fun_rhs, ti)
= transform tb_rhs ro ti
new_fd
@@ -3514,8 +3510,6 @@ foldrExprSt f expr st :== foldr_expr_st expr st
= f lad st
foldr_expr_st sel=:(Selection a expr b) st
= f sel (foldr_expr_st expr st)
-
- // AA:
foldr_expr_st expr=:(BasicExpr _) st
= f expr st
@@ -4341,6 +4335,8 @@ where
strip :: AType [TypeVar] -> (AType,[TypeVar])
strip atype=:{at_type = TFA vars type} tvs
= ({atype & at_type = type}, map (\{atv_variable}->atv_variable) vars ++ tvs)
+ strip atype=:{at_type = TFAC vars type contexts} tvs
+ = ({atype & at_type = type}, map (\{atv_variable}->atv_variable) vars ++ tvs)
strip atype tvs
= (atype,tvs)