diff options
author | johnvg | 2007-12-21 12:33:15 +0000 |
---|---|---|
committer | johnvg | 2007-12-21 12:33:15 +0000 |
commit | 7773f271275a52df7f1053a6adfd29d849611075 (patch) | |
tree | 8df42ffbac600f7a5332e1c9f222f6c2175e4df7 /frontend/refmark.icl | |
parent | don't mark strict and unboxed arrays as hyperstrict (causes incorrect (diff) |
make function has_observing_type faster
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1695 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/refmark.icl')
-rw-r--r-- | frontend/refmark.icl | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/frontend/refmark.icl b/frontend/refmark.icl index 9f53f86..8b6f738 100644 --- a/frontend/refmark.icl +++ b/frontend/refmark.icl @@ -771,13 +771,18 @@ where -> has_observing_type subst_type type_def_infos subst has_observing_type (TA {type_index = {glob_object,glob_module}} type_args) type_def_infos subst # {tdi_properties} = type_def_infos.[glob_module].[glob_object] - = foldSt (\ {at_type} ok -> ok && has_observing_type at_type type_def_infos subst) type_args (tdi_properties bitand cIsHyperStrict <> 0) + = tdi_properties bitand cIsHyperStrict <> 0 && args_have_observing_type type_args type_def_infos subst has_observing_type (TAS {type_index = {glob_object,glob_module}} type_args _) type_def_infos subst # {tdi_properties} = type_def_infos.[glob_module].[glob_object] - = foldSt (\ {at_type} ok -> ok && has_observing_type at_type type_def_infos subst) type_args (tdi_properties bitand cIsHyperStrict <> 0) + = tdi_properties bitand cIsHyperStrict <> 0 && args_have_observing_type type_args type_def_infos subst has_observing_type type type_def_infos subst = False - + + args_have_observing_type [{at_type}:type_args] type_def_infos subst + = has_observing_type at_type type_def_infos subst && args_have_observing_type type_args type_def_infos subst + args_have_observing_type [] type_def_infos subst + = True + instance <<< ReferenceCount where (<<<) file RC_Unused = file |