JensD-git and Claude Opus 5.5
914dda60cf
fix(csharp): keep names that differ only by _ or case apart, in ids and in member-call keys ( #4415 )
...
make_id strips leading/trailing underscores and casefolds, while C# is
case-sensitive and spells private members `_Name`. In one file,
`Action()` / `_Action()`, `Size` / `_Size`, `Load()` / `load()` and the
types `Pair` / `_Pair` minted one id; add_node kept the first declaration
and dropped the second, and the dropped method's calls were credited to
the survivor.
Apply the rule of #3302 to C#: a pre-scan groups the declared names of a
file (types; per type its methods, properties and enum members) that
would share an id, and _underscore_salted_nid (renamed from the Python
helper, unchanged) keeps the plain id on the one name without a leading
underscore and salts the rest. In-file type references and base lists go
through the same rule. A name without a colliding sibling keeps its id.
The C# member-call resolver keyed names by lowercased alphanumerics, so
`this.Put()` bound to `_Put()` on a nearer base, and `Token` / `TOKEN`
were one type key. The key now keeps `_` and case.
Fixes #4415 .
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-13 15:12:57 +02:00
..
2026-10-13 10:27:02 +01:00
2026-10-10 22:13:39 +01:00
2026-10-11 20:47:55 +01:00
2026-10-12 22:58:40 +01:00
2026-10-08 14:27:06 +01:00
2026-10-05 19:40:12 +01:00
2026-10-09 19:18:06 +01:00
2026-10-12 12:16:17 +01:00
2026-10-12 14:49:28 +01:00
2026-10-05 20:11:30 +01:00
2026-10-12 23:02:50 +01:00
2026-10-07 17:26:00 +01:00
2026-10-04 20:40:34 +01:00
2026-10-12 14:49:28 +01:00
2026-10-11 20:49:42 +01:00
2026-10-09 02:48:22 +01:00
2026-10-08 14:27:06 +01:00
2026-10-11 21:07:15 +01:00
2026-10-06 20:54:55 +01:00
2026-10-13 11:14:16 +01:00
2026-10-13 11:18:12 +01:00
2026-10-04 20:23:44 +01:00
2026-10-13 15:12:57 +02:00
2026-10-13 11:14:16 +01:00
2026-10-06 20:54:15 +01:00
2026-10-09 19:19:15 +01:00
2026-10-13 15:12:57 +02:00
2026-10-09 19:17:53 +01:00
2026-10-12 14:50:32 +01:00
2026-10-12 14:50:32 +01:00
2026-10-13 15:12:57 +02:00
2026-10-12 13:01:00 +01:00
2026-10-12 22:37:55 +01:00
2026-10-12 12:29:39 +01:00
2026-10-12 22:38:15 +01:00
2026-10-11 20:47:55 +01:00
2026-10-12 22:58:40 +01:00
2026-10-10 21:20:29 +01:00
2026-10-08 14:28:54 +01:00
2026-10-08 14:28:27 +01:00
2026-10-04 20:23:14 +01:00
2026-10-07 17:26:00 +01:00
2026-10-11 20:49:42 +01:00
2026-10-11 20:49:42 +01:00
2026-10-09 02:51:03 +01:00
2026-10-11 21:06:09 +01:00
2026-10-12 22:58:40 +01:00
2026-10-07 17:26:17 +01:00
2026-10-07 17:52:47 +01:00
2026-10-12 12:16:17 +01:00
2026-10-12 22:37:54 +01:00
2026-10-13 11:14:22 +01:00
2026-10-13 11:14:26 +01:00
2026-10-09 19:46:57 +01:00
2026-10-08 14:27:06 +01:00
2026-10-10 21:37:39 +01:00
2026-10-13 10:26:57 +01:00
2026-10-13 10:26:57 +01:00
2026-10-11 20:47:44 +01:00
2026-10-10 21:20:29 +01:00
2026-10-12 14:49:28 +01:00
2026-10-13 11:14:16 +01:00
2026-10-09 19:18:06 +01:00
2026-10-06 20:54:35 +01:00
2026-10-04 20:23:44 +01:00
2026-10-13 11:14:16 +01:00
2026-10-12 22:37:54 +01:00
2026-10-12 22:37:54 +01:00
2026-10-09 19:18:06 +01:00
2026-10-09 19:18:06 +01:00
2026-10-10 01:13:46 +01:00
2026-10-07 17:26:00 +01:00
2026-10-12 23:02:44 +01:00
2026-10-12 23:02:50 +01:00
2026-10-09 19:17:53 +01:00
2026-10-10 22:11:03 +01:00
2026-10-04 20:23:14 +01:00
2026-10-13 11:14:16 +01:00
2026-10-05 19:40:12 +01:00
2026-10-12 12:16:17 +01:00
2026-10-12 12:16:17 +01:00
2026-10-12 12:16:17 +01:00
2026-10-12 22:38:11 +01:00
2026-10-11 21:06:27 +01:00
2026-10-11 20:47:44 +01:00
2026-10-11 20:49:42 +01:00
2026-10-10 01:24:41 +01:00
2026-10-12 22:58:40 +01:00
2026-10-07 17:26:00 +01:00
2026-10-09 19:18:06 +01:00
2026-10-05 20:12:06 +01:00
2026-10-10 21:39:00 +01:00
2026-10-07 17:26:17 +01:00
2026-10-07 17:26:17 +01:00
2026-10-09 19:18:06 +01:00
2026-10-13 11:16:15 +01:00
2026-10-13 11:14:16 +01:00
2026-10-07 17:26:00 +01:00
2026-10-10 01:13:46 +01:00
2026-10-07 17:26:00 +01:00
2026-10-05 19:40:04 +01:00
2026-10-11 20:49:42 +01:00
2026-10-05 19:40:12 +01:00
2026-10-12 14:49:34 +01:00
2026-10-13 11:14:30 +01:00
2026-10-13 11:14:30 +01:00
2026-10-08 14:27:06 +01:00
2026-10-13 10:27:02 +01:00
2026-10-12 12:16:17 +01:00
2026-10-12 12:16:17 +01:00
2026-10-12 12:16:17 +01:00
2026-10-12 13:01:40 +01:00
2026-10-12 22:37:54 +01:00
2026-10-12 22:37:55 +01:00
2026-10-08 14:28:20 +01:00
2026-10-06 20:54:15 +01:00
2026-10-08 14:29:00 +01:00
2026-10-08 14:29:19 +01:00
2026-10-12 13:02:22 +01:00
2026-10-10 01:33:40 +01:00
2026-10-12 22:37:54 +01:00
2026-10-08 14:28:54 +01:00
2026-10-10 01:28:39 +01:00
2026-10-12 13:01:00 +01:00
2026-10-12 22:58:40 +01:00
2026-10-10 01:01:10 +01:00
2026-10-09 19:17:53 +01:00
2026-10-08 14:27:06 +01:00
2026-10-10 22:11:03 +01:00
2026-10-05 20:11:30 +01:00
2026-10-09 02:48:23 +01:00
2026-10-11 21:07:09 +01:00
2026-10-11 21:06:10 +01:00
2026-10-13 11:14:16 +01:00
2026-10-10 21:20:29 +01:00
2026-10-12 12:18:15 +01:00
2026-10-07 17:26:00 +01:00
2026-10-12 22:37:54 +01:00
2026-10-09 19:18:06 +01:00
2026-10-11 21:06:10 +01:00
2026-10-12 14:49:29 +01:00
2026-10-09 19:17:53 +01:00
2026-10-05 20:12:34 +01:00
2026-10-09 19:18:06 +01:00
2026-10-13 10:26:57 +01:00
2026-10-07 17:26:00 +01:00
2026-10-07 17:26:00 +01:00
2026-10-10 22:11:03 +01:00
2026-10-08 14:27:06 +01:00
2026-10-04 20:40:34 +01:00
2026-10-04 20:23:44 +01:00
2026-10-13 11:14:16 +01:00
2026-10-13 11:14:16 +01:00
2026-10-12 22:37:54 +01:00
2026-10-09 19:18:06 +01:00
2026-10-11 20:49:48 +01:00
2026-10-10 21:38:54 +01:00
2026-10-13 11:15:14 +01:00
2026-10-07 17:26:11 +01:00
2026-10-11 20:47:44 +01:00
2026-10-09 19:18:06 +01:00
2026-10-12 23:02:50 +01:00
2026-10-07 17:26:00 +01:00
2026-10-06 20:54:15 +01:00
2026-10-12 14:49:29 +01:00
2026-10-12 22:58:40 +01:00