Closed
Description
pub fn foo() {
let x: u32 = 100;
if x as (i32) < 0 {
// ...
}
}
Warnings:
Compiling playground v0.0.1 (/playground)
warning: unnecessary parentheses around type
--> src/lib.rs:3:13
|
3 | if x as (i32) < 0 {
| ^^^^^ help: remove these parentheses
|
= note: `#[warn(unused_parens)]` on by default
warning: 1 warning emitted
Finished dev [unoptimized + debuginfo] target(s) in 2.64s
Following this warning’s help: remove these parentheses
results in
pub fn foo() {
let x: u32 = 100;
if x as i32 < 0 {
// ...
}
}
Compiling playground v0.0.1 (/playground)
error: `<` is interpreted as a start of generic arguments for `i32`, not a comparison
--> src/lib.rs:3:17
|
3 | if x as i32 < 0 {
| -------- ^ --- interpreted as generic arguments
| | |
| | not interpreted as comparison
| help: try comparing the cast value: `(x as i32)`
error: aborting due to previous error
error: could not compile `playground`
To learn more, run the command again with --verbose.
Similarly, cargo fix
results in
Checking playground v0.1.0 (/home/frank/playground)
warning: failed to automatically apply fixes suggested by rustc to crate `playground`
after fixes were automatically applied the compiler reported errors within these files:
* src/lib.rs
This likely indicates a bug in either rustc or cargo itself,
and we would appreciate a bug report! You're likely to see
a number of compiler warnings after this message which cargo
attempted to fix but failed. If you could open an issue at
https://github.com/rust-lang/rust/issues
quoting the full output of this command we'd be very appreciative!
Note that you may be able to make some more progress in the near-term
fixing code with the `--broken-code` flag
The following errors were reported:
error: `<` is interpreted as a start of generic arguments for `i32`, not a comparison
--> src/lib.rs:3:17
|
3 | if x as i32 < 0 {
| -------- ^ --- interpreted as generic arguments
| | |
| | not interpreted as comparison
| help: try comparing the cast value: `(x as i32)`
error: aborting due to previous error
Original diagnostics will follow.
warning: unnecessary parentheses around type
--> src/lib.rs:3:13
|
3 | if x as (i32) < 0 {
| ^^^^^ help: remove these parentheses
|
= note: `#[warn(unused_parens)]` on by default
warning: unnecessary parentheses around type
--> src/lib.rs:3:13
|
3 | if x as (i32) < 0 {
| ^^^^^ help: remove these parentheses
|
= note: `#[warn(unused_parens)]` on by default
warning: 1 warning emitted
warning: 1 warning emitted
Finished dev [unoptimized + debuginfo] target(s) in 0.62s
(for some reason the warning is duplicated in the cargo fix
output...)