Skip to content

fix: keep every enum value when a deduplicated name collides with another - #2669

Open
56steve wants to merge 1 commit into
oapi-codegen:mainfrom
56steve:fix-enum-suffix-collision
Open

56steve wants to merge 1 commit into
oapi-codegen:mainfrom
56steve:fix-enum-suffix-collision

Conversation

@56steve

@56steve 56steve commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

When two enum values sanitize to the same Go name, SanitizeEnumNames appends a numeric suffix. That suffix could land on a name another value already owns, and the map write silently replaced it. For example enum: [A, a, A1] produced only A and A1, so one value lost its constant (and [A, A1, a] lost A1's original mapping the same way).

The suffix loop now skips any name that another value claims or that is already taken, so the example yields A, A2 and A1. Enums without such a collision keep exactly the names they had before. The new test covers collisions with a later and an earlier value, plus the unchanged no-collision case.

@56steve
56steve requested a review from a team as a code owner November 12, 2026 05:43
@greptile-apps

greptile-apps Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge.

Summary

SanitizeEnumNames now reserves original names before assigning numeric suffixes.

  • Enum values keep separate Go names when suffixes collide.

Reviews (1) · Last reviewed commit: "fix: keep every enum value when a dedupl..." · Reviewed by Greptile

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