Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 8 pull requests #120653

Closed
wants to merge 23 commits into from

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

romanows and others added 23 commits December 31, 2023 15:09
Makes the trait implementation documentation for arrays and slices appear more consistent.
…le, r=Mark-Simulacrum

Clarify ambiguity in select_nth_unstable docs

Original docs for `select_nth_unstable` family of functions were ambiguous as to whether "the element at `index`" was the element at `index` before the function reordered the elements or after the function reordered the elements.

The most helpful change in this PR is to change the given examples to make this absolutely clear.  Before, "the element at `index`" was the same value before and after the reordering, so it didn't help disambiguate the meaning.  I've changed the example for `select_nth_unstable` and `select_nth_unstable_by` so that "the element at `index`" is different before and after the reordering, which clears up the ambiguity.  The function `select_nth_unstable_by_key` already had an example that was unambiguous.

In an attempt to clear up the ambiguity from the get-go, I've added a bit of redundancy to the text.  Now the docs refer to "the element at `index` *after the reordering*".
…oli-obk

Make it so that async-fn-in-trait is compatible with a concrete future in implementation

There's no technical reason why an AFIT like `async fn foo()` cannot be satisfied with an implementation signature like `fn foo() -> Pin<Box<dyn Future<Output = ()> + 'static>>`.

We rejected this previously because we were uncertain about how AFITs worked with refinement, but I don't believe this needs to be a restriction any longer.

r? oli-obk
…r=Mark-Simulacrum

Use `<T, U>` for array/slice equality `impl`s

Makes the trait implementation documentation for arrays and slices appear more consistent.

[Example](https://doc.rust-lang.org/1.75.0/std/primitive.array.html): mixed `A`, `B`, and `U`.
![List of PartialEq implementations for arrays](https://github.com/wackbyte/rust/assets/29505620/823c010e-ee57-4de1-885b-a1cd6dcaf85f)

This change makes them all `U`.
…, r=petrochenkov

update indirect structural match lints to match RFC and to show up for dependencies

This is a large step towards implementing rust-lang/rfcs#3535.
We currently have five lints related to "the structural match situation":
- nontrivial_structural_match
- indirect_structural_match
- pointer_structural_match
- const_patterns_without_partial_eq
- illegal_floating_point_literal_pattern

This PR concerns the first 3 of them. (The 4th already is set up to show for dependencies, and the 5th is removed by rust-lang#116284.) nontrivial_structural_match is being removed as per the RFC; the other two are enabled to show up in dependencies.

Fixes rust-lang#73448 by removing the affected analysis.
…-Simulacrum

Document `&CStr` to `CString` conversion

Related to rust-lang#51430
…stebank

Stop bailing out from compilation just because there were incoherent traits

fixes rust-lang#120343

but also has a lot of "type annotations needed" fallout. Some are fixed in the second commit.
Update libc to 0.2.153

Bumps libc dependency to 0.2.153, which includes this fix, required for building std for the vita: rust-lang/libc#3552
rustdoc: trait.impl, type.impl: sort impls to make it not depend on serialization order

Can be tested by running `cargo doc` with different rust versions on some crate and comparing `doc` folders: files in `trait.impl` and `type.impl` will sometimes have different order of impls.
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Feb 4, 2024
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=8

@bors
Copy link
Contributor

bors commented Feb 4, 2024

📌 Commit 3e88221 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 4, 2024
@rust-log-analyzer
Copy link
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)
GITHUB_ENV=/home/runner/work/_temp/_runner_file_commands/set_env_0c3b863b-f2ba-4e4c-bb24-c83576bf76ad
GITHUB_EVENT_NAME=pull_request
GITHUB_EVENT_PATH=/home/runner/work/_temp/_github_workflow/event.json
GITHUB_GRAPHQL_URL=https://api.github.com/graphql
GITHUB_HEAD_REF=rollup-3c8ufez
GITHUB_JOB=pr
GITHUB_PATH=/home/runner/work/_temp/_runner_file_commands/add_path_0c3b863b-f2ba-4e4c-bb24-c83576bf76ad
GITHUB_REF=refs/pull/120653/merge
GITHUB_REF_NAME=120653/merge
GITHUB_REF_PROTECTED=false
---
#12 writing image sha256:dcbd60774b01fe8783ad1bb366d65b7b9c5840fc457069ca03bb7cf2ae0e4ef3 done
#12 naming to docker.io/library/rust-ci done
#12 DONE 10.0s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-16]
##[group]Clock drift check
  local time: Sun Feb  4 23:18:04 UTC 2024
  network time: Sun, 04 Feb 2024 23:18:04 GMT
  network time: Sun, 04 Feb 2024 23:18:04 GMT
##[endgroup]
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-16', '--enable-llvm-link-shared', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'build.optimized-compiler-builtins', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-16/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.thin-lto-import-instr-limit := 10
configure: change-id            := 99999999
---
- error: aborting due to 1 previous error
+ error[E0282]: type annotations needed
+   --> $DIR/issue-67651.rs:17:18
+    |
+ LL |     async move { From::from() }
11 
- For more information about this error, try `rustc --explain E0119`.
+ error: aborting due to 2 previous errors
+ 
---
To only update this specific test, also pass `--test-args async-await/issue-67651.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/issue-67651.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/async-await/issue-67651" "-A" "unused" "-A" "internal_features" "-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-67651/auxiliary" "--edition=2018"
--- stderr -------------------------------
error[E0119]: conflicting implementations of trait `From` for type `()`
##[error]  --> /checkout/tests/ui/async-await/issue-67651.rs:11:1
   |
