diff options
author | diederik | 2002-07-25 14:50:32 +0000 |
---|---|---|
committer | diederik | 2002-07-25 14:50:32 +0000 |
commit | 89e707c187b5c571358da95db04f12bb4a052d96 (patch) | |
tree | b6ba053bd574c7d79e6c75203e9d5067621d138e /frontend | |
parent | add collectVariable instance for Dictionaries for consumer reanalysis (diff) |
make args for which specials exist active
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1172 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend')
-rw-r--r-- | frontend/classify.icl | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/frontend/classify.icl b/frontend/classify.icl index 16469f6..2b86b72 100644 --- a/frontend/classify.icl +++ b/frontend/classify.icl @@ -283,6 +283,20 @@ instance consumerRequirements App where # (cc, _, ai) = consumerRequirements app_arg common_defs ai # ai = aiUnifyClassifications CActive cc ai = consumerRequirements app_args common_defs ai +// SPECIAL... + # num_specials = case imported_funs.[glob_module].[glob_object].ft_specials of + (SP_ContextTypes [sp:_]) -> length sp.spec_types + _ -> 0 + | num_specials > 0 && num_specials <= length app_args + = activeArgs num_specials app_args common_defs ai + with + activeArgs 0 app_args common_defs ai + = consumerRequirements app_args common_defs ai // treat remaining args normally... + activeArgs n [app_arg:app_args] common_defs ai + # (cc, _, ai) = consumerRequirements app_arg common_defs ai + # ai = aiUnifyClassifications CActive cc ai // make args for which specials exist active... + = activeArgs (n-1) app_args common_defs ai +// ...SPECIAL = consumerRequirements app_args common_defs ai consumerRequirements {app_symb={symb_kind = SK_LocalMacroFunction glob_object, symb_name}, app_args} common_defs=:(ConsumerAnalysisRO {main_dcl_module_n}) |