Skip to content

Poor error message for pointer patterns with trait objects #11469

Closed
@huonw

Description

@huonw
trait Foo {}
impl Foo for int {}

fn main() {
    let ~x = ~1 as ~Foo;
    let &x = &1 as &Foo;
}
trait-object-pattern.rs:5:9: 5:11 error: mismatched types: expected `~Foo:Send` but found a ~-box pattern
trait-object-pattern.rs:5     let ~x = ~1 as ~Foo;
                                  ^~
trait-object-pattern.rs:6:9: 6:11 error: mismatched types: expected `&Foo<no-bounds>` but found an &-pointer pattern
trait-object-pattern.rs:6     let &x = &1 as &Foo;
                                  ^~

The error message doesn't make it obvious what the type mismatch is, since ~Foo:Send certainly appears to satisfy a ~-box pattern.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-diagnosticsArea: Messages for errors, warnings, and lints

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions