aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjohnvg2007-03-08 13:26:47 +0000
committerjohnvg2007-03-08 13:26:47 +0000
commit18da151e42a409399d2bd62021a16236ab546ce2 (patch)
treea221f5e687d6da66bc78eb846b28fcde7dbb1b60
parentpass two lists to functions init_type_vars and init_attr_vars, (diff)
pass two lists to function init_atype_vars,
instead of using ++ to concatenate the lists for each call git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1654 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
-rw-r--r--frontend/comparedefimp.icl18
1 files changed, 8 insertions, 10 deletions
diff --git a/frontend/comparedefimp.icl b/frontend/comparedefimp.icl
index 9a90c7a..d39201c 100644
--- a/frontend/comparedefimp.icl
+++ b/frontend/comparedefimp.icl
@@ -727,8 +727,7 @@ instance t_corresponds (TypeDef TypeRhs) where
// | False--->("comparing:", dclDef, iclDef)
// = undef
# tc_state = init_attr_vars dclDef.td_attrs iclDef.td_attrs tc_state
- tc_state = init_atype_vars dclDef.td_args tc_state
- tc_state = init_atype_vars iclDef.td_args tc_state
+ tc_state = init_atype_vars dclDef.td_args iclDef.td_args tc_state
= t_corresponds (dclDef.td_args, (dclDef.td_rhs, (dclDef.td_context, dclDef.td_attribute)))
(iclDef.td_args, (iclDef.td_rhs, (iclDef.td_context, iclDef.td_attribute))) tc_state
instance t_corresponds TypeContext where
@@ -834,7 +833,7 @@ instance t_corresponds Type where
t_corresponds (GTV dclDef) (GTV iclDef)
= t_corresponds dclDef iclDef
t_corresponds (TFA dclVars dclType) (TFA iclVars iclType)
- = do (init_atype_vars (dclVars++iclVars))
+ = do (init_atype_vars dclVars iclVars)
&&& t_corresponds dclType iclType
t_corresponds _ _
= return False
@@ -887,22 +886,21 @@ instance t_corresponds FieldSymbol where
instance t_corresponds ConsDef where
t_corresponds dclDef iclDef
- = do (init_atype_vars (dclDef.cons_exi_vars++iclDef.cons_exi_vars))
+ = do (init_atype_vars dclDef.cons_exi_vars iclDef.cons_exi_vars)
&&& t_corresponds dclDef.cons_type iclDef.cons_type
&&& equal dclDef.cons_ident iclDef.cons_ident
&&& equal dclDef.cons_priority iclDef.cons_priority
instance t_corresponds SelectorDef where
t_corresponds dclDef iclDef
- = do (init_atype_vars (dclDef.sd_exi_vars++iclDef.sd_exi_vars))
+ = do (init_atype_vars dclDef.sd_exi_vars iclDef.sd_exi_vars)
&&& t_corresponds dclDef.sd_type iclDef.sd_type
&&& equal dclDef.sd_field_nr iclDef.sd_field_nr
-init_atype_vars atype_vars
- tc_state=:{tc_type_vars}
- # type_heap = foldSt init_type_var atype_vars tc_type_vars.hwn_heap
- tc_type_vars = { tc_type_vars & hwn_heap = type_heap }
- = { tc_state & tc_type_vars = tc_type_vars }
+init_atype_vars atype_vars1 atype_vars2 tc_state=:{tc_type_vars=tc_type_vars=:{hwn_heap}}
+ # type_heap = foldSt init_type_var atype_vars1 hwn_heap
+ # type_heap = foldSt init_type_var atype_vars2 hwn_heap
+ = {tc_state & tc_type_vars = {tc_type_vars & hwn_heap = type_heap}}
where
init_type_var {atv_variable} type_heap = writePtr atv_variable.tv_info_ptr TVI_Empty type_heap