diff options
author | martinw | 2001-01-12 16:25:02 +0000 |
---|---|---|
committer | martinw | 2001-01-12 16:25:02 +0000 |
commit | 18b01b5e638151124207d602d7a751f1f87b50d3 (patch) | |
tree | 09717828c1d0bf51b2cef779f9e12923bee20ab6 /backend/backendconvert.icl | |
parent | more node_number=0 statements (diff) |
New algorithm for explicit imports that also works with cyclic module dependencies
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@286 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backend/backendconvert.icl')
-rw-r--r-- | backend/backendconvert.icl | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/backend/backendconvert.icl b/backend/backendconvert.icl index aa85086..ecca95b 100644 --- a/backend/backendconvert.icl +++ b/backend/backendconvert.icl @@ -415,24 +415,24 @@ backEndConvertModulesH predefs {fe_icl = fe_icl =: {icl_name, icl_functions, icl functionIndices = flatten [[(componentIndex, member) \\ member <- group.group_members] \\ group <-: fe_components & componentIndex <- [0..]] -declareOtherDclModules :: {#DclModule} Int ModuleNumberSet -> BackEnder +declareOtherDclModules :: {#DclModule} Int NumberSet -> BackEnder declareOtherDclModules dcls main_dcl_module_n used_module_numbers = foldStateWithIndexA declareOtherDclModule dcls where declareOtherDclModule :: ModuleIndex DclModule -> BackEnder declareOtherDclModule moduleIndex dclModule - | moduleIndex == main_dcl_module_n || moduleIndex == cPredefinedModuleIndex || not (in_module_number_set moduleIndex used_module_numbers) + | moduleIndex == main_dcl_module_n || moduleIndex == cPredefinedModuleIndex || not (inNumberSet moduleIndex used_module_numbers) = identity // otherwise = declareDclModule moduleIndex dclModule -defineOtherDclModules :: {#DclModule} Int ModuleNumberSet VarHeap -> BackEnder +defineOtherDclModules :: {#DclModule} Int NumberSet VarHeap -> BackEnder defineOtherDclModules dcls main_dcl_module_n used_module_numbers varHeap = foldStateWithIndexA (defineOtherDclModule varHeap) dcls where defineOtherDclModule :: VarHeap ModuleIndex DclModule -> BackEnder defineOtherDclModule varHeap moduleIndex dclModule - | moduleIndex == main_dcl_module_n || moduleIndex == cPredefinedModuleIndex || not (in_module_number_set moduleIndex used_module_numbers) + | moduleIndex == main_dcl_module_n || moduleIndex == cPredefinedModuleIndex || not (inNumberSet moduleIndex used_module_numbers) = identity // otherwise = defineDclModule varHeap moduleIndex dclModule @@ -455,13 +455,13 @@ defineDclModule varHeap moduleIndex {dcl_name, dcl_common, dcl_functions, dcl_is = declare moduleIndex varHeap dcl_common o` declareFunTypes moduleIndex dcl_functions dcl_instances.ir_from varHeap -removeExpandedTypesFromDclModules :: {#DclModule} ModuleNumberSet -> BackEnder +removeExpandedTypesFromDclModules :: {#DclModule} NumberSet -> BackEnder removeExpandedTypesFromDclModules dcls used_module_numbers = foldStateWithIndexA removeExpandedTypesFromDclModule dcls where removeExpandedTypesFromDclModule :: ModuleIndex DclModule -> BackEnder removeExpandedTypesFromDclModule moduleIndex dclModule=:{dcl_functions} - | moduleIndex == cPredefinedModuleIndex || not (in_module_number_set moduleIndex used_module_numbers) + | moduleIndex == cPredefinedModuleIndex || not (inNumberSet moduleIndex used_module_numbers) = identity = foldStateWithIndexA (removeExpandedTypesFromFunType moduleIndex) dcl_functions where @@ -877,7 +877,7 @@ predefineSymbols {dcl_common} predefs , asai_varHeap :: !VarHeap } -adjustArrayFunctions :: PredefinedSymbols IndexRange Int {#FunDef} {#DclModule} {#ClassInstance} ModuleNumberSet VarHeap -> BackEnder +adjustArrayFunctions :: PredefinedSymbols IndexRange Int {#FunDef} {#DclModule} {#ClassInstance} NumberSet VarHeap -> BackEnder adjustArrayFunctions predefs arrayInstancesRange main_dcl_module_n functions dcls icl_instances used_module_numbers varHeap = adjustStdArray arrayInfo predefs (if (arrayModuleIndex == main_dcl_module_n) icl_instances stdArray.dcl_common.com_instance_defs) @@ -931,7 +931,7 @@ adjustArrayFunctions predefs arrayInstancesRange main_dcl_module_n functions dcl adjustStdArray :: AdjustStdArrayInfo PredefinedSymbols {#ClassInstance} -> BackEnder adjustStdArray arrayInfo predefs instances - | arrayModuleIndex == NoIndex || not (in_module_number_set arrayModuleIndex used_module_numbers) + | arrayModuleIndex == NoIndex || not (inNumberSet arrayModuleIndex used_module_numbers) // || arrayModuleIndex <> main_dcl_module_n = identity // otherwise |