Skip to content

DO NOT MERGE (yet): Enable -Zdrop-tracking by default - #97334

Closed
eholk wants to merge 1 commit into
rust-lang:masterfrom
eholk:drop-tracking-on-by-default
Closed

DO NOT MERGE (yet): Enable -Zdrop-tracking by default#97334
eholk wants to merge 1 commit into
rust-lang:masterfrom
eholk:drop-tracking-on-by-default

Conversation

@eholk

Copy link
Copy Markdown
Contributor

This is not quite ready to merge yet because we still need fixes for a couple of issues (See #97331 for details), but we can probably go ahead and kick off a crater run to see if there are any additional regressions we don't know about yet.

@bors r? @wesleywiser

@rustbotrustbot added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label May 23, 2022
@rust-highfiverust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 23, 2022
@rust-log-analyzer

This comment has been minimized.

@wesleywiser

Copy link
Copy Markdown
Member

@bors try
@craterbot run mode=build-only

@craterbot

This comment was marked as resolved.

@bors

bors commented May 23, 2022

Copy link
Copy Markdown
Collaborator

⌛ Trying commit 2b4b7c6512a106b7d25fd906f4c5d9fee6c1a08f with merge 615edd3ad1cf6871c977dc900317cb6c2070fd6b...

@bors

bors commented May 23, 2022

Copy link
Copy Markdown
Collaborator

☀️ Try build successful - checks-actions
Build commit: 615edd3ad1cf6871c977dc900317cb6c2070fd6b (615edd3ad1cf6871c977dc900317cb6c2070fd6b)

@wesleywiser

Copy link
Copy Markdown
Member

@craterbot run mode=build-only

@craterbot

Copy link
Copy Markdown
Collaborator

👌 Experiment pr-97334 created and queued.
🤖 Automatically detected try build 615edd3ad1cf6871c977dc900317cb6c2070fd6b
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbotcraterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 23, 2022
@Dylan-DPC
Dylan-DPC marked this pull request as draft May 24, 2022 07:58
@craterbot

Copy link
Copy Markdown
Collaborator

🚧 Experiment pr-97334 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot

Copy link
Copy Markdown
Collaborator

🎉 Experiment pr-97334 is completed!
📊 837 regressed and 16 fixed (235654 total)
📰 Open the full report.

⚠️ If you notice any spurious failure please add them to the blacklist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbotcraterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Jun 14, 2022
@Mark-SimulacrumMark-Simulacrum added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 24, 2022
@eholk
eholkforce-pushed the drop-tracking-on-by-default branch from 2b4b7c6 to c15747dCompareJuly 29, 2022 22:45
@rust-log-analyzer

This comment has been minimized.

@eholk
eholkforce-pushed the drop-tracking-on-by-default branch from c15747d to 45b65ebCompareAugust 18, 2022 19:41
@rust-log-analyzer

This comment has been minimized.

@bors

bors commented Aug 22, 2022

Copy link
Copy Markdown
Collaborator

☔ The latest upstream changes (presumably #100654) made this pull request unmergeable. Please resolve the merge conflicts.

@eholk
eholkforce-pushed the drop-tracking-on-by-default branch from 45b65eb to e7f6d2bCompareAugust 30, 2022 21:17
@rust-log-analyzer

This comment has been minimized.

@eholk
eholkforce-pushed the drop-tracking-on-by-default branch from 89ebc24 to 9b8b39dCompareJanuary 23, 2023 21:20
@rust-log-analyzer

This comment has been minimized.

@eholk
eholkforce-pushed the drop-tracking-on-by-default branch 2 times, most recently from a576f71 to bb05901CompareJanuary 24, 2023 00:27
@eholk

Copy link
Copy Markdown
ContributorAuthor

@bors try

@bors

bors commented Jan 24, 2023

Copy link
Copy Markdown
Collaborator

⌛ Trying commit bb05901728def04193a6ad433659864581e2cc66 with merge f41a2ab7b0d9462073425dd6c04abbeb4805cb77...

@bors

bors commented Jan 24, 2023

Copy link
Copy Markdown
Collaborator

☀️ Try build successful - checks-actions
Build commit: f41a2ab7b0d9462073425dd6c04abbeb4805cb77 (f41a2ab7b0d9462073425dd6c04abbeb4805cb77)

@eholk

Copy link
Copy Markdown
ContributorAuthor

@craterbot run mode=build-only

@craterbot

Copy link
Copy Markdown
Collaborator

👌 Experiment pr-97334-2 created and queued.
🤖 Automatically detected try build f41a2ab7b0d9462073425dd6c04abbeb4805cb77
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbotcraterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 24, 2023
@craterbot

Copy link
Copy Markdown
Collaborator

🚧 Experiment pr-97334-2 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot

Copy link
Copy Markdown
Collaborator

🎉 Experiment pr-97334-2 is completed!
📊 563 regressed and 29 fixed (253548 total)
📰 Open the full report.

⚠️ If you notice any spurious failure please add them to the blacklist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbotcraterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Jan 26, 2023
@eholk
eholkforce-pushed the drop-tracking-on-by-default branch from bb05901 to 71e44e8CompareFebruary 23, 2023 19:55
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-llvm-14 failed! Check out the build log: (web)(plain)

Click to see the possible cause of the failure (guessed by this bot)
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v3' (SHA:ac593985615ec2ede58e132d2e21d2b1cbd6127c)
Download action repository 'rust-lang/simpleinfra@master' (SHA:697bea7ddceb6696743da8f159f268aef8bfb3c6)
Complete job name: PR (x86_64-gnu-llvm-14, false, ubuntu-20.04-xl)
git config --global core.autocrlf false
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
CI_JOB_NAME: x86_64-gnu-llvm-14
---
........................................................................................ 352/14514
........................................................................................ 440/14514
........................................................................................ 528/14514
........................................................................................ 616/14514
.......................F..........F..................................................... 704/14514
.......................................................................F.............F.. 792/14514
......F............................................................F.................... 880/14514
.................................................i..........F........................... 968/14514
........................................................................................ 1144/14514
........................................................................................ 1232/14514
........................................................................................ 1320/14514
........................................................................................ 1408/14514
---
........................................................................................ 4400/14514
.........iii............................................................................ 4488/14514
............................................................................i........... 4576/14514
........................................................................................ 4664/14514
............................F.......................F..F...............................F 4752/14514
.....F.................................................................................. 4840/14514
.................................................................................i...... 5016/14514
........................................................................................ 5104/14514
........................................................................................ 5192/14514
........................................................................................ 5280/14514
---
........................................................................................ 7480/14514
....................i.i.........................................i...................i... 7568/14514
..........i..................................................................i.......... 7656/14514
........................................................................................ 7744/14514
............i................F........F................................................. 7832/14514
........................................................................................ 8008/14514
...................................ii.............................................i..i.. 8096/14514
.............................................................i.......................... 8184/14514
........................................................................................ 8272/14514
---
---- [ui] tests/ui/async-await/async-await-let-else.rs#no_drop_tracking stdout ----
diff of stderr:
20 LL | fn is_send<T: Send>(_: T) {}
22 - error: future cannot be sent between threads safely
- error: future cannot be sent between threads safely
+ error[E0277]: `Rc<()>` cannot be sent between threads safely
25 |
25 |
+ LL | async fn foo2(x: Option<bool>) {
+ | - within this `impl Future<Output = ()>`
+ ...
26 LL | is_send(foo2(Some(true)));
- | ^^^^^^^^^^^^^^^^ future returned by `foo2` is not `Send`
+ | ------- ^^^^^^^^^^^^^^^^ `Rc<()>` cannot be sent between threads safely
+ | required by a bound introduced by this call
28 |
28 |
29 = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
- note: future is not `Send` as this value is used across an await
- --> $DIR/async-await-let-else.rs:23:26
+ note: required because it's used within this `async fn` body
32 |
32 |
- LL | bar2(Rc::new(())).await
- | ----------- ^^^^^^ await occurs here, with `Rc::new(())` maybe used later
- | |
- | has type `Rc<()>` which is not `Send`
- LL | };
- | - `Rc::new(())` is later dropped here
+ LL | async fn bar2<T>(_: T) -> ! {
+ LL | | panic!()
+ LL | | }
+ | |_^
+ | |_^
+ = note: required because it captures the following types: `ResumeTy`, `Option<bool>`, `impl Future<Output = !>`, `()`
+ note: required because it's used within this `async fn` body
+ |
+ |
+ LL | async fn foo2(x: Option<bool>) {
+ | ________________________________^
+ LL | | let Some(_) = x else {
+ LL | | bar2(Rc::new(())).await
+ LL | | };
+ LL | | }
39 note: required by a bound in `is_send`
40 --> $DIR/async-await-let-else.rs:19:15
41 |
---
To only update this specific test, also pass `--test-args async-await/async-await-let-else.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/async-await-let-else.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/async-await-let-else.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/async-await-let-else.no_drop_tracking/auxiliary" "--edition=2021"
stdout: none
--- stderr -------------------------------
error: future cannot be sent between threads safely
--> fake-test-src-base/async-await/async-await-let-else.rs:48:13
|
LL | is_send(foo(Some(true)));
| ^^^^^^^^^^^^^^^ future returned by `foo` is not `Send`
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
note: future is not `Send` as this value is used across an await
--> fake-test-src-base/async-await/async-await-let-else.rs:11:14
|
LL | let r = Rc::new(());
| - has type `Rc<()>` which is not `Send`
LL | bar().await
| ^^^^^^ await occurs here, with `r` maybe used later
LL | };
| - `r` is later dropped here
--> fake-test-src-base/async-await/async-await-let-else.rs:19:15
|
|
LL | fn is_send<T: Send>(_: T) {}
error[E0277]: `Rc<()>` cannot be sent between threads safely
--> fake-test-src-base/async-await/async-await-let-else.rs:50:13
|
LL | async fn foo2(x: Option<bool>) {
| - within this `impl Future<Output = ()>`
...
LL | is_send(foo2(Some(true)));
| ------- ^^^^^^^^^^^^^^^^ `Rc<()>` cannot be sent between threads safely
| required by a bound introduced by this call
|
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
note: required because it's used within this `async fn` body
--> fake-test-src-base/async-await/async-await-let-else.rs:27:29
|
LL | async fn bar2<T>(_: T) -> ! {
LL | | panic!()
LL | | }
| |_^
| |_^
= note: required because it captures the following types: `ResumeTy`, `Option<bool>`, `impl Future<Output = !>`, `()`
note: required because it's used within this `async fn` body
--> fake-test-src-base/async-await/async-await-let-else.rs:21:32
|
LL | async fn foo2(x: Option<bool>) {
| ________________________________^
LL | | let Some(_) = x else {
LL | | bar2(Rc::new(())).await
LL | | };
LL | | }
note: required by a bound in `is_send`
--> fake-test-src-base/async-await/async-await-let-else.rs:19:15
|
|
LL | fn is_send<T: Send>(_: T) {}
error: future cannot be sent between threads safely
--> fake-test-src-base/async-await/async-await-let-else.rs:52:13
|
|
LL | is_send(foo3(Some(true)));
| ^^^^^^^^^^^^^^^^ future returned by `foo3` is not `Send`
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
note: future is not `Send` as this value is used across an await
--> fake-test-src-base/async-await/async-await-let-else.rs:33:28
|
LL | (Rc::new(()), bar().await);
| ----------- ^^^^^^ - `Rc::new(())` is later dropped here
| | |
| | await occurs here, with `Rc::new(())` maybe used later
| has type `Rc<()>` which is not `Send`
--> fake-test-src-base/async-await/async-await-let-else.rs:19:15
|
|
LL | fn is_send<T: Send>(_: T) {}
error: future cannot be sent between threads safely
--> fake-test-src-base/async-await/async-await-let-else.rs:54:13
|
|
LL | is_send(foo4(Some(true)));
| ^^^^^^^^^^^^^^^^ future returned by `foo4` is not `Send`
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
note: future is not `Send` as this value is used across an await
--> fake-test-src-base/async-await/async-await-let-else.rs:41:14
|
LL | let r = Rc::new(());
| - has type `Rc<()>` which is not `Send`
LL | bar().await;
| ^^^^^^ await occurs here, with `r` maybe used later
LL | };
LL | };
| - `r` is later dropped here
--> fake-test-src-base/async-await/async-await-let-else.rs:19:15
|
|
LL | fn is_send<T: Send>(_: T) {}
error: aborting due to 4 previous errors
For more information about this error, try `rustc --explain E0277`.
---
1 error: future cannot be sent between threads safely
- --> $DIR/async-fn-nonsend.rs:70:17
- |
- LL | assert_send(local_dropped_before_await());
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ future returned by `local_dropped_before_await` is not `Send`
- |
- = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
- note: future is not `Send` as this value is used across an await
- --> $DIR/async-fn-nonsend.rs:27:10
- LL | let x = non_send();
- LL | let x = non_send();
- | - has type `impl Debug` which is not `Send`
- LL | drop(x);
- LL | fut().await;
- | ^^^^^^ await occurs here, with `x` maybe used later
- LL | }
- | - `x` is later dropped here
- note: required by a bound in `assert_send`
- --> $DIR/async-fn-nonsend.rs:67:24
- |
- LL | fn assert_send(_: impl Send) {}
- | ^^^^ required by this bound in `assert_send`
- error: future cannot be sent between threads safely
25 --> $DIR/async-fn-nonsend.rs:72:17
26 |
27 LL | assert_send(non_send_temporary_in_match());
27 LL | assert_send(non_send_temporary_in_match());
32 --> $DIR/async-fn-nonsend.rs:36:25
33 |
34 LL | match Some(non_send()) {
- | ---------- has type `impl Debug` which is not `Send`
+ | ---------------- has type `Option<impl Debug>` which is not `Send`
36 LL | Some(_) => fut().await,
- | ^^^^^^ await occurs here, with `non_send()` maybe used later
+ | ^^^^^^ await occurs here, with `Some(non_send())` maybe used later
39 LL | }
39 LL | }
- | - `non_send()` is later dropped here
+ | - `Some(non_send())` is later dropped here
41 note: required by a bound in `assert_send`
43 |
68 LL | fn assert_send(_: impl Send) {}
69 | ^^^^ required by this bound in `assert_send`
- error: future cannot be sent between threads safely
- --> $DIR/async-fn-nonsend.rs:76:17
- |
- LL | assert_send(non_sync_with_method_call_panic());
- LL | assert_send(non_sync_with_method_call_panic());
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ future returned by `non_sync_with_method_call_panic` is not `Send`
- |
- = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `dyn std::fmt::Write`
- note: future is not `Send` as this value is used across an await
- --> $DIR/async-fn-nonsend.rs:56:14
- |
- LL | let f: &mut std::fmt::Formatter = panic!();
- | - has type `&mut Formatter<'_>` which is not `Send`
- LL | if non_sync().fmt(f).unwrap() == () {
- LL | fut().await;
- | ^^^^^^ await occurs here, with `f` maybe used later
- LL | }
- LL | }
- | - `f` is later dropped here
- note: required by a bound in `assert_send`
- --> $DIR/async-fn-nonsend.rs:67:24
- |
- LL | fn assert_send(_: impl Send) {}
- | ^^^^ required by this bound in `assert_send`
- error: future cannot be sent between threads safely
- --> $DIR/async-fn-nonsend.rs:78:17
- |
- LL | assert_send(non_sync_with_method_call_infinite_loop());
- LL | assert_send(non_sync_with_method_call_infinite_loop());
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ future returned by `non_sync_with_method_call_infinite_loop` is not `Send`
- |
- = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `dyn std::fmt::Write`
- note: future is not `Send` as this value is used across an await
- --> $DIR/async-fn-nonsend.rs:63:14
- |
- LL | let f: &mut std::fmt::Formatter = loop {};
- | - has type `&mut Formatter<'_>` which is not `Send`
- LL | if non_sync().fmt(f).unwrap() == () {
- LL | fut().await;
- | ^^^^^^ await occurs here, with `f` maybe used later
- LL | }
- LL | }
- | - `f` is later dropped here
- note: required by a bound in `assert_send`
- --> $DIR/async-fn-nonsend.rs:67:24
- |
- LL | fn assert_send(_: impl Send) {}
- | ^^^^ required by this bound in `assert_send`
- error: aborting due to 5 previous errors
+ error: aborting due to 2 previous errors
120 121 121 The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/async-fn-nonsend.no_drop_tracking/async-fn-nonsend.no_drop_tracking.stderr
To only update this specific test, also pass `--test-args async-await/async-fn-nonsend.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/async-fn-nonsend.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/async-fn-nonsend.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/async-fn-nonsend.no_drop_tracking/auxiliary" "--edition=2018" "--crate-type" "lib"
stdout: none
--- stderr -------------------------------
error: future cannot be sent between threads safely
--> fake-test-src-base/async-await/async-fn-nonsend.rs:72:17
LL | assert_send(non_send_temporary_in_match());
LL | assert_send(non_send_temporary_in_match());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ future returned by `non_send_temporary_in_match` is not `Send`
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `Rc<()>`
note: future is not `Send` as this value is used across an await
--> fake-test-src-base/async-await/async-fn-nonsend.rs:36:25
LL | match Some(non_send()) {
LL | match Some(non_send()) {
| ---------------- has type `Option<impl Debug>` which is not `Send`
LL | Some(_) => fut().await,
| ^^^^^^ await occurs here, with `Some(non_send())` maybe used later
LL | }
LL | }
| - `Some(non_send())` is later dropped here
note: required by a bound in `assert_send`
--> fake-test-src-base/async-await/async-fn-nonsend.rs:67:24
|
LL | fn assert_send(_: impl Send) {}
| ^^^^ required by this bound in `assert_send`
error: future cannot be sent between threads safely
--> fake-test-src-base/async-await/async-fn-nonsend.rs:74:17
|
|
LL | assert_send(non_sync_with_method_call());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ future returned by `non_sync_with_method_call` is not `Send`
|
= help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `dyn std::fmt::Write`
note: future is not `Send` as this value is used across an await
--> fake-test-src-base/async-await/async-fn-nonsend.rs:49:14
|
LL | let f: &mut std::fmt::Formatter = &mut get_formatter();
| --------------- has type `Formatter<'_>` which is not `Send`
LL | fut().await;
LL | fut().await;
| ^^^^^^ await occurs here, with `get_formatter()` maybe used later
LL | }
LL | }
| - `get_formatter()` is later dropped here
note: required by a bound in `assert_send`
--> fake-test-src-base/async-await/async-fn-nonsend.rs:67:24
|
LL | fn assert_send(_: impl Send) {}
| ^^^^ required by this bound in `assert_send`
error: aborting due to 2 previous errors
------------------------------------------
---- [ui] tests/ui/async-await/issue-64130-4-async-move.rs#no_drop_tracking stdout ----
error in revision `no_drop_tracking`: ui test compiled successfully!
status: exit status: 0
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/issue-64130-4-async-move.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-64130-4-async-move.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-64130-4-async-move.no_drop_tracking/auxiliary" "--edition=2018"
stdout: none
stderr: none
---- [ui] tests/ui/async-await/issue-68112.rs#no_drop_tracking stdout ----
diff of stderr:
60 |
61 LL | fn make_non_send_future2() -> impl Future<Output = Arc<RefCell<i32>>> {
62 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- = note: required because it captures the following types: `ResumeTy`, `impl Future<Output = Arc<RefCell<i32>>>`, `()`, `i32`, `Ready<i32>`
+ = note: required because it captures the following types: `ResumeTy`, `impl Future<Output = Arc<RefCell<i32>>>`, `()`, `Ready<i32>`
64 note: required because it's used within this `async` block
66 |
The actual stderr differed from the expected stderr.
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-68112.no_drop_tracking/issue-68112.no_drop_tracking.stderr
To only update this specific test, also pass `--test-args async-await/issue-68112.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/issue-68112.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-68112.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-68112.no_drop_tracking/auxiliary" "--edition=2018"
stdout: none
--- stderr -------------------------------
error: future cannot be sent between threads safely
--> fake-test-src-base/async-await/issue-68112.rs:37:18
LL | require_send(send_fut);
LL | require_send(send_fut);
| ^^^^^^^^ future created by async block is not `Send`
= help: the trait `Sync` is not implemented for `RefCell<i32>`
= 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: future is not `Send` as it awaits another future which is not `Send`
--> fake-test-src-base/async-await/issue-68112.rs:34:17
|
LL | let _ = non_send_fut.await;
| ^^^^^^^^^^^^ await occurs here on type `impl Future<Output = Arc<RefCell<i32>>>`, which is not `Send`
note: required by a bound in `require_send`
--> fake-test-src-base/async-await/issue-68112.rs:14:25
|
LL | fn require_send(_: impl Send) {}
| ^^^^ required by this bound in `require_send`
error: future cannot be sent between threads safely
--> fake-test-src-base/async-await/issue-68112.rs:46:18
|
LL | require_send(send_fut);
LL | require_send(send_fut);
| ^^^^^^^^ future created by async block is not `Send`
= help: the trait `Sync` is not implemented for `RefCell<i32>`
= 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: future is not `Send` as it awaits another future which is not `Send`
--> fake-test-src-base/async-await/issue-68112.rs:43:17
|
LL | let _ = make_non_send_future1().await;
| ^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `impl Future<Output = Arc<RefCell<i32>>>`, which is not `Send`
note: required by a bound in `require_send`
--> fake-test-src-base/async-await/issue-68112.rs:14:25
|
LL | fn require_send(_: impl Send) {}
| ^^^^ required by this bound in `require_send`
error[E0277]: `RefCell<i32>` cannot be shared between threads safely
--> fake-test-src-base/async-await/issue-68112.rs:65:18
LL | require_send(send_fut);
LL | require_send(send_fut);
| ------------ ^^^^^^^^ `RefCell<i32>` cannot be shared between threads safely
| required by a bound introduced by this call
|
= help: the trait `Sync` is not implemented for `RefCell<i32>`
= 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 `async fn` body
--> fake-test-src-base/async-await/issue-68112.rs:50:31
LL | async fn ready2<T>(t: T) -> T {
| _______________________________^
LL | | t
LL | | }
LL | | }
| |_^
note: required because it appears within the type `impl Future<Output = Arc<RefCell<i32>>>`
--> fake-test-src-base/async-await/issue-68112.rs:53:31
|
LL | fn make_non_send_future2() -> impl Future<Output = Arc<RefCell<i32>>> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: required because it captures the following types: `ResumeTy`, `impl Future<Output = Arc<RefCell<i32>>>`, `()`, `Ready<i32>`
note: required because it's used within this `async` block
--> fake-test-src-base/async-await/issue-68112.rs:60:20
LL | let send_fut = async {
| ____________________^
| ____________________^
LL | | let non_send_fut = make_non_send_future2();
LL | | let _ = non_send_fut.await;
LL | | ready(0).await;
LL | | };
note: required by a bound in `require_send`
--> fake-test-src-base/async-await/issue-68112.rs:14:25
|
|
LL | fn require_send(_: impl Send) {}
| ^^^^ required by this bound in `require_send`
error: aborting due to 3 previous errors
For more information about this error, try `rustc --explain E0277`.
------------------------------------------
------------------------------------------
---- [ui] tests/ui/async-await/issue-70935-complex-spans.rs#no_drop_tracking stdout ----
diff of stderr:
- error: future cannot be sent between threads safely
+ error[E0277]: `Sender<i32>` cannot be shared between threads safely
3 |
3 |
4 LL | fn foo(tx: std::sync::mpsc::Sender<i32>) -> impl Future + Send {
- | ^^^^^^^^^^^^^^^^^^ future created by async block is not `Send`
+ | ^^^^^^^^^^^^^^^^^^ `Sender<i32>` cannot be shared between threads safely
7 = help: the trait `Sync` is not implemented for `Sender<i32>`
7 = help: the trait `Sync` is not implemented for `Sender<i32>`
- note: future is not `Send` as this value is used across an await
- --> $DIR/issue-70935-complex-spans.rs:19:11
+ = note: required for `&Sender<i32>` to implement `Send`
+ note: required because it's used within this closure
10 |
10 |
- LL | baz(|| async{
- | _____________-
+ LL | baz(|| async{
+ | ^^
+ note: required because it's used within this `async fn` body
+ |
+ |
+ LL | async fn baz<T>(_c: impl FnMut() -> T) where T: Future<Output=()> {
+ LL | | }
+ | |_^
+ | |_^
+ = note: required because it captures the following types: `ResumeTy`, `impl Future<Output = ()>`, `()`
+ note: required because it's used within this `async` block
+ |
+ |
+ LL | / async move {
+ LL | | baz(|| async{
13 LL | | foo(tx.clone());
14 LL | | }).await;
- | | - ^^^^^^- the value is later dropped here
- | | | |
- | |_________| await occurs here, with the value maybe used later
- | has type `[closure@$DIR/issue-70935-complex-spans.rs:17:13: 17:15]` which is not `Send`
+ LL | | }
19 20 error: aborting due to previous error
21 ---
To only update this specific test, also pass `--test-args async-await/issue-70935-complex-spans.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/issue-70935-complex-spans.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-70935-complex-spans.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-70935-complex-spans.no_drop_tracking/auxiliary" "--edition=2018"
stdout: none
--- stderr -------------------------------
error[E0277]: `Sender<i32>` cannot be shared between threads safely
--> fake-test-src-base/async-await/issue-70935-complex-spans.rs:13:45
|
LL | fn foo(tx: std::sync::mpsc::Sender<i32>) -> impl Future + Send {
| ^^^^^^^^^^^^^^^^^^ `Sender<i32>` cannot be shared between threads safely
= help: the trait `Sync` is not implemented for `Sender<i32>`
= help: the trait `Sync` is not implemented for `Sender<i32>`
= note: required for `&Sender<i32>` to implement `Send`
note: required because it's used within this closure
--> fake-test-src-base/async-await/issue-70935-complex-spans.rs:17:13
|
LL | baz(|| async{
| ^^
note: required because it's used within this `async fn` body
--> fake-test-src-base/async-await/issue-70935-complex-spans.rs:10:67
|
LL | async fn baz<T>(_c: impl FnMut() -> T) where T: Future<Output=()> {
LL | | }
| |_^
| |_^
= note: required because it captures the following types: `ResumeTy`, `impl Future<Output = ()>`, `()`
note: required because it's used within this `async` block
--> fake-test-src-base/async-await/issue-70935-complex-spans.rs:16:5
|
LL | / async move {
LL | | baz(|| async{
LL | | foo(tx.clone());
LL | | }).await;
LL | | }
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
For more information about this error, try `rustc --explain E0277`.
------------------------------------------
---- [ui] tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs#no_drop_tracking stdout ----
error in revision `no_drop_tracking`: ui test compiled successfully!
status: exit status: 0
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issues/issue-65436-raw-ptr-not-send.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issues/issue-65436-raw-ptr-not-send.no_drop_tracking/auxiliary" "--edition=2018"
stdout: none
stderr: none
---- [ui] tests/ui/async-await/unresolved_type_param.rs#no_drop_tracking stdout ----
diff of stderr:
34 LL | bar().await;
35 | ^^^^^^
36 - error[E0698]: type inside `async fn` body must be known in this context
- --> $DIR/unresolved_type_param.rs:12:5
- LL | bar().await;
- LL | bar().await;
- | ^^^ cannot infer type for type parameter `T` declared on the function `bar`
- |
- note: the type is part of the `async fn` body because of this `await`
- --> $DIR/unresolved_type_param.rs:12:10
- LL | bar().await;
- | ^^^^^^
- - - error[E0698]: type inside `async fn` body must be known in this context
- --> $DIR/unresolved_type_param.rs:12:5
- LL | bar().await;
- LL | bar().await;
- | ^^^ cannot infer type for type parameter `T` declared on the function `bar`
- |
- note: the type is part of the `async fn` body because of this `await`
- --> $DIR/unresolved_type_param.rs:12:10
- LL | bar().await;
- | ^^^^^^
- - error: aborting due to 5 previous errors
- error: aborting due to 5 previous errors
+ error: aborting due to 3 previous errors
62 63 For more information about this error, try `rustc --explain E0698`.
64 The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/unresolved_type_param.no_drop_tracking/unresolved_type_param.no_drop_tracking.stderr
To only update this specific test, also pass `--test-args async-await/unresolved_type_param.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/unresolved_type_param.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/unresolved_type_param.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/unresolved_type_param.no_drop_tracking/auxiliary" "--edition=2018"
stdout: none
--- stderr -------------------------------
error[E0698]: type inside `async fn` body must be known in this context
--> fake-test-src-base/async-await/unresolved_type_param.rs:12:5
LL | bar().await;
LL | bar().await;
| ^^^ cannot infer type for type parameter `T` declared on the function `bar`
|
note: the type is part of the `async fn` body because of this `await`
--> fake-test-src-base/async-await/unresolved_type_param.rs:12:10
LL | bar().await;
| ^^^^^^
error[E0698]: type inside `async fn` body must be known in this context
--> fake-test-src-base/async-await/unresolved_type_param.rs:12:5
LL | bar().await;
LL | bar().await;
| ^^^ cannot infer type for type parameter `T` declared on the function `bar`
|
note: the type is part of the `async fn` body because of this `await`
--> fake-test-src-base/async-await/unresolved_type_param.rs:12:10
LL | bar().await;
| ^^^^^^
error[E0698]: type inside `async fn` body must be known in this context
--> fake-test-src-base/async-await/unresolved_type_param.rs:12:5
LL | bar().await;
LL | bar().await;
| ^^^ cannot infer type for type parameter `T` declared on the function `bar`
|
note: the type is part of the `async fn` body because of this `await`
--> fake-test-src-base/async-await/unresolved_type_param.rs:12:10
LL | bar().await;
| ^^^^^^
error: aborting due to 3 previous errors
---
13 LL | | );
14 | |_____- in this macro invocation
15 |
- = help: within `[generator@$DIR/drop-tracking-parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `copy::Client`
- note: generator is not `Send` as this value is used across a yield
- --> $DIR/drop-tracking-parent-expression.rs:25:22
- |
- LL | let g = move || match drop($name::Client { ..$name::Client::default() }) {
- | ------------------------ has type `copy::Client` which is not `Send`
- LL | _ => yield,
- LL | _ => yield,
- | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
- LL | };
- | - `$name::Client::default()` is later dropped here
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- note: required by a bound in `assert_send`
- note: required by a bound in `assert_send`
- --> $DIR/drop-tracking-parent-expression.rs:49:19
- |
- LL | fn assert_send<T: Send>(_thing: T) {}
- | ^^^^ required by this bound in `assert_send`
- = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
- error: generator cannot be sent between threads safely
- --> $DIR/drop-tracking-parent-expression.rs:40:25
- |
- LL | assert_send(g);
- LL | assert_send(g);
- | ^ generator is not `Send`
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- |
- |
- = help: within `[generator@$DIR/drop-tracking-parent-expression.rs:37:21: 37:28]`, the trait `Send` is not implemented for `copy::Client`
- note: generator is not `Send` as this value is used across a yield
- --> $DIR/drop-tracking-parent-expression.rs:38:22
- |
- LL | let g = move || match drop($name::Client::default()) {
- | ------------------------ has type `copy::Client` which is not `Send`
- LL | _ => yield,
- | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
- LL | };
- | - `$name::Client::default()` is later dropped here
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- note: required by a bound in `assert_send`
- note: required by a bound in `assert_send`
- --> $DIR/drop-tracking-parent-expression.rs:49:19
- |
- LL | fn assert_send<T: Send>(_thing: T) {}
- | ^^^^ required by this bound in `assert_send`
- = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
- error: generator cannot be sent between threads safely
- --> $DIR/drop-tracking-parent-expression.rs:27:25
- |
- LL | assert_send(g);
- LL | assert_send(g);
- | ^ generator is not `Send`
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- |
- |
99 = help: within `[generator@$DIR/drop-tracking-parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `derived_drop::Client`
100 note: generator is not `Send` as this value is used across a yield
124 = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
125 126 error: generator cannot be sent between threads safely
126 error: generator cannot be sent between threads safely
- --> $DIR/drop-tracking-parent-expression.rs:40:25
- |
- LL | assert_send(g);
- | ^ generator is not `Send`
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- |
- |
- = help: within `[generator@$DIR/drop-tracking-parent-expression.rs:37:21: 37:28]`, the trait `Send` is not implemented for `derived_drop::Client`
- note: generator is not `Send` as this value is used across a yield
- --> $DIR/drop-tracking-parent-expression.rs:38:22
- |
- LL | let g = move || match drop($name::Client::default()) {
- | ------------------------ has type `derived_drop::Client` which is not `Send`
- LL | _ => yield,
- | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
- LL | };
- | - `$name::Client::default()` is later dropped here
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- note: required by a bound in `assert_send`
- note: required by a bound in `assert_send`
- --> $DIR/drop-tracking-parent-expression.rs:49:19
- |
- LL | fn assert_send<T: Send>(_thing: T) {}
- | ^^^^ required by this bound in `assert_send`
- = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
- error: generator cannot be sent between threads safely
168 --> $DIR/drop-tracking-parent-expression.rs:27:25
169 |
170 LL | assert_send(g);
170 LL | assert_send(g);
207 = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
208 209 error: generator cannot be sent between threads safely
- --> $DIR/drop-tracking-parent-expression.rs:40:25
- |
- LL | assert_send(g);
- | ^ generator is not `Send`
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- |
- |
- = help: within `[generator@$DIR/drop-tracking-parent-expression.rs:37:21: 37:28]`, the trait `Send` is not implemented for `significant_drop::Client`
- note: generator is not `Send` as this value is used across a yield
- --> $DIR/drop-tracking-parent-expression.rs:38:22
- |
- LL | let g = move || match drop($name::Client::default()) {
- | ------------------------ has type `significant_drop::Client` which is not `Send`
- LL | _ => yield,
- | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
- LL | };
- | - `$name::Client::default()` is later dropped here
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- note: required by a bound in `assert_send`
- note: required by a bound in `assert_send`
- --> $DIR/drop-tracking-parent-expression.rs:49:19
- |
- LL | fn assert_send<T: Send>(_thing: T) {}
- | ^^^^ required by this bound in `assert_send`
- = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
- error: generator cannot be sent between threads safely
251 --> $DIR/drop-tracking-parent-expression.rs:27:25
252 |
253 LL | assert_send(g);
253 LL | assert_send(g);
289 | ^^^^ required by this bound in `assert_send`
290 = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
291 - error: generator cannot be sent between threads safely
- --> $DIR/drop-tracking-parent-expression.rs:40:25
- |
- LL | assert_send(g);
- | ^ generator is not `Send`
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- |
- |
- = help: within `[generator@$DIR/drop-tracking-parent-expression.rs:37:21: 37:28]`, the trait `Send` is not implemented for `insignificant_dtor::Client`
- note: generator is not `Send` as this value is used across a yield
- --> $DIR/drop-tracking-parent-expression.rs:38:22
- |
- LL | let g = move || match drop($name::Client::default()) {
- | ------------------------ has type `insignificant_dtor::Client` which is not `Send`
- LL | _ => yield,
- | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
- LL | };
- | - `$name::Client::default()` is later dropped here
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- note: required by a bound in `assert_send`
- note: required by a bound in `assert_send`
- --> $DIR/drop-tracking-parent-expression.rs:49:19
- |
- LL | fn assert_send<T: Send>(_thing: T) {}
- | ^^^^ required by this bound in `assert_send`
- = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
- error: aborting due to 8 previous errors
+ error: aborting due to 3 previous errors
334 335 335 The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/drop-tracking-parent-expression.no_drop_tracking/drop-tracking-parent-expression.no_drop_tracking.stderr
To only update this specific test, also pass `--test-args generator/drop-tracking-parent-expression.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/generator/drop-tracking-parent-expression.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/drop-tracking-parent-expression.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/drop-tracking-parent-expression.no_drop_tracking/auxiliary"
stdout: none
--- stderr -------------------------------
error: generator cannot be sent between threads safely
--> fake-test-src-base/generator/drop-tracking-parent-expression.rs:27:25
LL | assert_send(g);
LL | assert_send(g);
| ^ generator is not `Send`
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
|
|
= help: within `[generator@fake-test-src-base/generator/drop-tracking-parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `derived_drop::Client`
note: generator is not `Send` as this value is used across a yield
--> fake-test-src-base/generator/drop-tracking-parent-expression.rs:25:22
|
LL | let g = move || match drop($name::Client { ..$name::Client::default() }) {
| ------------------------ has type `derived_drop::Client` which is not `Send`
LL | _ => yield,
LL | _ => yield,
| ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
LL | };
| - `$name::Client::default()` is later dropped here
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
note: required by a bound in `assert_send`
note: required by a bound in `assert_send`
--> fake-test-src-base/generator/drop-tracking-parent-expression.rs:49:19
|
LL | fn assert_send<T: Send>(_thing: T) {}
| ^^^^ required by this bound in `assert_send`
= note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
error: generator cannot be sent between threads safely
--> fake-test-src-base/generator/drop-tracking-parent-expression.rs:27:25
|
LL | assert_send(g);
LL | assert_send(g);
| ^ generator is not `Send`
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
|
|
= help: within `[generator@fake-test-src-base/generator/drop-tracking-parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `significant_drop::Client`
note: generator is not `Send` as this value is used across a yield
--> fake-test-src-base/generator/drop-tracking-parent-expression.rs:25:22
|
LL | let g = move || match drop($name::Client { ..$name::Client::default() }) {
| ------------------------ has type `significant_drop::Client` which is not `Send`
LL | _ => yield,
LL | _ => yield,
| ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
LL | };
| - `$name::Client::default()` is later dropped here
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
note: required by a bound in `assert_send`
note: required by a bound in `assert_send`
--> fake-test-src-base/generator/drop-tracking-parent-expression.rs:49:19
|
LL | fn assert_send<T: Send>(_thing: T) {}
| ^^^^ required by this bound in `assert_send`
= note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
error: generator cannot be sent between threads safely
--> fake-test-src-base/generator/drop-tracking-parent-expression.rs:27:25
|
LL | assert_send(g);
LL | assert_send(g);
| ^ generator is not `Send`
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
|
|
= help: within `[generator@fake-test-src-base/generator/drop-tracking-parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `insignificant_dtor::Client`
note: generator is not `Send` as this value is used across a yield
--> fake-test-src-base/generator/drop-tracking-parent-expression.rs:25:22
|
LL | let g = move || match drop($name::Client { ..$name::Client::default() }) {
| ------------------------ has type `insignificant_dtor::Client` which is not `Send`
LL | _ => yield,
LL | _ => yield,
| ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
LL | };
| - `$name::Client::default()` is later dropped here
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
note: required by a bound in `assert_send`
note: required by a bound in `assert_send`
--> fake-test-src-base/generator/drop-tracking-parent-expression.rs:49:19
|
LL | fn assert_send<T: Send>(_thing: T) {}
| ^^^^ required by this bound in `assert_send`
= note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 3 previous errors
------------------------------------------
---- [ui] tests/ui/generator/issue-57478.rs#no_drop_tracking stdout ----
error in revision `no_drop_tracking`: ui test compiled successfully!
status: exit status: 0
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/generator/issue-57478.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/issue-57478.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/issue-57478.no_drop_tracking/auxiliary"
stdout: none
stderr: none
---- [ui] tests/ui/generator/issue-57017.rs#no_drop_tracking stdout ----
error in revision `no_drop_tracking`: ui test compiled successfully!
error in revision `no_drop_tracking`: ui test compiled successfully!
status: exit status: 0
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/generator/issue-57017.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/issue-57017.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/issue-57017.no_drop_tracking/auxiliary"
stdout: none
stderr: none
---- [ui] tests/ui/generator/parent-expression.rs#no_drop_tracking stdout ----
diff of stderr:
13 LL | | );
14 | |_____- in this macro invocation
15 |
- = help: within `[generator@$DIR/parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `copy::Client`
- note: generator is not `Send` as this value is used across a yield
- --> $DIR/parent-expression.rs:25:22
- |
- LL | let g = move || match drop($name::Client { ..$name::Client::default() }) {
- | ------------------------ has type `copy::Client` which is not `Send`
- LL | _ => yield,
- LL | _ => yield,
- | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
- LL | };
- | - `$name::Client::default()` is later dropped here
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- note: required by a bound in `assert_send`
- note: required by a bound in `assert_send`
- --> $DIR/parent-expression.rs:49:19
- |
- LL | fn assert_send<T: Send>(_thing: T) {}
- | ^^^^ required by this bound in `assert_send`
- = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
- error: generator cannot be sent between threads safely
- --> $DIR/parent-expression.rs:40:25
- |
- LL | assert_send(g);
- LL | assert_send(g);
- | ^ generator is not `Send`
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- |
- |
- = help: within `[generator@$DIR/parent-expression.rs:37:21: 37:28]`, the trait `Send` is not implemented for `copy::Client`
- note: generator is not `Send` as this value is used across a yield
- --> $DIR/parent-expression.rs:38:22
- |
- LL | let g = move || match drop($name::Client::default()) {
- | ------------------------ has type `copy::Client` which is not `Send`
- LL | _ => yield,
- | ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
- LL | };
- | - `$name::Client::default()` is later dropped here
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- note: required by a bound in `assert_send`
- note: required by a bound in `assert_send`
- --> $DIR/parent-expression.rs:49:19
- |
- LL | fn assert_send<T: Send>(_thing: T) {}
- | ^^^^ required by this bound in `assert_send`
- = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
- error: generator cannot be sent between threads safely
- --> $DIR/parent-expression.rs:27:25
- |
- LL | assert_send(g);
- LL | assert_send(g);
- | ^ generator is not `Send`
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
- LL | | };
- LL | | );
- | |_____- in this macro invocation
- |
- |
99 = help: within `[generator@$DIR/parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `derived_drop::Client`
100 note: generator is not `Send` as this value is used across a yield
124 = note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
125 126 error: generator cannot be sent between threads safely
126 error: generator cannot be sent between threads safely
- --> $DIR/parent-expression.rs:40:25
- |
- LL | assert_send(g);
- | ^ generator is not `Send`
- LL | / type_combinations!(
- LL | | // OK
- LL | | // OK
- LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
- LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
---
To only update this specific test, also pass `--test-args generator/parent-expression.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/generator/parent-expression.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/parent-expression.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/parent-expression.no_drop_tracking/auxiliary"
stdout: none
--- stderr -------------------------------
error: generator cannot be sent between threads safely
--> fake-test-src-base/generator/parent-expression.rs:27:25
LL | assert_send(g);
LL | assert_send(g);
| ^ generator is not `Send`
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
|
|
= help: within `[generator@fake-test-src-base/generator/parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `derived_drop::Client`
note: generator is not `Send` as this value is used across a yield
--> fake-test-src-base/generator/parent-expression.rs:25:22
|
LL | let g = move || match drop($name::Client { ..$name::Client::default() }) {
| ------------------------ has type `derived_drop::Client` which is not `Send`
LL | _ => yield,
LL | _ => yield,
| ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
LL | };
| - `$name::Client::default()` is later dropped here
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
note: required by a bound in `assert_send`
note: required by a bound in `assert_send`
--> fake-test-src-base/generator/parent-expression.rs:49:19
|
LL | fn assert_send<T: Send>(_thing: T) {}
| ^^^^ required by this bound in `assert_send`
= note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
error: generator cannot be sent between threads safely
--> fake-test-src-base/generator/parent-expression.rs:27:25
|
LL | assert_send(g);
LL | assert_send(g);
| ^ generator is not `Send`
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
|
|
= help: within `[generator@fake-test-src-base/generator/parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `significant_drop::Client`
note: generator is not `Send` as this value is used across a yield
--> fake-test-src-base/generator/parent-expression.rs:25:22
|
LL | let g = move || match drop($name::Client { ..$name::Client::default() }) {
| ------------------------ has type `significant_drop::Client` which is not `Send`
LL | _ => yield,
LL | _ => yield,
| ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
LL | };
| - `$name::Client::default()` is later dropped here
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
note: required by a bound in `assert_send`
note: required by a bound in `assert_send`
--> fake-test-src-base/generator/parent-expression.rs:49:19
|
LL | fn assert_send<T: Send>(_thing: T) {}
| ^^^^ required by this bound in `assert_send`
= note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
error: generator cannot be sent between threads safely
--> fake-test-src-base/generator/parent-expression.rs:27:25
|
LL | assert_send(g);
LL | assert_send(g);
| ^ generator is not `Send`
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
|
|
= help: within `[generator@fake-test-src-base/generator/parent-expression.rs:21:21: 21:28]`, the trait `Send` is not implemented for `insignificant_dtor::Client`
note: generator is not `Send` as this value is used across a yield
--> fake-test-src-base/generator/parent-expression.rs:25:22
|
LL | let g = move || match drop($name::Client { ..$name::Client::default() }) {
| ------------------------ has type `insignificant_dtor::Client` which is not `Send`
LL | _ => yield,
LL | _ => yield,
| ^^^^^ yield occurs here, with `$name::Client::default()` maybe used later
LL | };
| - `$name::Client::default()` is later dropped here
LL | / type_combinations!(
LL | | // OK
LL | | // OK
LL | | copy => { #[derive(Copy, Clone, Default)] pub struct Client; };
LL | | // NOT OK: MIR borrowck thinks that this is used after the yield, even though
LL | | };
LL | | );
| |_____- in this macro invocation
note: required by a bound in `assert_send`
note: required by a bound in `assert_send`
--> fake-test-src-base/generator/parent-expression.rs:49:19
|
LL | fn assert_send<T: Send>(_thing: T) {}
| ^^^^ required by this bound in `assert_send`
= note: this error originates in the macro `type_combinations` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 3 previous errors
------------------------------------------
---- [ui] tests/ui/generator/partial-drop.rs#no_drop_tracking stdout ----
diff of stderr:
44 note: generator is not `Send` as this value is used across a yield
46 |
46 |
- LL | let Bar { foo, x } = guard;
- | --- has type `Foo` which is not `Send`
- LL | drop(foo);
+ LL | let guard = Bar { foo: Foo, x: 42 };
+ | ----- has type `Bar` which is not `Send`
50 LL | yield;
50 LL | yield;
- | ^^^^^ yield occurs here, with `foo` maybe used later
+ | ^^^^^ yield occurs here, with `guard` maybe used later
52 LL | });
- | - `foo` is later dropped here
+ | - `guard` is later dropped here
54 note: required by a bound in `assert_send`
56 |
The actual stderr differed from the expected stderr.
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/partial-drop.no_drop_tracking/partial-drop.no_drop_tracking.stderr
To only update this specific test, also pass `--test-args generator/partial-drop.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/generator/partial-drop.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/partial-drop.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/generator/partial-drop.no_drop_tracking/auxiliary"
stdout: none
--- stderr -------------------------------
error: generator cannot be sent between threads safely
--> fake-test-src-base/generator/partial-drop.rs:17:17
LL | assert_send(|| {
| _________________^
| _________________^
LL | | //[no_drop_tracking,drop_tracking]~^ ERROR generator cannot be sent between threads safely
LL | | let guard = Bar { foo: Foo, x: 42 };
LL | | drop(guard.foo);
LL | | yield;
LL | | });
| |_____^ generator is not `Send`
|
= help: within `[generator@fake-test-src-base/generator/partial-drop.rs:17:17: 17:19]`, the trait `Send` is not implemented for `Foo`
note: generator is not `Send` as this value is used across a yield
--> fake-test-src-base/generator/partial-drop.rs:21:9
|
LL | let guard = Bar { foo: Foo, x: 42 };
| ----- has type `Bar` which is not `Send`
LL | drop(guard.foo);
LL | yield;
| ^^^^^ yield occurs here, with `guard` maybe used later
LL | });
| - `guard` is later dropped here
note: required by a bound in `assert_send`
--> fake-test-src-base/generator/partial-drop.rs:33:19
|
LL | fn assert_send<T: Send>(_: T) {}
| ^^^^ required by this bound in `assert_send`
error: generator cannot be sent between threads safely
--> fake-test-src-base/generator/partial-drop.rs:24:17
|
LL | assert_send(|| {
LL | assert_send(|| {
| _________________^
LL | | //[no_drop_tracking,drop_tracking]~^ ERROR generator cannot be sent between threads safely
LL | | let guard = Bar { foo: Foo, x: 42 };
LL | | let Bar { foo, x } = guard;
LL | | drop(foo);
LL | | yield;
LL | | });
| |_____^ generator is not `Send`
|
= help: within `[generator@fake-test-src-base/generator/partial-drop.rs:24:17: 24:19]`, the trait `Send` is not implemented for `Foo`
note: generator is not `Send` as this value is used across a yield
--> fake-test-src-base/generator/partial-drop.rs:29:9
|
LL | let guard = Bar { foo: Foo, x: 42 };
| ----- has type `Bar` which is not `Send`
LL | yield;
LL | yield;
| ^^^^^ yield occurs here, with `guard` maybe used later
LL | });
| - `guard` is later dropped here
note: required by a bound in `assert_send`
--> fake-test-src-base/generator/partial-drop.rs:33:19
|
LL | fn assert_send<T: Send>(_: T) {}
| ^^^^ required by this bound in `assert_send`
error: aborting due to 2 previous errors
------------------------------------------
---- [ui] tests/ui/lint/must_not_suspend/dedup.rs#no_drop_tracking stdout ----
diff of stderr:
17 LL | #![deny(must_not_suspend)]
19 19 - error: `No` held across a suspend point, but should not be
- --> $DIR/dedup.rs:20:13
- |
- LL | wheeee(&no).await;
- | ^^ ------ the value is held across this suspend point
- |
- help: consider using a block (`{ ... }`) to shrink the value's scope, ending before the suspend point
- --> $DIR/dedup.rs:20:13
- |
- LL | wheeee(&no).await;
- - error: aborting due to 2 previous errors
+ error: aborting due to previous error
33 33 34 The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/must_not_suspend/dedup.no_drop_tracking/dedup.no_drop_tracking.stderr
To only update this specific test, also pass `--test-args lint/must_not_suspend/dedup.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/lint/must_not_suspend/dedup.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/must_not_suspend/dedup.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/must_not_suspend/dedup.no_drop_tracking/auxiliary" "--edition=2018"
stdout: none
--- stderr -------------------------------
error: `No` held across a suspend point, but should not be
--> fake-test-src-base/lint/must_not_suspend/dedup.rs:19:9
|
LL | let no = No {}; //~ ERROR `No` held across
| ^^
LL | wheeee(&no).await; //[no_drop_tracking]~ ERROR `No` held across
| ------ the value is held across this suspend point
|
help: consider using a block (`{ ... }`) to shrink the value's scope, ending before the suspend point
--> fake-test-src-base/lint/must_not_suspend/dedup.rs:19:9
|
LL | let no = No {}; //~ ERROR `No` held across
note: the lint level is defined here
--> fake-test-src-base/lint/must_not_suspend/dedup.rs:6:9
|
|
LL | #![deny(must_not_suspend)]
error: aborting due to previous error
------------------------------------------
---- [ui] tests/ui/lint/must_not_suspend/ref.rs#no_drop_tracking stdout ----
diff of stderr:
- error: `Umm` held across a suspend point, but should not be
- --> $DIR/ref.rs:22:26
+ error: reference to `Umm` held across a suspend point, but should not be
3 |
4 LL | let guard = &mut self.u;
- | ^^^^^^
+ | ^^^^^
+ | ^^^^^
6 LL |
7 LL | other().await;
8 | ------ the value is held across this suspend point
9 |
9 |
10 note: You gotta use Umm's, ya know?
- --> $DIR/ref.rs:22:26
12 |
13 LL | let guard = &mut self.u;
- | ^^^^^^
+ | ^^^^^
+ | ^^^^^
15 help: consider using a block (`{ ... }`) to shrink the value's scope, ending before the suspend point
- --> $DIR/ref.rs:22:26
17 |
18 LL | let guard = &mut self.u;
- | ^^^^^^
+ | ^^^^^
+ | ^^^^^
20 note: the lint level is defined here
21 --> $DIR/ref.rs:7:9
22 |
The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/must_not_suspend/ref.no_drop_tracking/ref.no_drop_tracking.stderr
To only update this specific test, also pass `--test-args lint/must_not_suspend/ref.rs`
error in revision `no_drop_tracking`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/lint/must_not_suspend/ref.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--cfg" "no_drop_tracking" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Zdeduplicate-diagnostics=no" "-Cstrip=debuginfo" "--remap-path-prefix=/checkout/tests/ui=fake-test-src-base" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/must_not_suspend/ref.no_drop_tracking" "-A" "unused" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/must_not_suspend/ref.no_drop_tracking/auxiliary" "--edition=2018"
stdout: none
--- stderr -------------------------------
error: reference to `Umm` held across a suspend point, but should not be
--> fake-test-src-base/lint/must_not_suspend/ref.rs:22:13
|
LL | let guard = &mut self.u; //~ ERROR `Umm` held across
LL |
LL | other().await;
LL | other().await;
| ------ the value is held across this suspend point
|
note: You gotta use Umm's, ya know?
--> fake-test-src-base/lint/must_not_suspend/ref.rs:22:13
|
LL | let guard = &mut self.u; //~ ERROR `Umm` held across
| ^^^^^
help: consider using a block (`{ ... }`) to shrink the value's scope, ending before the suspend point
--> fake-test-src-base/lint/must_not_suspend/ref.rs:22:13
|
LL | let guard = &mut self.u; //~ ERROR `Umm` held across
note: the lint level is defined here
--> fake-test-src-base/lint/must_not_suspend/ref.rs:7:9
|
|
LL | #![deny(must_not_suspend)]
error: aborting due to previous error
------------------------------------------

@eholk

Copy link
Copy Markdown
ContributorAuthor

Huh, that's weird that we're suddenly getting a bunch of new test failures. I wonder what changed in this code? Maybe #101692 had some effect here?

@cjgillot

Copy link
Copy Markdown
Contributor

#101692 has duplicated each generator test case to have the 3 variants (no drop tracking, drop tracking, and MIR drop tracking). This may be where the errors come from.

@NoratriebNoratrieb added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 5, 2023
@bors

bors commented Apr 13, 2023

Copy link
Copy Markdown
Collaborator

☔ The latest upstream changes (presumably #110252) made this pull request unmergeable. Please resolve the merge conflicts.

@Swatinem

Copy link
Copy Markdown
Contributor

I believe this can be closed now that #107421 has landed?

@Dylan-DPCDylan-DPC removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Oct 4, 2023
@eholk

Copy link
Copy Markdown
ContributorAuthor

I believe this can be closed now that #107421 has landed?

Yes! Sorry for the slow response!

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

13 participants

@eholk@rust-log-analyzer@wesleywiser@craterbot@bors@jyn514@cjgillot@Swatinem@Mark-Simulacrum@rust-highfive@rustbot@Noratrieb@Dylan-DPC