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

rustc_arena: add alloc_str #118660

Merged
merged 1 commit into from
Dec 7, 2023
Merged

rustc_arena: add alloc_str #118660

merged 1 commit into from
Dec 7, 2023

Conversation

cuviper
Copy link
Member

@cuviper cuviper commented Dec 6, 2023

Two places called from_utf8_unchecked for strings from alloc_slice,
and one's SAFETY comment said this was for lack of alloc_str -- so
let's just add that instead!

@rustbot
Copy link
Collaborator

rustbot commented Dec 6, 2023

r? @petrochenkov

(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. labels Dec 6, 2023
@rust-log-analyzer

This comment was marked as resolved.

Two places called `from_utf8_unchecked` for strings from `alloc_slice`,
and one's SAFETY comment said this was for lack of `alloc_str` -- so
let's just add that instead!
#[inline]
pub fn alloc_str(&self, string: &str) -> &str {
if string.is_empty() {
return "";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe remove this case and keep the panic?
No current use requires it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can if you prefer, but I think for perf the branchiness should end up equivalent, just changing whether it jumps to a panic or return. And the empty check here is consistent with its alloc_slice neighbor. A panic still makes sense if we want that treated as a bug -- is that it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In symbol.rs that would certainly be a bug, with SymbolName::new I'm less sure, but it looks like the string cannot be empty there either.
I don't have much preference here, let's land as is.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The symbol.rs case is already using a direct DroplessArena, where it would panic. Only the macro-declared arena has the empty return case, in both alloc_slice and this new alloc_str.

@petrochenkov petrochenkov 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 Dec 6, 2023
@petrochenkov
Copy link
Contributor

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Dec 6, 2023

📌 Commit 92bf40f has been approved by petrochenkov

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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Dec 6, 2023
bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 6, 2023
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#117981 (Remove deprecated `--check-cfg` syntax)
 - rust-lang#118177 (Suppress warnings in LLVM wrapper when targeting MSVC)
 - rust-lang#118317 (tip for define macro name after `macro_rules!`)
 - rust-lang#118504 (Enforce `must_use` on associated types and RPITITs that have a must-use trait in bounds)
 - rust-lang#118660 (rustc_arena: add `alloc_str`)
 - rust-lang#118681 (Fix is_foreign_item for StableMIR instance )

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit cf78a79 into rust-lang:master Dec 7, 2023
11 checks passed
@rustbot rustbot added this to the 1.76.0 milestone Dec 7, 2023
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Dec 7, 2023
Rollup merge of rust-lang#118660 - cuviper:alloc_str, r=petrochenkov

rustc_arena: add `alloc_str`

Two places called `from_utf8_unchecked` for strings from `alloc_slice`,
and one's SAFETY comment said this was for lack of `alloc_str` -- so
let's just add that instead!
@cuviper cuviper deleted the alloc_str branch December 8, 2023 00:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.

5 participants