Skip to content

fix: allow enum variants named Error - #5

Open
akselerando wants to merge 1 commit into
Rick-Phoenix:mainfrom
omnimod-technologies:fix/enum-error-variant
Open

fix: allow enum variants named Error#5
akselerando wants to merge 1 commit into
Rick-Phoenix:mainfrom
omnimod-technologies:fix/enum-error-variant

Conversation

@akselerando

@akselerando akselerando commented Aug 10, 2026

Copy link
Copy Markdown

Problem

If an enum has a variant named Error, Self::Error becomes ambiguous since both the enum variant and the associated type are named the same.

See also: https://doc.rust-lang.org/rustc/lints/listing/deny-by-default.html#ambiguous-associated-items

Solution

Fully type out the error type to avoid ambiguity


Full disclosure: this problem was debugged with AI and the solution was partially implemented using Claude

The generated `TryFrom<i32>` impl referred to its error type as
`Self::Error`. When the enum also has a variant named `Error`, this
reference is ambiguous and triggers the `ambiguous_associated_items`
lint, which is deny-by-default and will become a hard error
(rust-lang/rust#57644).

Fully qualify the reference as `<Self as TryFrom<i32>>::Error` instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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