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

Allow panic!("{}", computed_str) in const fn. #88954

Merged
merged 1 commit into from
Sep 17, 2021
Merged

Conversation

nbdd0121
Copy link
Contributor

Special-case panic!("{}", arg) and translate it to panic_display(&arg). panic_display will behave like panic_any in cosnt eval and behave like panic!(format_args!("{}", arg)) in runtime.

This should bring Rust 2015 and 2021 to feature parity in terms of const_panic; and hopefully would unblock the stabilisation of #51999.

@rustbot modify labels: +T-compiler +T-libs +A-const-eval +A-const-fn

r? @oli-obk

@rustbot rustbot added A-const-eval Area: constant evaluation (mir interpretation) A-const-fn Area: const fn foo(..) {..}. Pure functions which can be applied at compile time. 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. labels Sep 15, 2021
@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 15, 2021
@oli-obk
Copy link
Contributor

oli-obk commented Sep 15, 2021

looks good from the @rust-lang/wg-const-eval perspective

r? @m-ou-se

@rust-highfive rust-highfive assigned m-ou-se and unassigned oli-obk Sep 15, 2021
library/std/src/rt.rs Outdated Show resolved Hide resolved
library/core/src/panic.rs Outdated Show resolved Hide resolved
library/core/src/panic.rs Outdated Show resolved Hide resolved
library/core/src/panic.rs Outdated Show resolved Hide resolved
library/core/src/panicking.rs Show resolved Hide resolved
@oli-obk
Copy link
Contributor

oli-obk commented Sep 16, 2021

@bors r+

@bors
Copy link
Contributor

bors commented Sep 16, 2021

📌 Commit 11c0e58 has been approved by oli-obk

@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 Sep 16, 2021
@m-ou-se
Copy link
Member

m-ou-se commented Sep 16, 2021

@nbdd0121 Thanks for making this happen! 🎉

@oli-obk
Copy link
Contributor

oli-obk commented Sep 16, 2021

new attempt at stabilization: #89006

bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 17, 2021
…laumeGomez

Rollup of 10 pull requests

Successful merges:

 - rust-lang#86422 (Emit clearer diagnostics for parens around `for` loop heads)
 - rust-lang#87460 (Point to closure when emitting 'cannot move out' for captured variable)
 - rust-lang#87566 (Recover invalid assoc type bounds using `==`)
 - rust-lang#88666 (Improve build command for compiler docs)
 - rust-lang#88899 (Do not issue E0071 if a type error has already been reported)
 - rust-lang#88949 (Fix handling of `hir::GenericArg::Infer` in `wrong_number_of_generic_args.rs`)
 - rust-lang#88953 (Add chown functions to std::os::unix::fs to change the owner and group of files)
 - rust-lang#88954 (Allow `panic!("{}", computed_str)` in const fn.)
 - rust-lang#88964 (Add rustdoc version into the help popup)
 - rust-lang#89012 (Suggest removing `#![feature]` for library features that have been stabilized)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit eb62779 into rust-lang:master Sep 17, 2021
@rustbot rustbot added this to the 1.57.0 milestone Sep 17, 2021
@nbdd0121 nbdd0121 deleted the panic3 branch September 17, 2021 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-const-eval Area: constant evaluation (mir interpretation) A-const-fn Area: const fn foo(..) {..}. Pure functions which can be applied at compile time. 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants