about summary refs log tree commit diff
path: root/src/test/ui/consts
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2021-03-07 10:41:17 +0900
committerGitHub <noreply@github.com>2021-03-07 10:41:17 +0900
commita0dcfdfb7640b0e807e48d8234d41e5a3a0a7e84 (patch)
treeee29d069e20ff35a2f50e3c1bad5a1a177ea1f82 /src/test/ui/consts
parent05a2366e82165a20dd352a62873fab84cd8d97cd (diff)
parenteb9abea295474d74997cc035d99f33a5249a0400 (diff)
downloadrust-a0dcfdfb7640b0e807e48d8234d41e5a3a0a7e84.tar.gz
rust-a0dcfdfb7640b0e807e48d8234d41e5a3a0a7e84.zip
Rollup merge of #82793 - JohnTitor:move-ui-tests, r=petrochenkov
Move some tests to more suitable subdirs

## The results from classifui

(The full results can be found here: https://gist.github.com/JohnTitor/c9e00840990b5e4a8fc562ec3571e427)

- [lint-expr-stmt-attrs-for-early-lints.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/lint-expr-stmt-attrs-for-early-lints.rs) <sup>unknown</sup>: lint (1.566), feature-gates (-0.632), numbers-arithmetic (-0.955)
- [try-block.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/try-block.rs) <sup>unknown</sup>: binding (1.385), try-block (-0.097), lint (-0.932)
- [backtrace-debuginfo.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/backtrace-debuginfo.rs) <sup>unknown</sup>: macros (1.365), cfg (-0.279), drop (-0.291)
- [issues/issue-3521.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-3521.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/3521)</sup>: consts (1.298), enum (-0.872), in-band-lifetimes (-0.978)
- [impl-bounds-checking.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/impl-bounds-checking.rs) <sup>unknown</sup>: traits (1.243), for (-0.999), shadowed (-0.999)
- [issues/issue-17718.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-17718.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/17718)</sup>: binding (1.236), consts (0.315), extern (-0.779)
- [issue-6157.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issue-6157.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/6157)</sup>: regions (1.213), unboxed-closures (-0.285), traits (-0.510)
- [issues/issue-44373.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-44373.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/44373)</sup>: consts (1.187), nll (0.427), borrowck (-0.704)
- [nullable-pointer-ffi-compat.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/nullable-pointer-ffi-compat.rs) <sup>unknown</sup>: regions (1.184), consts (0.650), traits (-0.571)
- [issues/issue-52992.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-52992.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/52992)</sup>: nll (1.132), associated-types (-0.628), parser (-0.893)
- [issues/issue-2330.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-2330.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/2330)</sup>: traits (1.116), directory_ownership (-0.691), compare-method (-0.981)
- [issue-74047.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issue-74047.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/74047)</sup>: async-await (1.109), impl-trait (-0.629), resolve (-0.781)
- [issues/issue-33140.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-33140.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/33140)</sup>: traits (1.063), coherence (-0.832), codemap_tests (-0.944)
- [issues/issue-28576.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-28576.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/28576)</sup>: traits (1.062), associated-types (-0.333), impl-trait (-0.697)
- [issues/issue-7222.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-7222.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/7222)</sup>: binding (1.062), consts (-0.226), numbers-arithmetic (-0.294)
- [tup.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/tup.rs) <sup>unknown</sup>: structs-enums (1.061), threads-sendsync (-0.550), moves (-0.790)
- [issues/issue-15261.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-15261.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/15261)</sup>: consts (1.052), where-clauses (-0.833), macros (-0.862)
- [issues/issue-76179.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-76179.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/76179)</sup>: associated-types (1.048), process (-0.887), rfc-2457 (-0.984)
- [issues/issue-42344.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-42344.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/42344)</sup>: borrowck (1.043), macros (-0.481), specialization (-0.966)
- [issues/issue-18661.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-18661.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/18661)</sup>: unboxed-closures (1.038), mir (-0.648), higher-rank-trait-bounds (-0.688)
- [issues/issue-2633.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-2633.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/2633)</sup>: structs-enums (1.020), functions-closures (-0.722), lint (-0.967)

Some notes:
- If there are related tests (e.g. it's for the same issue), they are moved along with it.
- Moved try-block.rs to the `try-block` dir.
- Moved tup.rs to the `tuple` dir.
- Moved some tests that classified as consts to the `statics` dir, as it seems they have statics actually.
- Skipped backtrace-debuginfo.rs because I think classifui overrates their helper macros.

cc #73494
r? ```@petrochenkov```
Diffstat (limited to 'src/test/ui/consts')
-rw-r--r--src/test/ui/consts/auxiliary/issue-17718-aux.rs10
-rw-r--r--src/test/ui/consts/issue-17718.rs75
-rw-r--r--src/test/ui/consts/issue-3521.fixed13
-rw-r--r--src/test/ui/consts/issue-3521.rs13
-rw-r--r--src/test/ui/consts/issue-3521.stderr12
5 files changed, 123 insertions, 0 deletions
diff --git a/src/test/ui/consts/auxiliary/issue-17718-aux.rs b/src/test/ui/consts/auxiliary/issue-17718-aux.rs
new file mode 100644
index 00000000000..91abdbff868
--- /dev/null
+++ b/src/test/ui/consts/auxiliary/issue-17718-aux.rs
@@ -0,0 +1,10 @@
+use std::sync::atomic;
+
+pub const C1: usize = 1;
+pub const C2: atomic::AtomicUsize = atomic::AtomicUsize::new(0);
+pub const C3: fn() = { fn foo() {} foo };
+pub const C4: usize = C1 * C1 + C1 / C1;
+pub const C5: &'static usize = &C4;
+
+pub static S1: usize = 3;
+pub static S2: atomic::AtomicUsize = atomic::AtomicUsize::new(0);
diff --git a/src/test/ui/consts/issue-17718.rs b/src/test/ui/consts/issue-17718.rs
new file mode 100644
index 00000000000..c6341d80844
--- /dev/null
+++ b/src/test/ui/consts/issue-17718.rs
@@ -0,0 +1,75 @@
+// run-pass
+#![allow(dead_code)]
+// aux-build:issue-17718-aux.rs
+
+extern crate issue_17718_aux as other;
+
+use std::sync::atomic::{AtomicUsize, Ordering};
+
+const C1: usize = 1;
+const C2: AtomicUsize = AtomicUsize::new(0);
+const C3: fn() = foo;
+const C4: usize = C1 * C1 + C1 / C1;
+const C5: &'static usize = &C4;
+const C6: usize = {
+    const C: usize = 3;
+    C
+};
+
+static S1: usize = 3;
+static S2: AtomicUsize = AtomicUsize::new(0);
+
+mod test {
+    static A: usize = 4;
+    static B: &'static usize = &A;
+    static C: &'static usize = &(A);
+}
+
+fn foo() {}
+
+fn main() {
+    assert_eq!(C1, 1);
+    assert_eq!(C3(), ());
+    assert_eq!(C2.fetch_add(1, Ordering::SeqCst), 0);
+    assert_eq!(C2.fetch_add(1, Ordering::SeqCst), 0);
+    assert_eq!(C4, 2);
+    assert_eq!(*C5, 2);
+    assert_eq!(C6, 3);
+    assert_eq!(S1, 3);
+    assert_eq!(S2.fetch_add(1, Ordering::SeqCst), 0);
+    assert_eq!(S2.fetch_add(1, Ordering::SeqCst), 1);
+
+    match 1 {
+        C1 => {}
+        _ => unreachable!(),
+    }
+
+    let _a = C1;
+    let _a = C2;
+    let _a = C3;
+    let _a = C4;
+    let _a = C5;
+    let _a = C6;
+    let _a = S1;
+
+    assert_eq!(other::C1, 1);
+    assert_eq!(other::C3(), ());
+    assert_eq!(other::C2.fetch_add(1, Ordering::SeqCst), 0);
+    assert_eq!(other::C2.fetch_add(1, Ordering::SeqCst), 0);
+    assert_eq!(other::C4, 2);
+    assert_eq!(*other::C5, 2);
+    assert_eq!(other::S1, 3);
+    assert_eq!(other::S2.fetch_add(1, Ordering::SeqCst), 0);
+    assert_eq!(other::S2.fetch_add(1, Ordering::SeqCst), 1);
+
+    let _a = other::C1;
+    let _a = other::C2;
+    let _a = other::C3;
+    let _a = other::C4;
+    let _a = other::C5;
+
+    match 1 {
+        other::C1 => {}
+        _ => unreachable!(),
+    }
+}
diff --git a/src/test/ui/consts/issue-3521.fixed b/src/test/ui/consts/issue-3521.fixed
new file mode 100644
index 00000000000..f76106dfff1
--- /dev/null
+++ b/src/test/ui/consts/issue-3521.fixed
@@ -0,0 +1,13 @@
+// run-rustfix
+fn main() {
+    #[allow(non_upper_case_globals)]
+    const foo: isize = 100;
+
+    #[derive(Debug)]
+    enum Stuff {
+        Bar = foo
+        //~^ ERROR attempt to use a non-constant value in a constant
+    }
+
+    println!("{:?}", Stuff::Bar);
+}
diff --git a/src/test/ui/consts/issue-3521.rs b/src/test/ui/consts/issue-3521.rs
new file mode 100644
index 00000000000..c425a22df91
--- /dev/null
+++ b/src/test/ui/consts/issue-3521.rs
@@ -0,0 +1,13 @@
+// run-rustfix
+fn main() {
+    #[allow(non_upper_case_globals)]
+    let foo: isize = 100;
+
+    #[derive(Debug)]
+    enum Stuff {
+        Bar = foo
+        //~^ ERROR attempt to use a non-constant value in a constant
+    }
+
+    println!("{:?}", Stuff::Bar);
+}
diff --git a/src/test/ui/consts/issue-3521.stderr b/src/test/ui/consts/issue-3521.stderr
new file mode 100644
index 00000000000..aa42772f12d
--- /dev/null
+++ b/src/test/ui/consts/issue-3521.stderr
@@ -0,0 +1,12 @@
+error[E0435]: attempt to use a non-constant value in a constant
+  --> $DIR/issue-3521.rs:8:15
+   |
+LL |     let foo: isize = 100;
+   |     ------- help: consider using `const` instead of `let`: `const foo`
+...
+LL |         Bar = foo
+   |               ^^^ non-constant value
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0435`.