diff options
author | johnvg | 2012-08-14 10:03:06 +0000 |
---|---|---|
committer | johnvg | 2012-08-14 10:03:06 +0000 |
commit | 8f235418ef16fc1341fef9698688c3fdee20b79f (patch) | |
tree | 74da14decf5a0709f3254af5780a740f823a7c32 /frontend/comparedefimp.icl | |
parent | remove 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.icl | 12 |
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 _ |