Skip to content

Rollup of 9 pull requests - #110976

Closed
matthiaskrgr wants to merge 24 commits into
rust-lang:masterfrom
matthiaskrgr:rollup-hxwb09u
Closed

Rollup of 9 pull requests#110976
matthiaskrgr wants to merge 24 commits into
rust-lang:masterfrom
matthiaskrgr:rollup-hxwb09u

Conversation

@matthiaskrgr

Copy link
Copy Markdown
Member

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errorsand others added 24 commits April 18, 2023 19:44
We really shouldn't be naming functions `fn check_*` unless they're
doing *typechecking*. It's especially misleading when we're doing this
inside of HIR typeck.
This updates the `openssl-sys` crate to 0.9.87 to support building the
toolchain against the system libraries provided by LibreSSL version 3.7.x.
LibreSSL 3.7.x has been supported since `openssl-sys` version 0.9.85.
… r=cjgillot
Tweak borrow suggestion span
Avoids a `span_to_snippet` call when we don't need to surround the expression in parentheses. The fact that the suggestion was using the whole span of the expression rather than just appending a `&` was prevented me from using `// run-rustfix` in another PR (rust-lang#110432 (comment)).
Also some drive-by renames of functions that have been annoying me for a bit.
…w-response, r=lcnr
Clear response values for overflow in new solver
When we have an overflow, return a trivial query response. This fixes an ICE with the code described in rust-lang#110544:
```rust
trait Trait {}
struct W<T>(T);
impl<T, U> Trait for W<(W<T>, W<U>)>
where
W<T>: Trait,
W<U>: Trait,
{}
fn impls<T: Trait>() {}
fn main() {
impls::<W<_>>()
}
```
Where, while proving `W<?0>: Trait`, we overflow but still apply the query response of `?0 = (W<?1>, W<?2>)`. Then while re-processing the query to validate that our evaluation result was stable, we get a different query response that looks like `?1 = (W<?3>, W<?4>), ?2 = (W<?5>, W<?6>)`, and so we trigger the ICE.
Also, by returning a trivial query response we also avoid the infinite-loop/OOM behavior of the old solver.
r? `@lcnr`
…sts, r=Mark-Simulacrum
Update tests for libtest `--format json`
This PR makes the test work on beta and stable, and adds a test ensuring the option is not available on beta and stable. Backported these commits from rust-lang#110414.
…rk-Simulacrum
Bump libffi-sys to 2.3.0
Bump libffi-sys to 2.3.0 that includes LoongArch support.
Thanks
Related: rust-lang/miri#2858
include source error for LoadLibraryExW
In rust-lang#107595, we added retry behavior for LoadLibraryExW on Windows. If it fails we do not print the underlying error that Windows returned. This made rust-lang#110889 a little harder to debug.
In this PR I am adding the source error in the message if it is available.
…crum
Add support for LibreSSL 3.7.x
This updates the `openssl-sys` crate to 0.9.87 to support building the toolchain against the system libraries provided by LibreSSL version 3.7.x.
LibreSSL 3.7.x has been supported since `openssl-sys` version 0.9.85.
… r=cuviper
Make sure that some stdlib method signatures aren't accidental refinements
In the process of implementing https://rust-lang.github.io/rfcs/3245-refined-impls.html, I found a bunch of stdlib implementations that accidentally "refined" their method signatures by dropping (unnecessary) bounds.
This isn't currently a problem, but may become one if/when method signature refining is stabilized in the future. Shouldn't hurt to make these signatures a bit more accurate anyways.
NOTE (just to be clear lol): This does not affect behavior at all, since we don't actually take advantage of refined implementations yet!
… r=cjgillot
Don't duplicate anonymous lifetimes for async fn in traits
`record_lifetime_params_for_async` needs to be called outside of the scope of the function, or else it'll end up collecting anonymous lifetimes twice (those on the function and those within the `AnonymousCreateParameter` rib). This matches how `record_lifetime_params_for_async` is being used for functions with bodies below.
This fixes (partially) rust-lang#110963 when the lifetimes are late-bound, but does not do so when the lifetimes are early-bound (as seen from the known-bug that I added).
@rustbotrustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Apr 29, 2023
@rustbotrustbot added the rollup A PR which is a rollup label Apr 29, 2023
@matthiaskrgr

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=9

