aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend/generics1.icl7
1 files changed, 5 insertions, 2 deletions
diff --git a/frontend/generics1.icl b/frontend/generics1.icl
index ef5e590..1b72f5e 100644
--- a/frontend/generics1.icl
+++ b/frontend/generics1.icl
@@ -608,6 +608,7 @@ where
, td_arity_expr
, num_conses_expr
, td_conses_expr
+ // TODO: module_name_expr
]
predefs heaps
@@ -719,7 +720,9 @@ where
build_field_dsc group_index cons_dsc_ds field_dsc_ds {fs_ident, fs_index} (modules, heaps)
# name_expr = makeStringExpr fs_ident.id_name
- # index_expr = makeIntExpr fs_index
+ # ({sd_field_nr}, modules)
+ = modules! [td_module].com_selector_defs.[fs_index]
+ # index_expr = makeIntExpr sd_field_nr
# (cons_expr, heaps) = buildFunApp main_module_index cons_dsc_ds [] heaps
# (body_expr, heaps)
= buildPredefConsApp PD_CGenericFieldDescriptor
@@ -1088,7 +1091,7 @@ where
= build_case_expr case_patterns heaps
// REC case
- build_case_field var body_expr heaps
+ build_case_rec var body_expr heaps
# pat = buildPredefConsPattern PD_ConsREC [var] body_expr predefs
# {pds_module, pds_def} = predefs.[PD_TypeREC]
# case_patterns = AlgebraicPatterns {glob_module = pds_module, glob_object = pds_def} [pat]