[m-rev.] diff: do not generate C# field names that begin with a digit

Julien Fischer jfischer at opturion.com
Mon Sep 29 00:47:58 AEST 2025


Do not generate C# field names that begin with a digit.

The fact that we are not currently doing this causes the
submodules/dot_separator test to fail in the csharp grade, due to that test
containing data constructors whose names begin with digits.

compiler/mlds_to_cs_name.m:
    As above.

Julien.

diff --git a/compiler/mlds_to_cs_name.m b/compiler/mlds_to_cs_name.m
index 425c0e545..58f290cc5 100644
--- a/compiler/mlds_to_cs_name.m
+++ b/compiler/mlds_to_cs_name.m
@@ -225,7 +225,7 @@
local_var_name_to_ll_string_for_csharp(LocalVarName) = LocalVarNameStr
:-

 field_var_name_to_nll_string_for_csharp(FieldVarName) = FieldVarNameStr :-
     RawString = ml_field_var_name_to_string(FieldVarName),
-    MangledString = name_mangle(RawString),
+    MangledString = name_mangle_no_leading_digit(RawString),
     FieldVarNameStr = make_valid_csharp_symbol_name(MangledString).

 field_var_name_to_ll_string_for_csharp(FieldVarName) = FieldVarNameStr :-


More information about the reviews mailing list