@bors

bors commented Apr 29, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit e8a3d8c has been approved by matthiaskrgr

It is now in the queue for this repository.

@borsbors 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 Apr 29, 2023
@bors

bors commented Apr 29, 2023

Copy link
Copy Markdown
Collaborator

⌛ Testing commit e8a3d8c with merge 927ab3c2f491ec8eff16974a00da72ab6e3d9bbb...

@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)

---- [ui] tests/ui/typeck/bad-index-due-to-nested.rs stdout ----
diff of stderr:
36 LL | fn index<'a, K, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
38 LL | map[k]
- | ^
- | |
- | |
- | expected `&K`, found type parameter `K`
- | help: consider borrowing here: `&k`
+ | ^ expected `&K`, found type parameter `K`
44 = note: expected reference `&K`
45 found type parameter `K`
+ help: consider borrowing here
+ help: consider borrowing here
+ |
+ LL | map[&k]
46 47 error[E0308]: mismatched types
48 --> $DIR/bad-index-due-to-nested.rs:20:5
50 LL | fn index<'a, K, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
51 | - this type parameter ----- expected `&'a V` because of return type
52 LL | map[k]
- | |
- | |
- | expected `&V`, found type parameter `V`
- | help: consider borrowing here: `&map[k]`
+ | ^^^^^^ expected `&V`, found type parameter `V`
58 = note: expected reference `&'a V`
59 found type parameter `V`
+ help: consider borrowing here
+ help: consider borrowing here
+ |
+ LL | &map[k]
60 61 error: aborting due to 4 previous errors
62 ---
To only update this specific test, also pass `--test-args typeck/bad-index-due-to-nested.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/typeck/bad-index-due-to-nested.rs" "-Zthreads=1" "--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" "-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/typeck/bad-index-due-to-nested" "-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/typeck/bad-index-due-to-nested/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `K: Hash` is not satisfied
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:20:5
LL | map[k]
LL | map[k]
| ^^^ the trait `Hash` is not implemented for `K`
|
note: required by a bound in `<HashMap<K, V> as Index<&K>>`
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:9:8
LL | K: Hash,
LL | K: Hash,
| ^^^^ required by this bound in `<HashMap<K, V> as Index<&K>>`
help: consider restricting type parameter `K`
|
LL | fn index<'a, K: std::hash::Hash, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
error[E0277]: the trait bound `V: Copy` is not satisfied
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:20:5
LL | map[k]
| ^^^ the trait `Copy` is not implemented for `V`
|
|
note: required by a bound in `<HashMap<K, V> as Index<&K>>`
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:10:8
LL | V: Copy,
LL | V: Copy,
| ^^^^ required by this bound in `<HashMap<K, V> as Index<&K>>`
help: consider restricting type parameter `V`
|
LL | fn index<'a, K, V: std::marker::Copy>(map: &'a HashMap<K, V>, k: K) -> &'a V {
error[E0308]: mismatched types
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:20:9
|
|
LL | fn index<'a, K, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
LL | map[k]
LL | map[k]
| ^ expected `&K`, found type parameter `K`
= note: expected reference `&K`
found type parameter `K`
help: consider borrowing here
|
|
LL | map[&k]
| +
error[E0308]: mismatched types
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:20:5
|
LL | fn index<'a, K, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
| - this type parameter ----- expected `&'a V` because of return type
LL | map[k]
| ^^^^^^ expected `&V`, found type parameter `V`
= note: expected reference `&'a V`
found type parameter `V`
help: consider borrowing here
|

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)

