aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend/checkFunctionBodies.icl6
-rw-r--r--frontend/checksupport.dcl3
-rw-r--r--frontend/checksupport.icl8
3 files changed, 6 insertions, 11 deletions
diff --git a/frontend/checkFunctionBodies.icl b/frontend/checkFunctionBodies.icl
index 642fab1..99248f1 100644
--- a/frontend/checkFunctionBodies.icl
+++ b/frontend/checkFunctionBodies.icl
@@ -2,6 +2,7 @@ implementation module checkFunctionBodies
import syntax, typesupport, parse, checksupport, utilities, checktypes, transform, predef //, RWSDebug
import explicitimports, comparedefimp, mergecases
+from check import checkFunctions
cIsInExpressionList :== True
cIsNotInExpressionList :== False
@@ -462,6 +463,11 @@ where
(let_expr, expr_heap) = buildLetExpression strict_binds lazy_binds let_expr let_expr_position expr_heap
= (if (isEmpty strict_binds && isEmpty lazy_binds) let_expr_position NoPos, let_expr, expr_heap)
+checkLocalFunctions :: !Index !Level !LocalDefs !*{#FunDef} !*ExpressionInfo !*Heaps !*CheckState
+ -> (!.{#FunDef},!.ExpressionInfo,!.Heaps,!.CheckState);
+checkLocalFunctions mod_index level (CollectedLocalDefs {loc_functions={ir_from,ir_to}}) fun_defs e_info heaps cs
+ = checkFunctions mod_index level ir_from ir_to fun_defs e_info heaps cs
+
checkExpression :: ![FreeVar] !ParsedExpr !ExpressionInput !*ExpressionState !*ExpressionInfo !*CheckState
-> *(!Expression, ![FreeVar], !*ExpressionState, !*ExpressionInfo, !*CheckState);
checkExpression free_vars (PE_List exprs) e_input e_state e_info cs
diff --git a/frontend/checksupport.dcl b/frontend/checksupport.dcl
index 76e10ee..95b5fc9 100644
--- a/frontend/checksupport.dcl
+++ b/frontend/checksupport.dcl
@@ -148,9 +148,6 @@ instance <<< IdentPos, ExplImpInfo, DeclarationInfo
, ef_is_macro_fun :: !Bool
}
-checkLocalFunctions :: !Index !Level !LocalDefs !*{#FunDef} !*ExpressionInfo !*Heaps !*CheckState
- -> (!.{#FunDef},!.ExpressionInfo,!.Heaps,!.CheckState);
-
convertIndex :: !Index !Index !(Optional ConversionTable) -> !Index
retrieveGlobalDefinition :: !SymbolTableEntry !STE_Kind !Index -> (!Index, !Index)
diff --git a/frontend/checksupport.icl b/frontend/checksupport.icl
index 3824d6f..e1a22c9 100644
--- a/frontend/checksupport.icl
+++ b/frontend/checksupport.icl
@@ -222,20 +222,12 @@ where
, ef_is_macro_fun :: !Bool
}
-checkLocalFunctions :: !Index !Level !LocalDefs !*{#FunDef} !*ExpressionInfo !*Heaps !*CheckState
- -> (!.{#FunDef},!.ExpressionInfo,!.Heaps,!.CheckState);
-checkLocalFunctions mod_index level (CollectedLocalDefs {loc_functions={ir_from,ir_to}}) fun_defs e_info heaps cs
- = checkFunctions mod_index level ir_from ir_to fun_defs e_info heaps cs
-
-
convertIndex :: !Index !Index !(Optional ConversionTable) -> !Index
convertIndex index table_index (Yes tables)
= tables.[table_index].[index]
convertIndex index table_index No
= index
-
-
retrieveGlobalDefinition :: !SymbolTableEntry !STE_Kind !Index -> (!Index, !Index)
retrieveGlobalDefinition {ste_kind = STE_Imported kind decl_index, ste_def_level, ste_index} requ_kind mod_index
| kind == requ_kind