diff options
Diffstat (limited to 'tests/ui/numbers-arithmetic')
| -rw-r--r-- | tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.rs | 7 | ||||
| -rw-r--r-- | tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.stderr | 42 |
2 files changed, 49 insertions, 0 deletions
diff --git a/tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.rs b/tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.rs new file mode 100644 index 00000000000..4325c8b111b --- /dev/null +++ b/tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.rs @@ -0,0 +1,7 @@ +//! This test ensures that the unary negation operator (`-`) cannot be applied to unsigned ints + +fn main() { + let x = -1 as usize; //~ ERROR: cannot apply unary operator `-` + let x = (-1) as usize; //~ ERROR: cannot apply unary operator `-` + let x: u32 = -1; //~ ERROR: cannot apply unary operator `-` +} diff --git a/tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.stderr b/tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.stderr new file mode 100644 index 00000000000..4ce870ded9f --- /dev/null +++ b/tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.stderr @@ -0,0 +1,42 @@ +error[E0600]: cannot apply unary operator `-` to type `usize` + --> $DIR/unary-negation-unsigned-integer-error.rs:4:13 + | +LL | let x = -1 as usize; + | ^^ cannot apply unary operator `-` + | + = note: unsigned values cannot be negated +help: you may have meant the maximum value of `usize` + | +LL - let x = -1 as usize; +LL + let x = usize::MAX; + | + +error[E0600]: cannot apply unary operator `-` to type `usize` + --> $DIR/unary-negation-unsigned-integer-error.rs:5:13 + | +LL | let x = (-1) as usize; + | ^^^^ cannot apply unary operator `-` + | + = note: unsigned values cannot be negated +help: you may have meant the maximum value of `usize` + | +LL - let x = (-1) as usize; +LL + let x = usize::MAX; + | + +error[E0600]: cannot apply unary operator `-` to type `u32` + --> $DIR/unary-negation-unsigned-integer-error.rs:6:18 + | +LL | let x: u32 = -1; + | ^^ cannot apply unary operator `-` + | + = note: unsigned values cannot be negated +help: you may have meant the maximum value of `u32` + | +LL - let x: u32 = -1; +LL + let x: u32 = u32::MAX; + | + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0600`. |
