From 89e707c187b5c571358da95db04f12bb4a052d96 Mon Sep 17 00:00:00 2001 From: diederik Date: Thu, 25 Jul 2002 14:50:32 +0000 Subject: 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 --- frontend/classify.icl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'frontend') 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}) -- cgit v1.2.3