rust/src/test/ui/pattern/pattern-error-continue.rs
Esteban Küber b26ddb8af3 Point at local similarly named element and tweak references to variants
Point at the span for the definition of ADTs internal to the current
crate.

Look at the leading char of the ident to determine whether we're
expecting a likely fn or any of a fn, a tuple struct or a tuple variant.

Turn fn `add_typo_suggestion` into a `Resolver` method.
2019-10-27 11:50:43 -07:00

37 lines
796 B
Rust

// Test that certain pattern-match type errors are non-fatal
enum A {
B(isize, isize),
C(isize, isize, isize),
D
}
struct S {
a: isize
}
fn f(_c: char) {}
fn main() {
match A::B(1, 2) {
A::B(_, _, _) => (), //~ ERROR this pattern has 3 fields, but
A::D(_) => (), //~ ERROR expected tuple struct or tuple variant, found unit variant `A::D`
_ => ()
}
match 'c' {
S { .. } => (),
//~^ ERROR mismatched types
//~| expected type `char`
//~| found type `S`
//~| expected char, found struct `S`
_ => ()
}
f(true);
//~^ ERROR mismatched types
//~| expected char, found bool
match () {
E::V => {} //~ ERROR failed to resolve: use of undeclared type or module `E`
}
}