Skip to content

Decompose GetCursorName into focused private helpers - #717

Merged
tannergooding merged 1 commit into
dotnet:mainfrom
tannergooding:tannergooding-refactor-decompose-getcursorname
Jul 13, 2026
Merged

Decompose GetCursorName into focused private helpers#717
tannergooding merged 1 commit into
dotnet:mainfrom
tannergooding:tannergooding-refactor-decompose-getcursorname

Conversation

@tannergooding

Copy link
Copy Markdown
Member

Decomposes the long GetCursorName(NamedDecl) method in PInvokeGenerator.Naming.cs into focused private helpers to improve readability, without changing behavior.

Extracted three self-contained sub-computations, each with a small parameter surface:

  • StripCursorNameTagPrefix -- strips the enum /struct /union prefix.
  • StripCursorNameAnonymousQualifier -- handles the ::( anonymous qualifier.
  • ResolveAnonymousCursorName -- resolves the whitespace/(-prefixed anonymous name (TypeDecl/ParmVarDecl/FieldDecl/error branches).

nameString is threaded via ref (scoped ref on the two static span-returning strip helpers to satisfy ref-safety), and name is passed by value. The redundant name = nameString assignments in the resolved branches are dropped since name is only consumed by the trailing nameString ??= name.ToString() fallback, which only runs on the unchanged error path -- so generated output is byte-identical.

Build is 0 warnings / 0 errors and all 3708 golden-file generator tests pass.

Co-authored-by: Copilot App 223556219+Copilot@users.noreply.github.com

Extract the tag-prefix stripping, anonymous-qualifier stripping, and anonymous-name resolution logic out of GetCursorName and into StripCursorNameTagPrefix, StripCursorNameAnonymousQualifier, and ResolveAnonymousCursorName. This makes the top-level flow readable while preserving exact behavior; the redundant name = nameString assignments in the resolved branches are dropped since name is only consumed by the trailing nameString ??= name.ToString() fallback, which only runs in the unchanged error path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@tannergooding
tannergooding merged commit caa6fc2 into dotnet:main Jul 13, 2026
14 checks passed
@tannergooding
tannergooding deleted the tannergooding-refactor-decompose-getcursorname branch July 13, 2026 03:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant