aboutsummaryrefslogtreecommitdiff
path: root/frontend/trans.icl
diff options
context:
space:
mode:
authorjohnvg2012-08-08 11:40:38 +0000
committerjohnvg2012-08-08 11:40:38 +0000
commitb97dd7330f70e7e9e3874f8cce0cb42289371ffd (patch)
tree2ff7f6afffd2d2027c2ee0972417f9afaeda7e8d /frontend/trans.icl
parentmake field aci_linearity_of_patterns of record ActiveCaseInfo strict (diff)
replace function NewAttrVarId by NewAttrVar, improve caching of uniqueness attribute variable identifiers
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2140 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/trans.icl')
-rw-r--r--frontend/trans.icl15
1 files changed, 6 insertions, 9 deletions
diff --git a/frontend/trans.icl b/frontend/trans.icl
index 824acd7..0fa632f 100644
--- a/frontend/trans.icl
+++ b/frontend/trans.icl
@@ -1294,8 +1294,8 @@ where
CT_NonUnique
-> ({ attr_var_array & [i] = TA_Multi}, th_attrs)
_
- # (new_info_ptr, th_attrs) = newPtr AVI_Empty th_attrs
- -> ({ attr_var_array & [i] = TA_Var { av_ident = NewAttrVarId i, av_info_ptr = new_info_ptr }}, th_attrs)
+ # (av, th_attrs) = NewAttrVar i th_attrs
+ -> ({attr_var_array & [i] = TA_Var av}, th_attrs)
coercionsToAttrEnv :: !{!TypeAttribute} !Coercions -> [AttrInequality]
coercionsToAttrEnv attr_vars {coer_demanded, coer_offered}
@@ -2254,8 +2254,7 @@ where
= (cum_attr, attr_env, attr_store)
freshAttrVar attr_var th_attrs
- # (new_info_ptr, th_attrs) = newPtr AVI_Empty th_attrs
- = ({ av_ident = NewAttrVarId attr_var, av_info_ptr = new_info_ptr }, th_attrs)
+ :== NewAttrVar attr_var th_attrs
RepeatnAppendM n a l :== repeatn_append_ n a l
where
@@ -3414,10 +3413,8 @@ renewVariables exprs var_heap
preprocess_local_var :: !FreeVar !RenewState -> (!FreeVar, !RenewState)
preprocess_local_var fv=:{fv_ident, fv_info_ptr} (new_vars_accu, free_vars_accu, var_heap)
- # (evi, var_heap)
- = readExtendedVarInfo fv_info_ptr var_heap
- (new_var, var_heap)
- = allocate_and_bind_new_var fv_ident fv_info_ptr evi var_heap
+ # (evi, var_heap) = readExtendedVarInfo fv_info_ptr var_heap
+ (new_var, var_heap) = allocate_and_bind_new_var fv_ident fv_info_ptr evi var_heap
= ( { fv & fv_info_ptr = new_var.var_info_ptr }
, (new_vars_accu, free_vars_accu, var_heap))
@@ -4168,7 +4165,7 @@ where
showTail f [|x] = f <<< x <<< "] "
showTail f [|a:x] = showTail (f <<< a <<< ", ") x
showTail f [|] = f <<< "] "
-
+
instance <<< InstanceInfo
where
(<<<) file ii = (write_ii ii (file <<< "[")) <<< "]"