aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend/typesupport.icl11
1 files changed, 9 insertions, 2 deletions
diff --git a/frontend/typesupport.icl b/frontend/typesupport.icl
index ddd39dd..04c6f8d 100644
--- a/frontend/typesupport.icl
+++ b/frontend/typesupport.icl
@@ -1046,8 +1046,15 @@ where
where
write_tc_class (TCClass {glob_object={ds_ident}}) file
= file <<< ds_ident
- write_tc_class (TCGeneric {gtc_class={glob_object={ds_ident}}}) file
- = file <<< ds_ident
+ write_tc_class (TCGeneric {gtc_class={glob_object={ds_ident={id_name}}},gtc_kind}) file
+ = write_generic_class (size id_name-1) id_name gtc_kind
+ where
+ write_generic_class i class_name kind
+ | i>0
+ | class_name.[i]<>'_'
+ = write_generic_class (i-1) class_name kind
+ = file <<< (class_name % (0,i-1)) <<< "{|" <<< gtc_kind <<< "|}"
+ = file <<< class_name
instance writeType SAType
where