e4b2936983
Revert "review comment: Remove AST AnonTy" This reverts commit020cca8d36
. Revert "Ensure macros are not affected" This reverts commit12d18e4031
. Revert "Emit fewer errors on patterns with possible type ascription" This reverts commitc847a01a3b
. Revert "Teach parser to understand fake anonymous enum syntax" This reverts commit2d82420665
.
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() {
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
}
|
|
}
|
|
|
|
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
|
|
//~| ERROR: failed to resolve: `Bar` is a variant, not a module
|
|
}
|
|
match myfoo {
|
|
Foo::Bar => {}
|
|
Foo:Bar => {}
|
|
//~^ ERROR: expected one of
|
|
//~| HELP: maybe write a path separator here
|
|
}
|
|
}
|