Skip to content

Incorrect error message for empty object types #61634

Closed
@jonas-schievink

Description

@jonas-schievink

When creating an empty trait object using the dyn syntax, the error message is misleading. Example:

fn main() {
    let _x: &dyn = &0;
}

This is rejected, with this message:

error[E0224]: at least one non-builtin trait is required for an object type
 --> src/main.rs:2:14
  |
2 |     let _x: &dyn = &0;
  |              ^^^

The error message here implies that at least one trait that is not an auto trait (Send/Sync) has to be specified. However, &dyn Send is accepted, and &Send has worked since 1.0.0, so the message is clearly wrong. Should be pretty easy to fix in the code below:

if regular_traits.is_empty() && auto_traits.is_empty() {
span_err!(tcx.sess, span, E0224,
"at least one non-builtin trait is required for an object type");
return tcx.types.err;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-diagnosticsArea: Messages for errors, warnings, and lintsC-bugCategory: This is a bug.E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.E-help-wantedCall for participation: Help is requested to fix this issue.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