Skip to content

Compiler suggests non-nonsensical #[derive(<Trait>.into())] #136343

Closed
@ntc2

Description

@ntc2

Code

Seeing this in a private codebase, with

$ rustc --version
rustc 1.85.0-nightly (dff3e7ccd 2024-11-26)

Sorry about the low-effort bug report, but I'm hopeful this is easy to track down ...

Current output

error[E0308]: mismatched types
  --> <file>:83:17
   |
83 | #[derive(Debug, Storable, Clone, PartialEq, Arbitrary)]
   |                 ^^^^^^^^
    <big type error>
   = note: expected struct `Vec<ArenaKey<...>`
              found struct `Vec<VersionedArenaKey<...>`
   = note: the full type name has been written to '<path>'
   = note: consider using `--verbose` to print the full type name to the console
   = note: this error originates in the derive macro `Storable` (in Nightly builds, run with -Z macro-backtrace for more info)
help: call `Into::into` on this expression to convert `VersionedArenaKey<...>` into `ArenaKey<...>`
   |
83 | #[derive(Debug, Storable.into(), Clone, PartialEq, Arbitrary)]
   |                         +++++++

Desired output

Not sure, but it shouldn't be suggesting syntactically invalid nonsense :)

Rationale and extra context

No response

Other cases

Rust Version

rustc 1.85.0-nightly (dff3e7ccd 2024-11-26)
binary: rustc
commit-hash: dff3e7ccd4a18958c938136c4ccdc853fcc86194
commit-date: 2024-11-26
host: x86_64-unknown-linux-gnu
release: 1.85.0-nightly
LLVM version: 19.1.4

Anything else?

No response

Metadata

Metadata

Assignees

Labels

A-diagnosticsArea: Messages for errors, warnings, and lintsA-suggestion-diagnosticsArea: Suggestions generated by the compiler applied by `cargo fix`D-incorrectDiagnostics: A diagnostic that is giving misleading or incorrect information.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions