rust/src/test/ui/did_you_mean/issue-54109-without-witness.fixed
Tyson Nottingham ff73a40995 Don't emit "is not a logical operator" error outside of associative expressions
Avoid showing this error where it doesn't make sense by not assuming
"and" and "or" were intended to mean "&&" and "||" until after we decide
to continue parsing input as an associative expression.

Note that the decision of whether or not to continue parsing input as an
associative expression doesn't actually depend on this assumption.

Fixes #75599
2020-08-18 12:15:57 -07:00

62 lines
1.1 KiB
Rust

// run-rustfix
// This test is to check if suggestions can be applied automatically.
#![allow(dead_code, unused_parens)]
fn main() {}
fn test_and() {
let a = true;
let b = false;
let _ = a && b; //~ ERROR `and` is not a logical operator
if a && b { //~ ERROR `and` is not a logical operator
println!("both");
}
}
fn test_or() {
let a = true;
let b = false;
let _ = a || b; //~ ERROR `or` is not a logical operator
if a || b { //~ ERROR `or` is not a logical operator
println!("both");
}
}
fn test_and_par() {
let a = true;
let b = false;
if (a && b) { //~ ERROR `and` is not a logical operator
println!("both");
}
}
fn test_or_par() {
let a = true;
let b = false;
if (a || b) { //~ ERROR `or` is not a logical operator
println!("both");
}
}
fn test_while_and() {
let a = true;
let b = false;
while a && b { //~ ERROR `and` is not a logical operator
println!("both");
}
}
fn test_while_or() {
let a = true;
let b = false;
while a || b { //~ ERROR `or` is not a logical operator
println!("both");
}
}