---

error[E0282]: type annotations needed
##[error]  --> /checkout/tests/ui/async-await/issue-67651.rs:17:18
   |
LL |     async move { From::from() }

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0119, E0282.
Some errors have detailed explanations: E0119, E0282.
For more information about an error, try `rustc --explain E0119`.
------------------------------------------


---- [ui] tests/ui/specialization/specialization-default-items-drop-coherence.rs#next stdout ----
diff of stderr:

7 LL | impl Overlap for <u32 as Default>::Id {
8    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `u32`
9 
+ error[E0284]: type annotations needed: cannot satisfy `<u32 as Default>::Id == _`
+    |
+    |
+ LL | impl Overlap for <u32 as Default>::Id {
+    |                  ^^^^^^^^^^^^^^^^^^^^ cannot satisfy `<u32 as Default>::Id == _`
10 error[E0282]: type annotations needed
11   --> $DIR/specialization-default-items-drop-coherence.rs:18:23
12    |


13 LL |     default type Id = T;
14    |                       ^ cannot infer type for associated type `<T as Default>::Id`
- error: aborting due to 2 previous errors
+ error: aborting due to 3 previous errors
17 
- Some errors have detailed explanations: E0119, E0282.
- Some errors have detailed explanations: E0119, E0282.
+ Some errors have detailed explanations: E0119, E0282, E0284.
19 For more information about an error, try `rustc --explain E0119`.
20 


The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/specialization-default-items-drop-coherence.next/specialization-default-items-drop-coherence.next.stderr
To only update this specific test, also pass `--test-args specialization/specialization-default-items-drop-coherence.rs`

error in revision `next`: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: RUSTC_ICE="0" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/specialization/specialization-default-items-drop-coherence.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--cfg" "next" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/specialization-default-items-drop-coherence.next" "-A" "unused" "-A" "internal_features" "-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/specialization/specialization-default-items-drop-coherence.next/auxiliary" "-Znext-solver"
--- stderr -------------------------------
error[E0119]: conflicting implementations of trait `Overlap` for type `u32`
##[error]  --> /checkout/tests/ui/specialization/specialization-default-items-drop-coherence.rs:29:1
   |
   |
LL | impl Overlap for u32 {
   | -------------------- first implementation here
...
LL | impl Overlap for <u32 as Default>::Id {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `u32`

error[E0284]: type annotations needed: cannot satisfy `<u32 as Default>::Id == _`
   |
   |
LL | impl Overlap for <u32 as Default>::Id {
   |                  ^^^^^^^^^^^^^^^^^^^^ cannot satisfy `<u32 as Default>::Id == _`
error[E0282]: type annotations needed
##[error]  --> /checkout/tests/ui/specialization/specialization-default-items-drop-coherence.rs:18:23
   |
   |
LL |     default type Id = T; //[next]~ ERROR type annotations needed
   |                       ^ cannot infer type for associated type `<T as Default>::Id`
error: aborting due to 3 previous errors

Some errors have detailed explanations: E0119, E0282, E0284.
For more information about an error, try `rustc --explain E0119`.

@compiler-errors
Copy link
Member

@matthiaskrgr: #120558 is more likely

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.