-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Remove space after negative sign in Literal to_string #87267
Conversation
r? @cjgillot (rust-highfive has picked a reviewer for you, use r? to override) |
Can this change cause any breakage in proc-macro user code? |
@cjgillot: trivially yes, for example the following user code would break. assert_eq!(Literal::isize_unsuffixed(-10).to_string(), "- 10"); But in general token printing only guarantees that the resulting string is valid Rust that parses to the same AST (though lossy with respect to hygiene). It does not guarantee that the precise positioning of every whitespace, trailing commas, and similar details irrelevant to Rust syntax are always kept identical across all versions of the printer. References: |
r=me once #87262 lands (since the test output will be changed). |
☔ The latest upstream changes (presumably #87262) made this pull request unmergeable. Please resolve the merge conflicts. |
|
@bors r=Aaron1011 |
📌 Commit 3744dc8 has been approved by |
Remove space after negative sign in Literal to_string Negative proc macro literal tokens used to be printed with a space between the minus sign and the magnitude. That's because `impl ToString for Literal` used to convert the Literal into a TokenStream, which splits the minus sign into a separate Punct token. ```rust Literal::isize_unsuffixed(-10).to_string() // "- 10" ``` This PR updates the ToString impl to directly use `rustc_ast::token::Lit`'s ToString, which matches the way Rust negative numbers are idiomatically written without a space. ```rust Literal::isize_unsuffixed(-10).to_string() // "-10" ```
Rollup of 8 pull requests Successful merges: - rust-lang#81797 (Add `core::stream::from_iter`) - rust-lang#87267 (Remove space after negative sign in Literal to_string) - rust-lang#87663 (Rustdoc accessibility: use an icon for the [-]/[+] controls) - rust-lang#87720 (don't use .into() to convert types to identical types (clippy::useless_conversion)) - rust-lang#87723 (Use .contains instead of manual reimplementation.) - rust-lang#87729 (Remove the aarch64 `crypto` target_feature) - rust-lang#87731 (Update cargo) - rust-lang#87734 (Test dropping union fields more) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Negative proc macro literal tokens used to be printed with a space between the minus sign and the magnitude. That's because
impl ToString for Literal
used to convert the Literal into a TokenStream, which splits the minus sign into a separate Punct token.This PR updates the ToString impl to directly use
rustc_ast::token::Lit
's ToString, which matches the way Rust negative numbers are idiomatically written without a space.