]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/arithmetic.rs
Auto merge of #4478 - tsurai:master, r=flip1995
[rust.git] / tests / ui / arithmetic.rs
index a5bf8c9280e9faf5699e5c1417603a666285eb34..c3cea99760683ccef2b4687eb2923c3e3a5c1004 100644 (file)
@@ -1,18 +1,13 @@
-// Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-
-#![feature(tool_lints)]
-
-
 #![warn(clippy::integer_arithmetic, clippy::float_arithmetic)]
-#![allow(unused, clippy::shadow_reuse, clippy::shadow_unrelated, clippy::no_effect, clippy::unnecessary_operation)]
+#![allow(
+    unused,
+    clippy::shadow_reuse,
+    clippy::shadow_unrelated,
+    clippy::no_effect,
+    clippy::unnecessary_operation
+)]
+
+#[rustfmt::skip]
 fn main() {
     let i = 1i32;
     1 + i;
@@ -22,6 +17,10 @@ fn main() {
     i - 2 + 2 - i;
     -i;
 
+    // no error, overflows are checked by `overflowing_literals`
+    -1;
+    -(-1);
+
     i & 1; // no wrapping
     i | 1;
     i ^ 1;
@@ -37,4 +36,36 @@ fn main() {
     f / 2.0;
     f - 2.0 * 4.2;
     -f;
+
+    // No errors for the following items because they are constant expressions
+    enum Foo {
+        Bar = -2,
+    }
+    struct Baz([i32; 1 + 1]);
+    union Qux {
+        field: [i32; 1 + 1],
+    }
+    type Alias = [i32; 1 + 1];
+
+    const FOO: i32 = -2;
+    static BAR: i32 = -2;
+
+    let _: [i32; 1 + 1] = [0, 0];
+
+    let _: [i32; 1 + 1] = {
+        let a: [i32; 1 + 1] = [0, 0];
+        a
+    };
+
+    trait Trait {
+        const ASSOC: i32 = 1 + 1;
+    }
+
+    impl Trait for Foo {
+        const ASSOC: i32 = {
+            let _: [i32; 1 + 1];
+            fn foo() {}
+            1 + 1
+        };
+    }
 }