Skip to content

[3.0] Rework naming system#2565

Draft
Exanite wants to merge 152 commits intodotnet:develop/3.0from
Exanite:feature/rework-naming-system
Draft

[3.0] Rework naming system#2565
Exanite wants to merge 152 commits intodotnet:develop/3.0from
Exanite:feature/rework-naming-system

Conversation

@Exanite
Copy link
Copy Markdown
Member

@Exanite Exanite commented Apr 10, 2026

Summary of the PR

This PR combines my 3 previous naming-related PRs into a single PR.
This is because the 3 PRs contain interdependent changes and should be merged as a single unit.
That said, each of the 3 PRs focus on different aspects of the naming system and serve as supplementary documentation for the different changes.

Related issues, Discord discussions, or proposals

PRs contained by this PR:

Discord thread where I noted down my thoughts and decisions: https://discord.com/channels/521092042781229087/1485943448069738608

Further Comments

This PR does not introduce any new changes on top of the changes made in the 3 contained PRs.
However, prefer reviewing the diff through this PR since this is the PR that is intended to be merged.

Exanite added 30 commits March 24, 2026 05:59
…ld used by other bindings

The default acronym threshold was changed during #29, which was merged as part of dotnet#2503.
Considering we decided to follow Microsoft's Framework Design Guidelines (acronym threshold of 2) for the bindings and rest of the API, might as well be consistent here.
This lets us handle prefixing and prettification separately, which notably is important if we add prefixes after prettification.
We want to prefix the final name, not the intermediate name in this case.
This no longer makes sense to keep and enabling features by baseline version seems fiddly.
If we need to toggle features for newer versions, we can explicitly add a boolean config option.
Kinda a cop out decision, but it keeps thing simple (and thus maintainable) and implementing it fully seems overkill for what we need.
This is because we no longer output the separating underscore in ExtractNestedTyping
…nvention

Note that the goal is to eventually remove the name overrides for the `EFXEAXREVERBPROPERTIESflLateReverbPan` and `-Delegate` cases entirely.
This is because these are theoretically possible to handle automatically and the reason it doesn't work is due to an edge case interaction with the name override system.

See the "Tasks" section here for more info: dotnet#2555
Exanite added 28 commits April 7, 2026 04:27
This wasn't an actual observed issue, but is a possible edge case I noticed when I was reading the code.

The underlying data collection is a hashset or dictionary, both of which have non-deterministic iteration order.
This commit adds a tie-breaker to prevent this issue from possibly happening.
…inatorAffixes_ReversedPriority and add more comments on why the tests exist
… and update test cases to reflect expected behavior
I expected this to be an issue *eventually*, but apparently it also affects the SDL output already.
This is probably because SDL has multiple overloads of the SDL_main method, which my test case does not test for.
This new snapshot matches the expected output that I wrote in the comments earlier. I just forgot to update the snapshot.
… update test to indicate that one level of scoping is now supported
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant