about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-06-30 20:14:40 +0000
committerbors <bors@rust-lang.org>2024-06-30 20:14:40 +0000
commit6868c831a1eb45c5150ff623cef5e42a8b8946d0 (patch)
tree25442147b3a5744d947f7cdbb69ab40b92e78db5 /tests
parentef3d6fd7002500af0a985f70d3ac5152623c1396 (diff)
parent40371973535621352543572c6f8e43978204ba9a (diff)
downloadrust-6868c831a1eb45c5150ff623cef5e42a8b8946d0.tar.gz
rust-6868c831a1eb45c5150ff623cef5e42a8b8946d0.zip
Auto merge of #127174 - matthiaskrgr:rollup-q87j6cn, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #126018 (Remove the `box_pointers` lint.)
 - #126895 (Fix simd_gather documentation)
 - #126981 (Replace some magic booleans in match-lowering with enums)
 - #127038 (Update test comment)
 - #127053 (Update the LoongArch target documentation)
 - #127069 (small correction to fmt::Pointer impl)
 - #127157 (coverage: Avoid getting extra unexpansion info when we don't need it)
 - #127160 (Add a regression test for #123630)
 - #127161 (Improve `run-make-support` library `args` API)

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'tests')
-rw-r--r--tests/run-make/arguments-non-c-like-enum/rmake.rs4
-rw-r--r--tests/run-make/c-link-to-rust-staticlib/rmake.rs2
-rw-r--r--tests/run-make/c-link-to-rust-va-list-fn/rmake.rs2
-rw-r--r--tests/run-make/glibc-staticlib-args/rmake.rs4
-rw-r--r--tests/run-make/print-check-cfg/rmake.rs8
-rw-r--r--tests/run-make/return-non-c-like-enum/rmake.rs4
-rw-r--r--tests/run-make/textrel-on-minimal-lib/rmake.rs4
-rw-r--r--tests/ui/const-generics/repeat_expr_hack_gives_right_generics.rs22
-rw-r--r--tests/ui/const-generics/repeat_expr_hack_gives_right_generics.stderr2
-rw-r--r--tests/ui/lint/lint-owned-heap-memory.rs12
-rw-r--r--tests/ui/lint/lint-owned-heap-memory.stderr20
-rw-r--r--tests/ui/lint/reasons-erroneous.rs2
-rw-r--r--tests/ui/lint/reasons-erroneous.stderr6
-rw-r--r--tests/ui/suggestions/types/dont-suggest-path-names.rs17
-rw-r--r--tests/ui/suggestions/types/dont-suggest-path-names.stderr26
15 files changed, 73 insertions, 62 deletions
diff --git a/tests/run-make/arguments-non-c-like-enum/rmake.rs b/tests/run-make/arguments-non-c-like-enum/rmake.rs
index 88f4d664aa6..036691e8509 100644
--- a/tests/run-make/arguments-non-c-like-enum/rmake.rs
+++ b/tests/run-make/arguments-non-c-like-enum/rmake.rs
@@ -10,8 +10,8 @@ pub fn main() {
     cc().input("test.c")
         .input(static_lib_name("nonclike"))
         .out_exe("test")
-        .args(&extra_c_flags())
-        .args(&extra_cxx_flags())
+        .args(extra_c_flags())
+        .args(extra_cxx_flags())
         .inspect(|cmd| eprintln!("{cmd:?}"))
         .run();
     run("test");
diff --git a/tests/run-make/c-link-to-rust-staticlib/rmake.rs b/tests/run-make/c-link-to-rust-staticlib/rmake.rs
index 2edd36b9ec0..d60b37524f4 100644
--- a/tests/run-make/c-link-to-rust-staticlib/rmake.rs
+++ b/tests/run-make/c-link-to-rust-staticlib/rmake.rs
@@ -9,7 +9,7 @@ use std::fs;
 
 fn main() {
     rustc().input("foo.rs").run();
-    cc().input("bar.c").input(static_lib_name("foo")).out_exe("bar").args(&extra_c_flags()).run();
+    cc().input("bar.c").input(static_lib_name("foo")).out_exe("bar").args(extra_c_flags()).run();
     run("bar");
     remove_file(static_lib_name("foo"));
     run("bar");
diff --git a/tests/run-make/c-link-to-rust-va-list-fn/rmake.rs b/tests/run-make/c-link-to-rust-va-list-fn/rmake.rs
index a01e259bce0..63904bea622 100644
--- a/tests/run-make/c-link-to-rust-va-list-fn/rmake.rs
+++ b/tests/run-make/c-link-to-rust-va-list-fn/rmake.rs
@@ -12,7 +12,7 @@ fn main() {
     cc().input("test.c")
         .input(static_lib_name("checkrust"))
         .out_exe("test")
-        .args(&extra_c_flags())
+        .args(extra_c_flags())
         .run();
     run("test");
 }
diff --git a/tests/run-make/glibc-staticlib-args/rmake.rs b/tests/run-make/glibc-staticlib-args/rmake.rs
index 8ab10419ab9..fc13be53812 100644
--- a/tests/run-make/glibc-staticlib-args/rmake.rs
+++ b/tests/run-make/glibc-staticlib-args/rmake.rs
@@ -11,8 +11,8 @@ fn main() {
     cc().input("program.c")
         .arg(static_lib_name("library"))
         .out_exe("program")
-        .args(&extra_c_flags())
-        .args(&extra_cxx_flags())
+        .args(extra_c_flags())
+        .args(extra_cxx_flags())
         .run();
     run(&bin_name("program"));
 }
diff --git a/tests/run-make/print-check-cfg/rmake.rs b/tests/run-make/print-check-cfg/rmake.rs
index f4b02b5e265..4a79910c8e0 100644
--- a/tests/run-make/print-check-cfg/rmake.rs
+++ b/tests/run-make/print-check-cfg/rmake.rs
@@ -86,12 +86,8 @@ fn main() {
 }
 
 fn check(CheckCfg { args, contains }: CheckCfg) {
-    let output = rustc()
-        .input("lib.rs")
-        .arg("-Zunstable-options")
-        .arg("--print=check-cfg")
-        .args(&*args)
-        .run();
+    let output =
+        rustc().input("lib.rs").arg("-Zunstable-options").arg("--print=check-cfg").args(args).run();
 
     let stdout = output.stdout_utf8();
 
diff --git a/tests/run-make/return-non-c-like-enum/rmake.rs b/tests/run-make/return-non-c-like-enum/rmake.rs
index e698790b43c..ecdfbd88899 100644
--- a/tests/run-make/return-non-c-like-enum/rmake.rs
+++ b/tests/run-make/return-non-c-like-enum/rmake.rs
@@ -11,8 +11,8 @@ fn main() {
     cc().input("test.c")
         .arg(&static_lib_name("nonclike"))
         .out_exe("test")
-        .args(&extra_c_flags())
-        .args(&extra_cxx_flags())
+        .args(extra_c_flags())
+        .args(extra_cxx_flags())
         .run();
     run("test");
 }
diff --git a/tests/run-make/textrel-on-minimal-lib/rmake.rs b/tests/run-make/textrel-on-minimal-lib/rmake.rs
index eba664479f1..625ded70ad6 100644
--- a/tests/run-make/textrel-on-minimal-lib/rmake.rs
+++ b/tests/run-make/textrel-on-minimal-lib/rmake.rs
@@ -20,8 +20,8 @@ fn main() {
         .out_exe(&dynamic_lib_name("bar"))
         .arg("-fPIC")
         .arg("-shared")
-        .args(&extra_c_flags())
-        .args(&extra_cxx_flags())
+        .args(extra_c_flags())
+        .args(extra_cxx_flags())
         .run();
     llvm_readobj()
         .input(dynamic_lib_name("bar"))
diff --git a/tests/ui/const-generics/repeat_expr_hack_gives_right_generics.rs b/tests/ui/const-generics/repeat_expr_hack_gives_right_generics.rs
index 899db191ae7..e7ae2ea1d5a 100644
--- a/tests/ui/const-generics/repeat_expr_hack_gives_right_generics.rs
+++ b/tests/ui/const-generics/repeat_expr_hack_gives_right_generics.rs
@@ -1,14 +1,18 @@
-// Given an anon const `a`: `{ N }` and some anon const `b` which references the
-// first anon const: `{ [1; a] }`. `b` should not have any generics as it is not
-// a simple `N` argument nor is it a repeat expr count.
+// Given a const argument `a`: `{ N }` and some const argument `b` which references the
+// first anon const like so: `{ [1; a] }`. The `b` anon const should not be allowed to use
+// any generic parameters as:
+// - The anon const is not a simple bare parameter, e.g. `N`
+// - The anon const is not the *length* of an array repeat expression, e.g. the `N` in `[1; N]`.
 //
-// On the other hand `b` *is* a repeat expr count and so it should inherit its
-// parents generics as part of the `const_evaluatable_unchecked` fcw (#76200).
+// On the other hand `a` *is* a const argument for the length of a repeat expression and
+// so it *should* inherit the generics declared on its parent definition. (This hack is
+// introduced for backwards compatibility and is tracked in #76200)
 //
-// In this specific case however `b`'s parent should be `a` and so it should wind
-// up not having any generics after all. If `a` were to inherit its generics from
-// the enclosing item then the reference to `a` from `b` would contain generic
-// parameters not usable by `b` which would cause us to ICE.
+// In this specific case `a`'s parent should be `b` which does not have any generics.
+// This means that even though `a` inherits generics from `b`, it still winds up not having
+// access to any generic parameters.  If `a` were to inherit its generics from the surrounding
+// function `foo` then the reference to `a` from `b` would contain generic parameters not usable
+// by `b` which would cause us to ICE.
 
 fn bar<const N: usize>() {}
 
diff --git a/tests/ui/const-generics/repeat_expr_hack_gives_right_generics.stderr b/tests/ui/const-generics/repeat_expr_hack_gives_right_generics.stderr
index 64548cc5a30..72a6e6977f5 100644
--- a/tests/ui/const-generics/repeat_expr_hack_gives_right_generics.stderr
+++ b/tests/ui/const-generics/repeat_expr_hack_gives_right_generics.stderr
@@ -1,5 +1,5 @@
 error: generic parameters may not be used in const operations
-  --> $DIR/repeat_expr_hack_gives_right_generics.rs:16:17
+  --> $DIR/repeat_expr_hack_gives_right_generics.rs:20:17
    |
 LL |     bar::<{ [1; N] }>();
    |                 ^ cannot perform const operation using `N`
diff --git a/tests/ui/lint/lint-owned-heap-memory.rs b/tests/ui/lint/lint-owned-heap-memory.rs
deleted file mode 100644
index af47d5c0720..00000000000
--- a/tests/ui/lint/lint-owned-heap-memory.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-#![allow(dead_code)]
-#![forbid(box_pointers)]
-
-
-struct Foo {
-    x: Box<isize> //~ ERROR type uses owned
-}
-
-fn main() {
-    let _x: Foo = Foo { x : Box::new(10) };
-    //~^ ERROR type uses owned
-}
diff --git a/tests/ui/lint/lint-owned-heap-memory.stderr b/tests/ui/lint/lint-owned-heap-memory.stderr
deleted file mode 100644
index 5ba39697075..00000000000
--- a/tests/ui/lint/lint-owned-heap-memory.stderr
+++ /dev/null
@@ -1,20 +0,0 @@
-error: type uses owned (Box type) pointers: Box<isize>
-  --> $DIR/lint-owned-heap-memory.rs:6:5
-   |
-LL |     x: Box<isize>
-   |     ^^^^^^^^^^^^^
-   |
-note: the lint level is defined here
-  --> $DIR/lint-owned-heap-memory.rs:2:11
-   |
-LL | #![forbid(box_pointers)]
-   |           ^^^^^^^^^^^^
-
-error: type uses owned (Box type) pointers: Box<isize>
-  --> $DIR/lint-owned-heap-memory.rs:10:29
-   |
-LL |     let _x: Foo = Foo { x : Box::new(10) };
-   |                             ^^^^^^^^^^^^
-
-error: aborting due to 2 previous errors
-
diff --git a/tests/ui/lint/reasons-erroneous.rs b/tests/ui/lint/reasons-erroneous.rs
index 244b376b60d..0aa46953bf1 100644
--- a/tests/ui/lint/reasons-erroneous.rs
+++ b/tests/ui/lint/reasons-erroneous.rs
@@ -9,7 +9,7 @@
 #![warn(bare_trait_objects, reasons = "leaders to no sure land, guides their bearings lost")]
 //~^ ERROR malformed lint attribute
 //~| NOTE bad attribute argument
-#![warn(box_pointers, blerp = "or in league with robbers have reversed the signposts")]
+#![warn(unsafe_code, blerp = "or in league with robbers have reversed the signposts")]
 //~^ ERROR malformed lint attribute
 //~| NOTE bad attribute argument
 #![warn(elided_lifetimes_in_paths, reason("disrespectful to ancestors", "irresponsible to heirs"))]
diff --git a/tests/ui/lint/reasons-erroneous.stderr b/tests/ui/lint/reasons-erroneous.stderr
index adc97174b99..fcff88d8e0f 100644
--- a/tests/ui/lint/reasons-erroneous.stderr
+++ b/tests/ui/lint/reasons-erroneous.stderr
@@ -17,10 +17,10 @@ LL | #![warn(bare_trait_objects, reasons = "leaders to no sure land, guides thei
    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ bad attribute argument
 
 error[E0452]: malformed lint attribute input
-  --> $DIR/reasons-erroneous.rs:12:23
+  --> $DIR/reasons-erroneous.rs:12:22
    |
-LL | #![warn(box_pointers, blerp = "or in league with robbers have reversed the signposts")]
-   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ bad attribute argument
+LL | #![warn(unsafe_code, blerp = "or in league with robbers have reversed the signposts")]
+   |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ bad attribute argument
 
 error[E0452]: malformed lint attribute input
   --> $DIR/reasons-erroneous.rs:15:36
diff --git a/tests/ui/suggestions/types/dont-suggest-path-names.rs b/tests/ui/suggestions/types/dont-suggest-path-names.rs
new file mode 100644
index 00000000000..d160e49cd03
--- /dev/null
+++ b/tests/ui/suggestions/types/dont-suggest-path-names.rs
@@ -0,0 +1,17 @@
+// This is a regression test for #123630
+//
+// Prior to #123703 this was resulting in compiler suggesting add a type signature
+// for `lit` containing path to a file containing `Select` - something obviously invalid.
+
+struct Select<F, I>(F, I);
+fn select<F, I>(filter: F) -> Select<F, I> {}
+//~^ 7:31: 7:43: mismatched types [E0308]
+
+fn parser1() {
+    let lit = select(|x| match x {
+        //~^ 11:23: 11:24: type annotations needed [E0282]
+        _ => (),
+    });
+}
+
+fn main() {}
diff --git a/tests/ui/suggestions/types/dont-suggest-path-names.stderr b/tests/ui/suggestions/types/dont-suggest-path-names.stderr
new file mode 100644
index 00000000000..5c71e350f81
--- /dev/null
+++ b/tests/ui/suggestions/types/dont-suggest-path-names.stderr
@@ -0,0 +1,26 @@
+error[E0308]: mismatched types
+  --> $DIR/dont-suggest-path-names.rs:7:31
+   |
+LL | fn select<F, I>(filter: F) -> Select<F, I> {}
+   |    ------                     ^^^^^^^^^^^^ expected `Select<F, I>`, found `()`
+   |    |
+   |    implicitly returns `()` as its body has no tail or `return` expression
+   |
+   = note: expected struct `Select<F, I>`
+           found unit type `()`
+
+error[E0282]: type annotations needed
+  --> $DIR/dont-suggest-path-names.rs:11:23
+   |
+LL |     let lit = select(|x| match x {
+   |                       ^        - type must be known at this point
+   |
+help: consider giving this closure parameter an explicit type
+   |
+LL |     let lit = select(|x: /* Type */| match x {
+   |                        ++++++++++++
+
+error: aborting due to 2 previous errors
+
+Some errors have detailed explanations: E0282, E0308.
+For more information about an error, try `rustc --explain E0282`.