summaryrefslogtreecommitdiffstats
path: root/src/test/ui/lang-items
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:25 +0000
commit5363f350887b1e5b5dd21a86f88c8af9d7fea6da (patch)
tree35ca005eb6e0e9a1ba3bb5dbc033209ad445dc17 /src/test/ui/lang-items
parentAdding debian version 1.66.0+dfsg1-1. (diff)
downloadrustc-5363f350887b1e5b5dd21a86f88c8af9d7fea6da.tar.xz
rustc-5363f350887b1e5b5dd21a86f88c8af9d7fea6da.zip
Merging upstream version 1.67.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/lang-items')
-rw-r--r--src/test/ui/lang-items/lang-item-generic-requirements.rs2
-rw-r--r--src/test/ui/lang-items/lang-item-generic-requirements.stderr27
-rw-r--r--src/test/ui/lang-items/lang-item-missing-generator.rs6
-rw-r--r--src/test/ui/lang-items/lang-item-missing-generator.stderr11
-rw-r--r--src/test/ui/lang-items/missing-clone-for-suggestion.rs20
-rw-r--r--src/test/ui/lang-items/missing-clone-for-suggestion.stderr21
6 files changed, 58 insertions, 29 deletions
diff --git a/src/test/ui/lang-items/lang-item-generic-requirements.rs b/src/test/ui/lang-items/lang-item-generic-requirements.rs
index fbb56e528..3d33adf68 100644
--- a/src/test/ui/lang-items/lang-item-generic-requirements.rs
+++ b/src/test/ui/lang-items/lang-item-generic-requirements.rs
@@ -22,8 +22,6 @@ trait MyIndex<'a, T> {}
#[lang = "phantom_data"]
//~^ ERROR `phantom_data` language item must be applied to a struct with 1 generic argument
struct MyPhantomData<T, U>;
-//~^ ERROR parameter `T` is never used
-//~| ERROR parameter `U` is never used
#[lang = "owned_box"]
//~^ ERROR `owned_box` language item must be applied to a struct with at least 1 generic argument
diff --git a/src/test/ui/lang-items/lang-item-generic-requirements.stderr b/src/test/ui/lang-items/lang-item-generic-requirements.stderr
index 326f5b0d5..4d349a25f 100644
--- a/src/test/ui/lang-items/lang-item-generic-requirements.stderr
+++ b/src/test/ui/lang-items/lang-item-generic-requirements.stderr
@@ -33,7 +33,7 @@ LL | struct MyPhantomData<T, U>;
| ------ this struct has 2 generic arguments
error[E0718]: `owned_box` language item must be applied to a struct with at least 1 generic argument
- --> $DIR/lang-item-generic-requirements.rs:28:1
+ --> $DIR/lang-item-generic-requirements.rs:26:1
|
LL | #[lang = "owned_box"]
| ^^^^^^^^^^^^^^^^^^^^^
@@ -42,7 +42,7 @@ LL | struct Foo;
| - this struct has 0 generic arguments
error[E0718]: `start` language item must be applied to a function with 1 generic argument
- --> $DIR/lang-item-generic-requirements.rs:34:1
+ --> $DIR/lang-item-generic-requirements.rs:32:1
|
LL | #[lang = "start"]
| ^^^^^^^^^^^^^^^^^
@@ -50,25 +50,6 @@ LL |
LL | fn start(_: *const u8, _: isize, _: *const *const u8) -> isize {
| - this function has 0 generic arguments
-error[E0392]: parameter `T` is never used
- --> $DIR/lang-item-generic-requirements.rs:24:22
- |
-LL | struct MyPhantomData<T, U>;
- | ^ unused parameter
- |
- = help: consider removing `T` or referring to it in a field
- = help: if you intended `T` to be a const parameter, use `const T: usize` instead
-
-error[E0392]: parameter `U` is never used
- --> $DIR/lang-item-generic-requirements.rs:24:25
- |
-LL | struct MyPhantomData<T, U>;
- | ^ unused parameter
- |
- = help: consider removing `U` or referring to it in a field
- = help: if you intended `U` to be a const parameter, use `const U: usize` instead
-
-error: aborting due to 8 previous errors
+error: aborting due to 6 previous errors
-Some errors have detailed explanations: E0392, E0718.
-For more information about an error, try `rustc --explain E0392`.
+For more information about this error, try `rustc --explain E0718`.
diff --git a/src/test/ui/lang-items/lang-item-missing-generator.rs b/src/test/ui/lang-items/lang-item-missing-generator.rs
index 0c3295429..9b9aff38e 100644
--- a/src/test/ui/lang-items/lang-item-missing-generator.rs
+++ b/src/test/ui/lang-items/lang-item-missing-generator.rs
@@ -1,12 +1,14 @@
// error-pattern: requires `generator` lang_item
-#![feature(no_core, lang_items, unboxed_closures)]
+#![feature(no_core, lang_items, unboxed_closures, tuple_trait)]
#![no_core]
#[lang = "sized"] pub trait Sized { }
+#[lang = "tuple_trait"] pub trait Tuple { }
+
#[lang = "fn_once"]
#[rustc_paren_sugar]
-pub trait FnOnce<Args> {
+pub trait FnOnce<Args: Tuple> {
type Output;
extern "rust-call" fn call_once(self, args: Args) -> Self::Output;
diff --git a/src/test/ui/lang-items/lang-item-missing-generator.stderr b/src/test/ui/lang-items/lang-item-missing-generator.stderr
index fa13bf0b1..a24fdb5fb 100644
--- a/src/test/ui/lang-items/lang-item-missing-generator.stderr
+++ b/src/test/ui/lang-items/lang-item-missing-generator.stderr
@@ -1,8 +1,15 @@
+error[E0635]: unknown feature `tuple_trait`
+ --> $DIR/lang-item-missing-generator.rs:2:51
+ |
+LL | #![feature(no_core, lang_items, unboxed_closures, tuple_trait)]
+ | ^^^^^^^^^^^
+
error: requires `generator` lang_item
- --> $DIR/lang-item-missing-generator.rs:15:17
+ --> $DIR/lang-item-missing-generator.rs:17:17
|
LL | pub fn abc() -> impl FnOnce(f32) {
| ^^^^^^^^^^^^^^^^
-error: aborting due to previous error
+error: aborting due to 2 previous errors
+For more information about this error, try `rustc --explain E0635`.
diff --git a/src/test/ui/lang-items/missing-clone-for-suggestion.rs b/src/test/ui/lang-items/missing-clone-for-suggestion.rs
new file mode 100644
index 000000000..e8290c009
--- /dev/null
+++ b/src/test/ui/lang-items/missing-clone-for-suggestion.rs
@@ -0,0 +1,20 @@
+// Avoid panicking if the Clone trait is not found while building error suggestions
+// See #104870
+
+#![feature(no_core, lang_items)]
+#![no_core]
+
+#[lang = "sized"]
+trait Sized {}
+
+#[lang = "copy"]
+trait Copy {}
+
+fn g<T>(x: T) {}
+
+fn f(x: *mut u8) {
+ g(x);
+ g(x); //~ ERROR use of moved value: `x`
+}
+
+fn main() {}
diff --git a/src/test/ui/lang-items/missing-clone-for-suggestion.stderr b/src/test/ui/lang-items/missing-clone-for-suggestion.stderr
new file mode 100644
index 000000000..35783a1be
--- /dev/null
+++ b/src/test/ui/lang-items/missing-clone-for-suggestion.stderr
@@ -0,0 +1,21 @@
+error[E0382]: use of moved value: `x`
+ --> $DIR/missing-clone-for-suggestion.rs:17:7
+ |
+LL | fn f(x: *mut u8) {
+ | - move occurs because `x` has type `*mut u8`, which does not implement the `Copy` trait
+LL | g(x);
+ | - value moved here
+LL | g(x);
+ | ^ value used here after move
+ |
+note: consider changing this parameter type in function `g` to borrow instead if owning the value isn't necessary
+ --> $DIR/missing-clone-for-suggestion.rs:13:12
+ |
+LL | fn g<T>(x: T) {}
+ | - ^ this parameter takes ownership of the value
+ | |
+ | in this function
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0382`.