80 lines
1.7 KiB
Rust
80 lines
1.7 KiB
Rust
// Tests that a suggestion is issued if the user wrote a colon instead of
|
|
// a path separator in a match arm.
|
|
|
|
mod qux {
|
|
pub enum Foo {
|
|
Bar,
|
|
Baz,
|
|
}
|
|
}
|
|
|
|
use qux::Foo;
|
|
|
|
fn f() -> Foo { Foo::Bar }
|
|
|
|
fn g1() {
|
|
match f() {
|
|
Foo:Bar => {}
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
_ => {}
|
|
}
|
|
match f() {
|
|
qux::Foo:Bar => {}
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
_ => {}
|
|
}
|
|
match f() {
|
|
qux:Foo::Baz => {}
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
_ => {}
|
|
}
|
|
match f() {
|
|
qux: Foo::Baz if true => {}
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
_ => {}
|
|
}
|
|
if let Foo:Bar = f() { //~ WARN: irrefutable `if let` pattern
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
//~| HELP: consider replacing the `if let` with a `let`
|
|
}
|
|
}
|
|
|
|
fn g1_neg() {
|
|
match f() {
|
|
ref qux: Foo::Baz => {}
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
_ => {}
|
|
}
|
|
}
|
|
|
|
fn g2_neg() {
|
|
match f() {
|
|
mut qux: Foo::Baz => {}
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
_ => {}
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let myfoo = Foo::Bar;
|
|
match myfoo {
|
|
Foo::Bar => {}
|
|
Foo:Bar::Baz => {}
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
}
|
|
match myfoo {
|
|
Foo::Bar => {}
|
|
Foo:Bar => {}
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
}
|
|
}
|