aboutsummaryrefslogtreecommitdiff
path: root/frontend/postparse.icl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/postparse.icl')
-rw-r--r--frontend/postparse.icl8
1 files changed, 6 insertions, 2 deletions
diff --git a/frontend/postparse.icl b/frontend/postparse.icl
index 91e845c..def5cd8 100644
--- a/frontend/postparse.icl
+++ b/frontend/postparse.icl
@@ -725,7 +725,7 @@ where
MakeEmptyModule name :== { mod_name = name, mod_type = MK_None, mod_imports = [], mod_imported_objects = [],
mod_defs = { def_types = [], def_constructors = [], def_selectors = [], def_classes = [], def_macros = { ir_from = 0, ir_to = 0 },
- def_members = [], def_funtypes = [], def_instances = [] } }
+ def_members = [], def_funtypes = [], def_instances = [], /* AA */ def_generics = [] } }
parseAndScanDclModule :: !Ident !Position ![ScannedModule] ![Ident] !SearchPaths !*Files !*CollectAdmin
-> *(!Bool, ![ScannedModule], !*Files, !*CollectAdmin)
@@ -1072,6 +1072,10 @@ where
= ([], ca)
reorganiseDefinitions icl_module [PD_Instances class_instances : defs] cons_count sel_count mem_count type_count ca
= reorganiseDefinitions icl_module ([PD_Instance class_instance \\ class_instance <- class_instances] ++ defs) cons_count sel_count mem_count type_count ca
+reorganiseDefinitions icl_module [PD_Generic gen : defs] cons_count sel_count mem_count type_count ca
+ # (fun_defs, c_defs, imports, imported_objects, ca) = reorganiseDefinitions icl_module defs cons_count sel_count mem_count type_count ca
+ c_defs = {c_defs & def_generics = [gen : c_defs.def_generics]}
+ = (fun_defs, c_defs, imports, imported_objects, ca)
reorganiseDefinitions icl_module [PD_Import new_imports : defs] cons_count sel_count mem_count type_count ca
# (fun_defs, c_defs, imports, imported_objects, ca) = reorganiseDefinitions icl_module defs cons_count sel_count mem_count type_count ca
= (fun_defs, c_defs, new_imports ++ imports, imported_objects, ca)
@@ -1083,7 +1087,7 @@ reorganiseDefinitions icl_module [def:defs] _ _ _ _ ca
reorganiseDefinitions icl_module [] _ _ _ _ ca
= ([], { def_types = [], def_constructors = [], def_selectors = [], def_macros = [], def_classes = [], def_members = [],
- def_instances = [], def_funtypes = [] }, [], [], ca)
+ def_instances = [], def_funtypes = [], /* AA */ def_generics = [] }, [], [], ca)
belongsToTypeSpec name prio new_name is_infix :==
name == new_name && sameFixity prio is_infix