From 218caa410aa38c29984be31a5229b9fa717560ee Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:13 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- .../auxiliary/trait_superkinds_in_metadata.rs | 8 ----- .../builtin-superkinds-capabilities-transitive.rs | 25 --------------- .../builtin-superkinds-capabilities-xc.rs | 27 ---------------- .../builtin-superkinds-capabilities.rs | 21 ------------ .../builtin-superkinds-double-superkind.rs | 14 -------- .../builtin-superkinds-double-superkind.stderr | 37 ---------------------- .../builtin-superkinds-in-metadata.rs | 16 ---------- .../builtin-superkinds-in-metadata.stderr | 24 -------------- .../builtin-superkinds-in-metadata2.rs | 23 -------------- .../builtin-superkinds-phantom-typaram.rs | 18 ----------- .../builtin-superkinds-self-type.rs | 17 ---------- .../builtin-superkinds-self-type.stderr | 19 ----------- .../builtin-superkinds-simple.rs | 9 ------ .../builtin-superkinds-simple.stderr | 16 ---------- .../builtin-superkinds-simple2.rs | 10 ------ .../builtin-superkinds-typaram-not-send.rs | 8 ----- .../builtin-superkinds-typaram-not-send.stderr | 19 ----------- .../builtin-superkinds-typaram.rs | 11 ------- 18 files changed, 322 deletions(-) delete mode 100644 src/test/ui/builtin-superkinds/auxiliary/trait_superkinds_in_metadata.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-transitive.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-xc.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-capabilities.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-double-superkind.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-double-superkind.stderr delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata.stderr delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata2.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-phantom-typaram.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-self-type.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-self-type.stderr delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-simple.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-simple.stderr delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-simple2.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-typaram-not-send.rs delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-typaram-not-send.stderr delete mode 100644 src/test/ui/builtin-superkinds/builtin-superkinds-typaram.rs (limited to 'src/test/ui/builtin-superkinds') diff --git a/src/test/ui/builtin-superkinds/auxiliary/trait_superkinds_in_metadata.rs b/src/test/ui/builtin-superkinds/auxiliary/trait_superkinds_in_metadata.rs deleted file mode 100644 index acfd1e13e..000000000 --- a/src/test/ui/builtin-superkinds/auxiliary/trait_superkinds_in_metadata.rs +++ /dev/null @@ -1,8 +0,0 @@ -// Test library crate for cross-crate usages of traits inheriting -// from the builtin kinds. Mostly tests metadata correctness. - -#![crate_type="lib"] - -pub trait RequiresShare : Sync { } -pub trait RequiresRequiresShareAndSend : RequiresShare + Send { } -pub trait RequiresCopy : Copy { } diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-transitive.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-transitive.rs deleted file mode 100644 index 1f997d371..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-transitive.rs +++ /dev/null @@ -1,25 +0,0 @@ -// run-pass -// Tests "transitivity" of super-builtin-kinds on traits. Here, if -// we have a Foo, we know we have a Bar, and if we have a Bar, we -// know we have a Send. So if we have a Foo we should know we have -// a Send. Basically this just makes sure rustc is using -// each_bound_trait_and_supertraits in type_contents correctly. - - -use std::sync::mpsc::{channel, Sender}; - -trait Bar : Send { } -trait Foo : Bar { } - -impl Foo for T { } -impl Bar for T { } - -fn foo(val: T, chan: Sender) { - chan.send(val).unwrap(); -} - -pub fn main() { - let (tx, rx) = channel(); - foo(31337, tx); - assert_eq!(rx.recv().unwrap(), 31337); -} diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-xc.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-xc.rs deleted file mode 100644 index 8416bb3a3..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities-xc.rs +++ /dev/null @@ -1,27 +0,0 @@ -// run-pass -// aux-build:trait_superkinds_in_metadata.rs - -// Tests "capabilities" granted by traits with super-builtin-kinds, -// even when using them cross-crate. - - -extern crate trait_superkinds_in_metadata; - -use std::sync::mpsc::{channel, Sender, Receiver}; -use trait_superkinds_in_metadata::{RequiresRequiresShareAndSend, RequiresShare}; - -#[derive(PartialEq, Debug)] -struct X(T); - -impl RequiresShare for X { } -impl RequiresRequiresShareAndSend for X { } - -fn foo(val: T, chan: Sender) { - chan.send(val).unwrap(); -} - -pub fn main() { - let (tx, rx): (Sender>, Receiver>) = channel(); - foo(X(31337), tx); - assert_eq!(rx.recv().unwrap(), X(31337)); -} diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities.rs deleted file mode 100644 index e936f921a..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-capabilities.rs +++ /dev/null @@ -1,21 +0,0 @@ -// run-pass -// Tests "capabilities" granted by traits that inherit from super- -// builtin-kinds, e.g., if a trait requires Send to implement, then -// at usage site of that trait, we know we have the Send capability. - - -use std::sync::mpsc::{channel, Sender, Receiver}; - -trait Foo : Send { } - -impl Foo for T { } - -fn foo(val: T, chan: Sender) { - chan.send(val).unwrap(); -} - -pub fn main() { - let (tx, rx): (Sender, Receiver) = channel(); - foo(31337, tx); - assert_eq!(rx.recv().unwrap(), 31337); -} diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-double-superkind.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-double-superkind.rs deleted file mode 100644 index e716489c2..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-double-superkind.rs +++ /dev/null @@ -1,14 +0,0 @@ -// Test for traits that inherit from multiple builtin kinds at once, -// testing that all such kinds must be present on implementing types. - -trait Foo : Send+Sync { } - -impl Foo for (T,) { } -//~^ ERROR `T` cannot be sent between threads safely [E0277] - -impl Foo for (T,T) { } -//~^ ERROR `T` cannot be shared between threads safely [E0277] - -impl Foo for (T,T,T) { } // (ok) - -fn main() { } diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-double-superkind.stderr b/src/test/ui/builtin-superkinds/builtin-superkinds-double-superkind.stderr deleted file mode 100644 index 492316f00..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-double-superkind.stderr +++ /dev/null @@ -1,37 +0,0 @@ -error[E0277]: `T` cannot be sent between threads safely - --> $DIR/builtin-superkinds-double-superkind.rs:6:24 - | -LL | impl Foo for (T,) { } - | ^^^ `T` cannot be sent between threads safely - | - = note: required because it appears within the type `(T,)` -note: required by a bound in `Foo` - --> $DIR/builtin-superkinds-double-superkind.rs:4:13 - | -LL | trait Foo : Send+Sync { } - | ^^^^ required by this bound in `Foo` -help: consider further restricting this bound - | -LL | impl Foo for (T,) { } - | +++++++++++++++++++ - -error[E0277]: `T` cannot be shared between threads safely - --> $DIR/builtin-superkinds-double-superkind.rs:9:16 - | -LL | impl Foo for (T,T) { } - | ^^^ `T` cannot be shared between threads safely - | - = note: required because it appears within the type `(T, T)` -note: required by a bound in `Foo` - --> $DIR/builtin-superkinds-double-superkind.rs:4:18 - | -LL | trait Foo : Send+Sync { } - | ^^^^ required by this bound in `Foo` -help: consider further restricting this bound - | -LL | impl Foo for (T,T) { } - | +++++++++++++++++++ - -error: aborting due to 2 previous errors - -For more information about this error, try `rustc --explain E0277`. diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata.rs deleted file mode 100644 index b4555a180..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata.rs +++ /dev/null @@ -1,16 +0,0 @@ -// aux-build:trait_superkinds_in_metadata.rs - -// Test for traits inheriting from the builtin kinds cross-crate. -// Mostly tests correctness of metadata. - -extern crate trait_superkinds_in_metadata; -use trait_superkinds_in_metadata::{RequiresRequiresShareAndSend, RequiresShare}; - -struct X(T); - -impl RequiresShare for X { } - -impl RequiresRequiresShareAndSend for X { } -//~^ ERROR `T` cannot be sent between threads safely [E0277] - -fn main() { } diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata.stderr b/src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata.stderr deleted file mode 100644 index a46e4b233..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata.stderr +++ /dev/null @@ -1,24 +0,0 @@ -error[E0277]: `T` cannot be sent between threads safely - --> $DIR/builtin-superkinds-in-metadata.rs:13:23 - | -LL | impl RequiresRequiresShareAndSend for X { } - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `T` cannot be sent between threads safely - | -note: required because it appears within the type `X` - --> $DIR/builtin-superkinds-in-metadata.rs:9:8 - | -LL | struct X(T); - | ^ -note: required by a bound in `RequiresRequiresShareAndSend` - --> $DIR/auxiliary/trait_superkinds_in_metadata.rs:7:58 - | -LL | pub trait RequiresRequiresShareAndSend : RequiresShare + Send { } - | ^^^^ required by this bound in `RequiresRequiresShareAndSend` -help: consider further restricting this bound - | -LL | impl RequiresRequiresShareAndSend for X { } - | +++++++++++++++++++ - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0277`. diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata2.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata2.rs deleted file mode 100644 index cdde48871..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-in-metadata2.rs +++ /dev/null @@ -1,23 +0,0 @@ -// run-pass - -#![allow(unused_imports)] - -// aux-build:trait_superkinds_in_metadata.rs - -// Tests (correct) usage of trait super-builtin-kinds cross-crate. - -extern crate trait_superkinds_in_metadata; -use trait_superkinds_in_metadata::{RequiresRequiresShareAndSend, RequiresShare}; -use trait_superkinds_in_metadata::RequiresCopy; -use std::marker; - -#[derive(Copy, Clone)] -struct X(#[allow(unused_tuple_struct_fields)] T); - -impl RequiresShare for X { } - -impl RequiresRequiresShareAndSend for X { } - -impl RequiresCopy for X { } - -pub fn main() { } diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-phantom-typaram.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-phantom-typaram.rs deleted file mode 100644 index 9b80664b0..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-phantom-typaram.rs +++ /dev/null @@ -1,18 +0,0 @@ -// run-pass - -#![allow(dead_code)] -// Tests that even when a type parameter doesn't implement a required -// super-builtin-kind of a trait, if the type parameter is never used, -// the type can implement the trait anyway. - -// pretty-expanded FIXME #23616 - -use std::marker; - -trait Foo : Send { } - -struct X { marker: marker::PhantomData } - -impl Foo for X { } - -pub fn main() { } diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-self-type.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-self-type.rs deleted file mode 100644 index 6fba87b31..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-self-type.rs +++ /dev/null @@ -1,17 +0,0 @@ -// Tests (negatively) the ability for the Self type in default methods -// to use capabilities granted by builtin kinds as supertraits. - -use std::sync::mpsc::{channel, Sender}; - -trait Foo : Sized+Sync+'static { - fn foo(self, mut chan: Sender) { } -} - -impl Foo for T { } -//~^ ERROR the parameter type `T` may not live long enough - -fn main() { - let (tx, rx) = channel(); - 1193182.foo(tx); - assert_eq!(rx.recv(), 1193182); -} diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-self-type.stderr b/src/test/ui/builtin-superkinds/builtin-superkinds-self-type.stderr deleted file mode 100644 index e2b177b95..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-self-type.stderr +++ /dev/null @@ -1,19 +0,0 @@ -error[E0310]: the parameter type `T` may not live long enough - --> $DIR/builtin-superkinds-self-type.rs:10:16 - | -LL | impl Foo for T { } - | ^^^ ...so that the type `T` will meet its required lifetime bounds... - | -note: ...that is required by this bound - --> $DIR/builtin-superkinds-self-type.rs:6:24 - | -LL | trait Foo : Sized+Sync+'static { - | ^^^^^^^ -help: consider adding an explicit lifetime bound... - | -LL | impl Foo for T { } - | +++++++++ - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0310`. diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-simple.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-simple.rs deleted file mode 100644 index 1620f8d5c..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-simple.rs +++ /dev/null @@ -1,9 +0,0 @@ -// Basic test for traits inheriting from the builtin kinds, checking -// the type contents of the implementing type (that's not a typaram). - -trait Foo : Send { } - -impl Foo for std::rc::Rc { } -//~^ ERROR `Rc` cannot be sent between threads safely - -fn main() { } diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-simple.stderr b/src/test/ui/builtin-superkinds/builtin-superkinds-simple.stderr deleted file mode 100644 index 9db9cbfdb..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-simple.stderr +++ /dev/null @@ -1,16 +0,0 @@ -error[E0277]: `Rc` cannot be sent between threads safely - --> $DIR/builtin-superkinds-simple.rs:6:6 - | -LL | impl Foo for std::rc::Rc { } - | ^^^ `Rc` cannot be sent between threads safely - | - = help: the trait `Send` is not implemented for `Rc` -note: required by a bound in `Foo` - --> $DIR/builtin-superkinds-simple.rs:4:13 - | -LL | trait Foo : Send { } - | ^^^^ required by this bound in `Foo` - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0277`. diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-simple2.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-simple2.rs deleted file mode 100644 index 8d2477157..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-simple2.rs +++ /dev/null @@ -1,10 +0,0 @@ -// run-pass -// Simple test case of implementing a trait with super-builtin-kinds. - -// pretty-expanded FIXME #23616 - -trait Foo : Send { } - -impl Foo for isize { } - -pub fn main() { } diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-typaram-not-send.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-typaram-not-send.rs deleted file mode 100644 index 74ae62711..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-typaram-not-send.rs +++ /dev/null @@ -1,8 +0,0 @@ -// Basic test for traits inheriting from the builtin kinds. - -trait Foo : Send { } - -impl Foo for T { } -//~^ ERROR `T` cannot be sent between threads safely - -fn main() { } diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-typaram-not-send.stderr b/src/test/ui/builtin-superkinds/builtin-superkinds-typaram-not-send.stderr deleted file mode 100644 index 3ec0b907d..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-typaram-not-send.stderr +++ /dev/null @@ -1,19 +0,0 @@ -error[E0277]: `T` cannot be sent between threads safely - --> $DIR/builtin-superkinds-typaram-not-send.rs:5:24 - | -LL | impl Foo for T { } - | ^^^ `T` cannot be sent between threads safely - | -note: required by a bound in `Foo` - --> $DIR/builtin-superkinds-typaram-not-send.rs:3:13 - | -LL | trait Foo : Send { } - | ^^^^ required by this bound in `Foo` -help: consider further restricting this bound - | -LL | impl Foo for T { } - | +++++++++++++++++++ - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0277`. diff --git a/src/test/ui/builtin-superkinds/builtin-superkinds-typaram.rs b/src/test/ui/builtin-superkinds/builtin-superkinds-typaram.rs deleted file mode 100644 index f999dfff7..000000000 --- a/src/test/ui/builtin-superkinds/builtin-superkinds-typaram.rs +++ /dev/null @@ -1,11 +0,0 @@ -// run-pass -// Tests correct implementation of traits with super-builtin-kinds -// using a bounded type parameter. - -// pretty-expanded FIXME #23616 - -trait Foo : Send { } - -impl Foo for T { } - -pub fn main() { } -- cgit v1.2.3