aboutsummaryrefslogtreecommitdiff
path: root/frontend/checksupport.icl
diff options
context:
space:
mode:
authormartinw2001-02-13 09:29:39 +0000
committermartinw2001-02-13 09:29:39 +0000
commit4a1649a8718b3fbd79d9d68c29e2a3ca1106fbfc (patch)
treed313c1e1bb960ff1d669ec53b7e9976165002c9f /frontend/checksupport.icl
parentRemoved pretty printing of types in instances (diff)
delaying "determineTypesOfInstances" and "checkSpecialsOfInstances" after
checking of a whole dcl module component --> now cyclic module dependencies should work git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@294 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/checksupport.icl')
-rw-r--r--frontend/checksupport.icl15
1 files changed, 12 insertions, 3 deletions
diff --git a/frontend/checksupport.icl b/frontend/checksupport.icl
index dabd555..7eb91eb 100644
--- a/frontend/checksupport.icl
+++ b/frontend/checksupport.icl
@@ -106,7 +106,6 @@ where
, dcl_functions :: !{# FunType }
, dcl_instances :: !IndexRange
, dcl_macros :: !IndexRange
- , dcl_class_specials :: !IndexRange
, dcl_specials :: !IndexRange
, dcl_common :: !CommonDefs
, dcl_sizes :: !{# Int}
@@ -428,6 +427,18 @@ where
-> cs
= { cs & cs_error = checkErrorWithIdentPos (newPosition ident dcl_pos) " multiply defined" cs.cs_error}
+removeImportedSymbolsFromSymbolTable :: Declaration !*SymbolTable -> .SymbolTable
+removeImportedSymbolsFromSymbolTable {dcl_ident=dcl_ident=:{id_info}, dcl_index} symbol_table
+ # ({ste_kind,ste_def_level,ste_previous}, symbol_table)
+ = readPtr id_info symbol_table
+ symbol_table
+ = symbol_table <:= (id_info, ste_previous)
+ = case ste_kind of
+ STE_Imported (STE_Field selector_id) def_mod
+ -> removeFieldFromSelectorDefinition selector_id def_mod dcl_index symbol_table
+ _
+ -> symbol_table
+
removeFieldFromSelectorDefinition :: !Ident .Int .Int !*(Heap SymbolTableEntry) -> .Heap SymbolTableEntry;
removeFieldFromSelectorDefinition {id_info} field_mod field_index symbol_table
# (entry, symbol_table) = readPtr id_info symbol_table
@@ -620,5 +631,3 @@ restoreHeap {id_info} cs_symbol_table
# ({ste_previous}, cs_symbol_table)
= readPtr id_info cs_symbol_table
= writePtr id_info ste_previous cs_symbol_table
-
-expand_syn_types_late_XXX yes no :== no