2019-04-22 21:37:23 -05:00
|
|
|
// run-rustfix
|
2021-06-10 22:39:05 -05:00
|
|
|
// rustfix-only-machine-applicable
|
2019-04-22 21:37:23 -05:00
|
|
|
#![allow(unused_variables)]
|
|
|
|
#![allow(dead_code)]
|
|
|
|
#![allow(unused_must_use)]
|
|
|
|
|
|
|
|
fn foo() -> i32 {
|
2021-09-04 21:35:59 -05:00
|
|
|
({2}) + {2} //~ ERROR expected expression, found `+`
|
2019-04-22 21:37:23 -05:00
|
|
|
//~^ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
|
|
|
fn bar() -> i32 {
|
2021-09-01 10:54:06 -05:00
|
|
|
({2}) + 2 //~ ERROR leading `+` is not supported
|
2019-04-22 21:37:23 -05:00
|
|
|
//~^ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
|
|
|
fn zul() -> u32 {
|
|
|
|
let foo = 3;
|
2021-09-04 21:35:59 -05:00
|
|
|
({ 42 }) + foo; //~ ERROR expected expression, found `+`
|
2019-04-22 21:37:23 -05:00
|
|
|
//~^ ERROR mismatched types
|
|
|
|
32
|
|
|
|
}
|
|
|
|
|
|
|
|
fn baz() -> i32 {
|
|
|
|
({ 3 }) * 3 //~ ERROR type `{integer}` cannot be dereferenced
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
2019-04-29 16:35:09 -05:00
|
|
|
fn moo(x: u32) -> bool {
|
|
|
|
(match x {
|
|
|
|
_ => 1,
|
2019-04-30 22:37:42 -05:00
|
|
|
}) > 0 //~ ERROR expected expression
|
2019-04-29 16:35:09 -05:00
|
|
|
}
|
|
|
|
|
2021-09-06 17:30:20 -05:00
|
|
|
fn qux() -> u32 {
|
|
|
|
({2}) - 2 //~ ERROR cannot apply unary operator `-` to type `u32`
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
2022-02-24 18:02:38 -06:00
|
|
|
fn space_cadet() -> bool {
|
|
|
|
({ true }) | { true } //~ ERROR E0308
|
|
|
|
//~^ ERROR expected parameter name
|
|
|
|
}
|
|
|
|
|
|
|
|
fn revenge_from_mars() -> bool {
|
|
|
|
({ true }) && { true } //~ ERROR E0308
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
|
|
|
fn attack_from_mars() -> bool {
|
|
|
|
({ true }) || { true } //~ ERROR E0308
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
|
|
|
// This gets corrected by adding a semicolon, instead of parens.
|
|
|
|
// It's placed here to help keep track of the way this diagnostic
|
|
|
|
// needs to interact with type checking to avoid MachineApplicable
|
|
|
|
// suggestions that actually break stuff.
|
|
|
|
//
|
|
|
|
// If you're wondering what happens if that `foo()` is a `true` like
|
|
|
|
// all the ones above use? Nothing. It makes neither suggestion in
|
|
|
|
// that case.
|
|
|
|
fn asteroids() -> impl FnOnce() -> bool {
|
|
|
|
{ foo(); } || { true } //~ ERROR E0308
|
|
|
|
}
|
|
|
|
|
2022-12-03 13:02:39 -06:00
|
|
|
// https://github.com/rust-lang/rust/issues/105179
|
|
|
|
fn r#match() -> i32 {
|
|
|
|
(match () { () => 1 }) + match () { () => 1 } //~ ERROR expected expression, found `+`
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
|
|
|
// https://github.com/rust-lang/rust/issues/102171
|
|
|
|
fn r#unsafe() -> i32 {
|
|
|
|
(unsafe { 1 }) + unsafe { 1 } //~ ERROR expected expression, found `+`
|
|
|
|
//~^ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
2019-04-22 21:37:23 -05:00
|
|
|
fn main() {}
|