---- [ui] tests/ui/typeck/bad-index-due-to-nested.rs stdout ----
diff of stderr:
36 LL | fn index<'a, K, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
38 LL | map[k]
- | ^
- | |
- | |
- | expected `&K`, found type parameter `K`
- | help: consider borrowing here: `&k`
+ | ^ expected `&K`, found type parameter `K`
44 = note: expected reference `&K`
45 found type parameter `K`
+ help: consider borrowing here
+ help: consider borrowing here
+ |
+ LL | map[&k]
46 47 error[E0308]: mismatched types
48 --> $DIR/bad-index-due-to-nested.rs:20:5
50 LL | fn index<'a, K, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
51 | - this type parameter ----- expected `&'a V` because of return type
52 LL | map[k]
- | |
- | |
- | expected `&V`, found type parameter `V`
- | help: consider borrowing here: `&map[k]`
+ | ^^^^^^ expected `&V`, found type parameter `V`
58 = note: expected reference `&'a V`
59 found type parameter `V`
+ help: consider borrowing here
+ help: consider borrowing here
+ |
+ LL | &map[k]
60 61 error: aborting due to 4 previous errors
62 ---
To only update this specific test, also pass `--test-args typeck/bad-index-due-to-nested.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/checkout/tests/ui/typeck/bad-index-due-to-nested.rs" "-Zthreads=1" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1" "--target=x86_64-unknown-linux-gnu" "--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/typeck/bad-index-due-to-nested" "-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/typeck/bad-index-due-to-nested/auxiliary"
stdout: none
--- stderr -------------------------------
error[E0277]: the trait bound `K: Hash` is not satisfied
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:20:5
LL | map[k]
LL | map[k]
| ^^^ the trait `Hash` is not implemented for `K`
|
note: required by a bound in `<HashMap<K, V> as Index<&K>>`
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:9:8
LL | K: Hash,
LL | K: Hash,
| ^^^^ required by this bound in `<HashMap<K, V> as Index<&K>>`
help: consider restricting type parameter `K`
|
LL | fn index<'a, K: std::hash::Hash, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
error[E0277]: the trait bound `V: Copy` is not satisfied
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:20:5
LL | map[k]
| ^^^ the trait `Copy` is not implemented for `V`
|
|
note: required by a bound in `<HashMap<K, V> as Index<&K>>`
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:10:8
LL | V: Copy,
LL | V: Copy,
| ^^^^ required by this bound in `<HashMap<K, V> as Index<&K>>`
help: consider restricting type parameter `V`
|
LL | fn index<'a, K, V: std::marker::Copy>(map: &'a HashMap<K, V>, k: K) -> &'a V {
error[E0308]: mismatched types
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:20:9
|
|
LL | fn index<'a, K, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
LL | map[k]
LL | map[k]
| ^ expected `&K`, found type parameter `K`
= note: expected reference `&K`
found type parameter `K`
help: consider borrowing here
|
|
LL | map[&k]
| +
error[E0308]: mismatched types
--> fake-test-src-base/typeck/bad-index-due-to-nested.rs:20:5
|
LL | fn index<'a, K, V>(map: &'a HashMap<K, V>, k: K) -> &'a V {
| - this type parameter ----- expected `&'a V` because of return type
LL | map[k]
| ^^^^^^ expected `&V`, found type parameter `V`
= note: expected reference `&'a V`
found type parameter `V`
help: consider borrowing here
|

@bors

bors commented Apr 29, 2023

Copy link
Copy Markdown
Collaborator

💔 Test failed - checks-actions

@borsbors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Apr 29, 2023
@matthiaskrgr
matthiaskrgr deleted the rollup-hxwb09u branch March 16, 2024 18:19
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-testsuiteArea: The testsuite used to check the correctness of rustcrollupA PR which is a rollupS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants

@matthiaskrgr@bors@rust-log-analyzer@rustbot@compiler-errors@emilyalbini@heiher@mixi@cuviper@cjgillot