diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-07 05:48:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-07 05:48:48 +0000 |
commit | ef24de24a82fe681581cc130f342363c47c0969a (patch) | |
tree | 0d494f7e1a38b95c92426f58fe6eaa877303a86c /tests/ui/generator/print | |
parent | Releasing progress-linux version 1.74.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-ef24de24a82fe681581cc130f342363c47c0969a.tar.xz rustc-ef24de24a82fe681581cc130f342363c47c0969a.zip |
Merging upstream version 1.75.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/generator/print')
6 files changed, 0 insertions, 223 deletions
diff --git a/tests/ui/generator/print/generator-print-verbose-1.rs b/tests/ui/generator/print/generator-print-verbose-1.rs deleted file mode 100644 index e52234c08..000000000 --- a/tests/ui/generator/print/generator-print-verbose-1.rs +++ /dev/null @@ -1,60 +0,0 @@ -// compile-flags: -Zverbose - -// Same as: tests/ui/generator/issue-68112.stderr - -#![feature(generators, generator_trait)] - -use std::{ - cell::RefCell, - sync::Arc, - pin::Pin, - ops::{Generator, GeneratorState}, -}; - -pub struct Ready<T>(Option<T>); -impl<T: Unpin> Generator<()> for Ready<T> { - type Return = T; - type Yield = (); - fn resume(mut self: Pin<&mut Self>, _args: ()) -> GeneratorState<(), T> { - GeneratorState::Complete(self.0.take().unwrap()) - } -} -pub fn make_gen1<T>(t: T) -> Ready<T> { - Ready(Some(t)) -} - -fn require_send(_: impl Send) {} - -fn make_non_send_generator() -> impl Generator<Return = Arc<RefCell<i32>>> { - make_gen1(Arc::new(RefCell::new(0))) -} - -fn test1() { - let send_gen = || { - let _non_send_gen = make_non_send_generator(); - yield; - }; - require_send(send_gen); - //~^ ERROR generator cannot be sent between threads -} - -pub fn make_gen2<T>(t: T) -> impl Generator<Return = T> { - || { - yield; - t - } -} -fn make_non_send_generator2() -> impl Generator<Return = Arc<RefCell<i32>>> { - make_gen2(Arc::new(RefCell::new(0))) -} - -fn test2() { - let send_gen = || { - let _non_send_gen = make_non_send_generator2(); - yield; - }; - require_send(send_gen); - //~^ ERROR `RefCell<i32>` cannot be shared between threads safely -} - -fn main() {} diff --git a/tests/ui/generator/print/generator-print-verbose-1.stderr b/tests/ui/generator/print/generator-print-verbose-1.stderr deleted file mode 100644 index d949543de..000000000 --- a/tests/ui/generator/print/generator-print-verbose-1.stderr +++ /dev/null @@ -1,60 +0,0 @@ -error: generator cannot be sent between threads safely - --> $DIR/generator-print-verbose-1.rs:37:5 - | -LL | require_send(send_gen); - | ^^^^^^^^^^^^ generator is not `Send` - | - = help: the trait `Sync` is not implemented for `RefCell<i32>` - = note: if you want to do aliasing and mutation between multiple threads, use `std::sync::RwLock` instead -note: generator is not `Send` as this value is used across a yield - --> $DIR/generator-print-verbose-1.rs:35:9 - | -LL | let _non_send_gen = make_non_send_generator(); - | ------------- has type `Opaque(DefId(0:34 ~ generator_print_verbose_1[7d1d]::make_non_send_generator::{opaque#0}), [])` which is not `Send` -LL | yield; - | ^^^^^ yield occurs here, with `_non_send_gen` maybe used later -note: required by a bound in `require_send` - --> $DIR/generator-print-verbose-1.rs:26:25 - | -LL | fn require_send(_: impl Send) {} - | ^^^^ required by this bound in `require_send` - -error[E0277]: `RefCell<i32>` cannot be shared between threads safely - --> $DIR/generator-print-verbose-1.rs:56:5 - | -LL | require_send(send_gen); - | ^^^^^^^^^^^^ `RefCell<i32>` cannot be shared between threads safely - | - = help: the trait `Sync` is not implemented for `RefCell<i32>` - = note: if you want to do aliasing and mutation between multiple threads, use `std::sync::RwLock` instead - = note: required for `Arc<RefCell<i32>>` to implement `Send` -note: required because it's used within this generator - --> $DIR/generator-print-verbose-1.rs:42:5 - | -LL | || { - | ^^ -note: required because it appears within the type `Opaque(DefId(0:35 ~ generator_print_verbose_1[7d1d]::make_gen2::{opaque#0}), [Arc<RefCell<i32>>])` - --> $DIR/generator-print-verbose-1.rs:41:30 - | -LL | pub fn make_gen2<T>(t: T) -> impl Generator<Return = T> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^ -note: required because it appears within the type `Opaque(DefId(0:36 ~ generator_print_verbose_1[7d1d]::make_non_send_generator2::{opaque#0}), [])` - --> $DIR/generator-print-verbose-1.rs:47:34 - | -LL | fn make_non_send_generator2() -> impl Generator<Return = Arc<RefCell<i32>>> { - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = note: required because it captures the following types: `Opaque(DefId(0:36 ~ generator_print_verbose_1[7d1d]::make_non_send_generator2::{opaque#0}), [])` -note: required because it's used within this generator - --> $DIR/generator-print-verbose-1.rs:52:20 - | -LL | let send_gen = || { - | ^^ -note: required by a bound in `require_send` - --> $DIR/generator-print-verbose-1.rs:26:25 - | -LL | fn require_send(_: impl Send) {} - | ^^^^ required by this bound in `require_send` - -error: aborting due to 2 previous errors - -For more information about this error, try `rustc --explain E0277`. diff --git a/tests/ui/generator/print/generator-print-verbose-2.rs b/tests/ui/generator/print/generator-print-verbose-2.rs deleted file mode 100644 index e53a7ef8c..000000000 --- a/tests/ui/generator/print/generator-print-verbose-2.rs +++ /dev/null @@ -1,30 +0,0 @@ -// compile-flags: -Zverbose - -// Same as test/ui/generator/not-send-sync.rs -#![feature(generators)] -#![feature(negative_impls)] - -struct NotSend; -struct NotSync; - -impl !Send for NotSend {} -impl !Sync for NotSync {} - -fn main() { - fn assert_sync<T: Sync>(_: T) {} - fn assert_send<T: Send>(_: T) {} - - assert_sync(|| { - //~^ ERROR: generator cannot be shared between threads safely - let a = NotSync; - yield; - drop(a); - }); - - assert_send(|| { - //~^ ERROR: generator cannot be sent between threads safely - let a = NotSend; - yield; - drop(a); - }); -} diff --git a/tests/ui/generator/print/generator-print-verbose-2.stderr b/tests/ui/generator/print/generator-print-verbose-2.stderr deleted file mode 100644 index 8ff755761..000000000 --- a/tests/ui/generator/print/generator-print-verbose-2.stderr +++ /dev/null @@ -1,42 +0,0 @@ -error: generator cannot be shared between threads safely - --> $DIR/generator-print-verbose-2.rs:17:5 - | -LL | assert_sync(|| { - | ^^^^^^^^^^^ generator is not `Sync` - | - = help: within `{main::{closure#0} upvar_tys=() {main::{closure#0}}}`, the trait `Sync` is not implemented for `NotSync` -note: generator is not `Sync` as this value is used across a yield - --> $DIR/generator-print-verbose-2.rs:20:9 - | -LL | let a = NotSync; - | - has type `NotSync` which is not `Sync` -LL | yield; - | ^^^^^ yield occurs here, with `a` maybe used later -note: required by a bound in `assert_sync` - --> $DIR/generator-print-verbose-2.rs:14:23 - | -LL | fn assert_sync<T: Sync>(_: T) {} - | ^^^^ required by this bound in `assert_sync` - -error: generator cannot be sent between threads safely - --> $DIR/generator-print-verbose-2.rs:24:5 - | -LL | assert_send(|| { - | ^^^^^^^^^^^ generator is not `Send` - | - = help: within `{main::{closure#1} upvar_tys=() {main::{closure#1}}}`, the trait `Send` is not implemented for `NotSend` -note: generator is not `Send` as this value is used across a yield - --> $DIR/generator-print-verbose-2.rs:27:9 - | -LL | let a = NotSend; - | - has type `NotSend` which is not `Send` -LL | yield; - | ^^^^^ yield occurs here, with `a` maybe used later -note: required by a bound in `assert_send` - --> $DIR/generator-print-verbose-2.rs:15:23 - | -LL | fn assert_send<T: Send>(_: T) {} - | ^^^^ required by this bound in `assert_send` - -error: aborting due to 2 previous errors - diff --git a/tests/ui/generator/print/generator-print-verbose-3.rs b/tests/ui/generator/print/generator-print-verbose-3.rs deleted file mode 100644 index 8689539ec..000000000 --- a/tests/ui/generator/print/generator-print-verbose-3.rs +++ /dev/null @@ -1,12 +0,0 @@ -// compile-flags: -Zverbose - -#![feature(generators, generator_trait)] - -fn main() { - let x = "Type mismatch test"; - let generator :() = || { - //~^ ERROR mismatched types - yield 1i32; - return x - }; -} diff --git a/tests/ui/generator/print/generator-print-verbose-3.stderr b/tests/ui/generator/print/generator-print-verbose-3.stderr deleted file mode 100644 index 69358ed0a..000000000 --- a/tests/ui/generator/print/generator-print-verbose-3.stderr +++ /dev/null @@ -1,19 +0,0 @@ -error[E0308]: mismatched types - --> $DIR/generator-print-verbose-3.rs:7:25 - | -LL | let generator :() = || { - | ____________________--___^ - | | | - | | expected due to this -LL | | -LL | | yield 1i32; -LL | | return x -LL | | }; - | |_____^ expected `()`, found generator - | - = note: expected unit type `()` - found generator `{main::{closure#0} upvar_tys=(unavailable)}` - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0308`. |