-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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 Result from SourceCodeGenerator signature #1677
Conversation
src/source_code_generator.rs
Outdated
pub fn generate(self) -> Result<String, FromUtf8Error> { | ||
String::from_utf8(self.buffer) | ||
pub fn generate(self) -> String { | ||
unsafe { String::from_utf8_unchecked(self.buffer) } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would be the only unsafe
block in Ruff, which is unfortunate. Consider .unwrap()
instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah I'm totally fine with that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you think it's a bad idea to fail hard here vs. propagating the error?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Panicking with unwrap
or expect
seems like a fine reaction to a bug that broke our internal invariants; the backtrace would make it clear what happened in that event.
This is the real issue underneath the `unsafe`/`unwrap` quandry in #1677. Signed-off-by: Anders Kaseorg <[email protected]>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [ruff](https://togithub.com/charliermarsh/ruff) | `^0.0.212` -> `^0.0.213` | [![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.213/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.213/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.213/compatibility-slim/0.0.212)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.213/confidence-slim/0.0.212)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>charliermarsh/ruff</summary> ### [`v0.0.213`](https://togithub.com/charliermarsh/ruff/releases/tag/v0.0.213) [Compare Source](https://togithub.com/charliermarsh/ruff/compare/v0.0.212...v0.0.213) #### What's Changed - Remove Result from SourceCodeGenerator signature by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1677](https://togithub.com/charliermarsh/ruff/pull/1677) - Implement `From` conversion for style detector-to-generator by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1678](https://togithub.com/charliermarsh/ruff/pull/1678) - Replace `toml` with `toml_edit` by [@​messense](https://togithub.com/messense) in [https://github.com/charliermarsh/ruff/pull/1680](https://togithub.com/charliermarsh/ruff/pull/1680) - Tweak badge logo by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1681](https://togithub.com/charliermarsh/ruff/pull/1681) - Don't mark D205 as fixable in more-lines case by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1682](https://togithub.com/charliermarsh/ruff/pull/1682) - Add requested context to issue template by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1679](https://togithub.com/charliermarsh/ruff/pull/1679) - Update `CONTRIBUTING.md` location on `README.md` by [@​saadmk11](https://togithub.com/saadmk11) in [https://github.com/charliermarsh/ruff/pull/1688](https://togithub.com/charliermarsh/ruff/pull/1688) - Implement flake8-simplify SIM108 by [@​messense](https://togithub.com/messense) in [https://github.com/charliermarsh/ruff/pull/1684](https://togithub.com/charliermarsh/ruff/pull/1684) - Remove TODO comment by [@​harupy](https://togithub.com/harupy) in [https://github.com/charliermarsh/ruff/pull/1691](https://togithub.com/charliermarsh/ruff/pull/1691) - Add specialized conversions for RefEquality by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1689](https://togithub.com/charliermarsh/ruff/pull/1689) - Avoiding flagging elif statements as potential ternaries by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1694](https://togithub.com/charliermarsh/ruff/pull/1694) - \[`flake8-bandit`] Add Rule for `S113` (requests call without timeout) by [@​saadmk11](https://togithub.com/saadmk11) in [https://github.com/charliermarsh/ruff/pull/1692](https://togithub.com/charliermarsh/ruff/pull/1692) - Implement flake8-simplify SIM109 by [@​messense](https://togithub.com/messense) in [https://github.com/charliermarsh/ruff/pull/1687](https://togithub.com/charliermarsh/ruff/pull/1687) - Simplify SIM201, SIM202, SIM208 by [@​chammika-become](https://togithub.com/chammika-become) in [https://github.com/charliermarsh/ruff/pull/1666](https://togithub.com/charliermarsh/ruff/pull/1666) - \[`flake8-bandit`] Add Rule for `S501` (request call with `verify=False`) by [@​saadmk11](https://togithub.com/saadmk11) in [https://github.com/charliermarsh/ruff/pull/1695](https://togithub.com/charliermarsh/ruff/pull/1695) - Require explicit opt-in for GitHub and Gitlab formats by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1697](https://togithub.com/charliermarsh/ruff/pull/1697) - Include error location in GitHub Action diagnostic messages by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1696](https://togithub.com/charliermarsh/ruff/pull/1696) - Include list of fixed files in `stderr` output by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1701](https://togithub.com/charliermarsh/ruff/pull/1701) - Remove redundant #!\[allow()] from main_native by [@​andersk](https://togithub.com/andersk) in [https://github.com/charliermarsh/ruff/pull/1703](https://togithub.com/charliermarsh/ruff/pull/1703) - Forbid unsafe code by [@​andersk](https://togithub.com/andersk) in [https://github.com/charliermarsh/ruff/pull/1704](https://togithub.com/charliermarsh/ruff/pull/1704) - Switch SourceCodeGenerator.buffer from Vec<u8> to String by [@​andersk](https://togithub.com/andersk) in [https://github.com/charliermarsh/ruff/pull/1702](https://togithub.com/charliermarsh/ruff/pull/1702) - Remove `add_check` methods by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1705](https://togithub.com/charliermarsh/ruff/pull/1705) - Use `trim_end` when checking line continutation by [@​harupy](https://togithub.com/harupy) in [https://github.com/charliermarsh/ruff/pull/1706](https://togithub.com/charliermarsh/ruff/pull/1706) - Automatically remove unused variables by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1683](https://togithub.com/charliermarsh/ruff/pull/1683) - Lazily compute ranges for class and function bindings by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1708](https://togithub.com/charliermarsh/ruff/pull/1708) - Add more backticks to flake8-pytest-style error messages by [@​harupy](https://togithub.com/harupy) in [https://github.com/charliermarsh/ruff/pull/1707](https://togithub.com/charliermarsh/ruff/pull/1707) - Increase blackd wait time by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1709](https://togithub.com/charliermarsh/ruff/pull/1709) - Revert "Include list of fixed files in `stderr` output ([#​1701](https://togithub.com/charliermarsh/ruff/issues/1701))" by [@​charliermarsh](https://togithub.com/charliermarsh) in [https://github.com/charliermarsh/ruff/pull/1711](https://togithub.com/charliermarsh/ruff/pull/1711) **Full Changelog**: astral-sh/ruff@v0.0.212...v0.0.213 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/ixm-one/pytest-cmake-presets). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC44NC4yIiwidXBkYXRlZEluVmVyIjoiMzQuODQuMiJ9--> Signed-off-by: Renovate Bot <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
We populate this buffer ourselves, so I believe it's fine for us to use an unchecked UTF-8 cast here. It dramatically simplifies so much downstream code.