Skip to content

Nicer ICE for #67981 #110872

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

Merged
merged 1 commit into from
Apr 27, 2023
Merged

Nicer ICE for #67981 #110872

merged 1 commit into from
Apr 27, 2023

Conversation

Jules-Bertholet
Copy link
Contributor

@Jules-Bertholet Jules-Bertholet commented Apr 26, 2023

Provides a slightly nicer ICE for #67981, documenting the problem. A proper fix will be necessary before #![feature(unsized_fn_params)] can be stabilized.

The problem is that the design of the "rust-call" ABI is fundamentally not compatible with unsized_fn_params. "rust-call" functions need to collect their arguments into a tuple, but if the arguments are not Sized, said tuple is potentially not even a valid type—and if it is, it requires alloca to create.

@rustbot label +A-abi +A-codegen +F-unboxed_closures +F-unsized_fn_params

@rustbot
Copy link
Collaborator

rustbot commented Apr 26, 2023

r? @wesleywiser

(rustbot has picked a reviewer for you, use r? to override)

@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. F-unsized_fn_params `#![feature(unsized_fn_params)]` A-ABI Area: Concerning the application binary interface (ABI) A-codegen Area: Code generation F-unboxed_closures `#![feature(unboxed_closures)]` labels Apr 26, 2023
@wesleywiser
Copy link
Member

Thanks @Jules-Bertholet!

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Apr 27, 2023

📌 Commit 5b6e747 has been approved by wesleywiser

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 Apr 27, 2023
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Apr 27, 2023
…ywiser

Nicer ICE for rust-lang#67981

Provides a slightly nicer ICE for rust-lang#67981, documenting the problem. A proper fix will be necessary before `#![feature(unsized_fn_params)]` can be stabilized.

The problem is that the design of the `"rust-call"` ABI is fundamentally not compatible with `unsized_fn_params`. `"rust-call"` functions need to collect their arguments into a tuple, but if the arguments are not `Sized`, said tuple is potentially not even a valid type—and if it is, it requires `alloca` to create.

`@rustbot` label +A-abi +A-codegen +F-unboxed_closures +F-unsized_fn_params
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 27, 2023
…iaskrgr

Rollup of 7 pull requests

Successful merges:

 - rust-lang#110426 (docs(style): add more let-else examples)
 - rust-lang#110804 (Remove repeated definite articles)
 - rust-lang#110814 (Sprinkle some `#[inline]` in `rustc_data_structures::tagged_ptr`)
 - rust-lang#110816 (Migrate `rustc_passes` to translatable diagnostics)
 - rust-lang#110864 (`IntoFuture::into_future` is no longer unstable)
 - rust-lang#110866 (Make `method-not-found-generic-arg-elision.rs` error message not path dependent)
 - rust-lang#110872 (Nicer ICE for rust-lang#67981)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 52d550b into rust-lang:master Apr 27, 2023
@rustbot rustbot added this to the 1.71.0 milestone Apr 27, 2023
@Jules-Bertholet Jules-Bertholet deleted the err-67981 branch April 27, 2023 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-ABI Area: Concerning the application binary interface (ABI) A-codegen Area: Code generation F-unboxed_closures `#![feature(unboxed_closures)]` F-unsized_fn_params `#![feature(unsized_fn_params)]` 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants