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

Derive message formats macro support to string #14093

Conversation

sbrugman
Copy link
Contributor

@sbrugman sbrugman commented Nov 4, 2024

Summary

Follow-up of #14090: the derive_message_formats macro previously did not support String::to_string. This PR changes the macro to require String::to_string instead of format! when no formatting parameters are provided.

There is room for further expansion of this macro, as this pattern used in #14090 is not yet supported for the message method:

let message = "message";
message.to_string();

Test Plan

cargo test and cargo expand, e.g. cargo expand rules::flake8_bandit::rules::jinja2_autoescape_false -p ruff_linter

@sbrugman sbrugman requested a review from AlexWaygood as a code owner November 4, 2024 15:11
Copy link
Contributor

github-actions bot commented Nov 4, 2024

ruff-ecosystem results

Linter (stable)

✅ ecosystem check detected no linter changes.

Linter (preview)

✅ ecosystem check detected no linter changes.

Copy link
Member

@AlexWaygood AlexWaygood left a comment

Choose a reason for hiding this comment

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

Very nice! Just three places where I think you went slightly too far ;)

@sbrugman
Copy link
Contributor Author

sbrugman commented Nov 4, 2024

Fair point, reverted those three cases

Copy link
Member

@AlexWaygood AlexWaygood left a comment

Choose a reason for hiding this comment

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

LGTM. It might be worth @MichaReiser -- or somebody else who knows their Rust macros a little better -- also taking a look at the changes in ruff_macros, though 😄

@MichaReiser MichaReiser added the internal An internal refactor or improvement label Nov 4, 2024
Copy link
Member

@MichaReiser MichaReiser left a comment

Choose a reason for hiding this comment

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

Hmm, I don't mind the change and it certainly helps that people don't learn the "bad" pattern of using format! over to_string` if there are no arguments.

At the other hand, to_string calls Display. So format! and to_string are equivalent. So this is a pure "esthetic" change. I'm okay with it because it doesn't add too much complexity to the macros and my main concern is with the macro itself (but that's a whole other story).

@MichaReiser MichaReiser merged commit fb94b71 into astral-sh:main Nov 4, 2024
20 checks passed
@sbrugman sbrugman deleted the derive-message-formats-macro-support-to-string branch November 4, 2024 17:09
carljm added a commit to Glyphack/ruff that referenced this pull request Nov 5, 2024
* main: (39 commits)
  Also remove trailing comma while fixing C409 and C419 (astral-sh#14097)
  Re-enable clippy `useless-format` (astral-sh#14095)
  Derive message formats macro support to string (astral-sh#14093)
  Avoid cloning `Name` when looking up function and class types (astral-sh#14092)
  Replace `format!` without parameters with `.to_string()` (astral-sh#14090)
  [red-knot] Do not panic when encountering string annotations (astral-sh#14091)
  [red-knot] Add MRO resolution for classes (astral-sh#14027)
  [red-knot] Remove `Type::None` (astral-sh#14024)
  Cached inference of all definitions in an unpacking (astral-sh#13979)
  Update dependency uuid to v11 (astral-sh#14084)
  Update Rust crate notify to v7 (astral-sh#14083)
  Update cloudflare/wrangler-action action to v3.11.0 (astral-sh#14080)
  Update dependency mdformat-mkdocs to v3.1.1 (astral-sh#14081)
  Update pre-commit dependencies (astral-sh#14082)
  Update dependency ruff to v0.7.2 (astral-sh#14077)
  Update NPM Development dependencies (astral-sh#14078)
  Update Rust crate thiserror to v1.0.67 (astral-sh#14076)
  Update Rust crate syn to v2.0.87 (astral-sh#14075)
  Update Rust crate serde to v1.0.214 (astral-sh#14074)
  Update Rust crate pep440_rs to v0.7.2 (astral-sh#14073)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal An internal refactor or improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants