aboutsummaryrefslogtreecommitdiff
path: root/frontend/comparedefimp.icl
diff options
context:
space:
mode:
authorjohnvg2012-08-14 10:03:06 +0000
committerjohnvg2012-08-14 10:03:06 +0000
commit8f235418ef16fc1341fef9698688c3fdee20b79f (patch)
tree74da14decf5a0709f3254af5780a740f823a7c32 /frontend/comparedefimp.icl
parentremove VI_Expression pointer values after copying a case alternative in the f... (diff)
add extendable algebraic data types (merged from iTask branch)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/comparedefimp.icl')
-rw-r--r--frontend/comparedefimp.icl12
1 files changed, 11 insertions, 1 deletions
diff --git a/frontend/comparedefimp.icl b/frontend/comparedefimp.icl
index 3b82ebb..c408bc8 100644
--- a/frontend/comparedefimp.icl
+++ b/frontend/comparedefimp.icl
@@ -72,6 +72,14 @@ where
compare_rhs_of_types (AbstractSynType _ dclType) (SynType iclType) dcl_cons_defs icl_cons_defs comp_st
# (ok, comp_st) = compare dclType iclType comp_st
= (ok, icl_cons_defs, comp_st)
+ compare_rhs_of_types (ExtendableAlgType []) (ExtendableAlgType []) dcl_cons_defs icl_cons_defs comp_st
+ = (True, icl_cons_defs, comp_st)
+ compare_rhs_of_types (ExtendableAlgType dclConstructors) (ExtendableAlgType iclConstructors) dcl_cons_defs icl_cons_defs comp_st
+ = compare_constructor_lists dclConstructors iclConstructors dcl_cons_defs icl_cons_defs comp_st
+ compare_rhs_of_types (AlgConses dclConstructors dcl_type_index) (AlgConses iclConstructors icl_type_index) dcl_cons_defs icl_cons_defs comp_st
+ | dcl_type_index==icl_type_index
+ = compare_constructor_lists dclConstructors iclConstructors dcl_cons_defs icl_cons_defs comp_st
+ = (False, icl_cons_defs, comp_st)
compare_rhs_of_types dcl_type icl_type dcl_cons_defs icl_cons_defs comp_st
= (False, icl_cons_defs, comp_st)
@@ -85,7 +93,7 @@ where
= compare_constructor_lists dcl_conses icl_conses dcl_cons_defs icl_cons_defs comp_st
= (False, icl_cons_defs, comp_st)
= (False, icl_cons_defs, comp_st)
- compare_constructor_lists [dcl_cons : dcl_conses] [] dcl_cons_defs icl_cons_defs comp_st
+ compare_constructor_lists _ _ dcl_cons_defs icl_cons_defs comp_st
= (False, icl_cons_defs, comp_st)
compare_constructors do_compare_result_types cons_index dcl_cons_defs icl_cons_defs comp_st
@@ -962,6 +970,8 @@ instance t_corresponds TypeRhs where
= t_corresponds dclType iclType
t_corresponds (NewType dclConstructor) (NewType iclConstructor)
= t_corresponds dclConstructor iclConstructor
+ t_corresponds (ExtendableAlgType dclConstructors) (ExtendableAlgType iclConstructors)
+ = t_corresponds dclConstructors iclConstructors
// sanity check ...
t_corresponds UnknownType _