Skip to content

Errors with Generics - missing trait bounds. #112

@drahnr

Description

@drahnr

During cleaning up some of the error handling in paritytech/substrate I encountered that using #[error("yada {0:?}")] for something along the lines of struct Erroris<T>(pub Wrapper<T>) does not enforce a T: Debug bound on the underlying generic type, but requires adding a bound on the struct declaration/definition rather than the generated fmt::Debug impl. That goes against what is stated as a best practice in the future proofing guide https://rust-lang.github.io/api-guidelines/future-proofing.html?#data-structures-do-not-duplicate-derived-trait-bounds-c-struct-bounds .

paritytech/substrate#7631 (comment)

It would be awesome if this could be addressed ❤️

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions