chore(deps): bump eyre to 0.6.14 to fix expression-position bail! (supersedes #2843, #3086) - #3126
Merged
Merged
Conversation
eyre 0.6.14 removes the trailing semicolon from every arm of the `bail!` macro. That semicolon was the sole cause of the `semicolon_in_expressions_from_macros` / `semicolon_in_expressions_from_non_local_macros` diagnostics reported in #2835, which fire whenever `bail!` is used as a block-tail expression or as a bare `match` arm. Bumping the lockfile clears all 154 affected call sites across 17 crates without touching a single line of dora source, superseding the manual semicolon insertion in #2843 and #3086. Verified with rustc 1.99.0-nightly (12c36e253 2026-08-10): cargo +nightly check --all (excluding the PyO3 crates) eyre 0.6.12: 154 "trailing semicolon in macro used in expression position" diagnostics eyre 0.6.14: 0 The only remaining future-incompat report comes from the third-party `static_init_macro v1.0.4` and is unrelated. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BRDAyUb1r1nLd3i4Sc2UXy
Contributor
|
😎 Merged successfully - details. |
This was referenced Aug 11, 2026
phil-opp
marked this pull request as ready for review
August 11, 2026 20:21
Collaborator
Author
|
Automated review (Claude) No issues found. This is a 🤖 This is a fully automated review by Claude — no human has verified these findings. Treat them as advisory. Generated by Claude Code Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #2835 upstream instead of in our source. eyre 0.6.14 removes the trailing semicolon from every arm of the
bail!macro, which was the sole cause of thesemicolon_in_expressions_from_macros/semicolon_in_expressions_from_non_local_macrosdiagnostics.macro_rules! bail { ($msg:literal $(,)?) => { - return $crate::private::Err($crate::eyre!($msg)); + return $crate::private::Err($crate::eyre!($msg)) }; ($err:expr $(,)?) => { - return $crate::private::Err($crate::eyre!($err)); + return $crate::private::Err($crate::eyre!($err)) }; ($fmt:expr, $($arg:tt)*) => { - return $crate::private::Err($crate::eyre!($fmt, $($arg)*)); + return $crate::private::Err($crate::eyre!($fmt, $($arg)*)) }; }The diff here is a one-package lockfile bump — no dora source changes.
Supersedes #2843 and #3086
Both open PRs fix this by hand-editing call sites (adding
;after block-tailbail!, wrapping barematcharms in a block). With 0.6.14 neither is needed: the lint has nothing left to fire on. Landing this instead avoids 365 lines of churn across 52 files and — more importantly — avoids a rule that every futurebail!call site has to remember.Cargo.lock)Verification
Toolchain:
rustc 1.99.0-nightly (12c36e253 2026-08-10).Workspace-wide
cargo +nightly check --all(excluding the three PyO3 crates), countingtrailing semicolon in macro used in expression position:Isolated before/after on a minimal crate with
#[deny(future_incompatible)], covering both reported shapes (block-tailbail!("boom")and bare match arm_ => bail!("nope")): fails to compile on 0.6.12, compiles clean on 0.6.14, identical source.Also run:
cargo +1.97.1 fmt --all -- --check— cleancargo +1.97.1 clippy --all -- -D warnings(excluding PyO3 crates) — cleancargo +nightly check -p dora-core— clean, the crate from Build fails on newer Rust due to semicolon_in_expressions_from_macros #2835Note on severity: the reporter in #2835 saw hard errors on
nightly (da86f4d07 2026-07-24); on the nightly used here the non-local variant surfaces as future-incompat warnings. Which nightly builds hard-error varies, which is exactly why the dependency fix is the durable one.The only future-incompat report left in the workspace comes from third-party
static_init_macro v1.0.4and is unrelated to this change.Version delta review
0.6.12 → 0.6.14 also drops eyre's optional
pyo3dependency (a feature dora never enabled) and adds anautocfgbuild dependency (already in our tree).rust-versionstays at 1.65.0, well under the workspace MSRV of 1.95.0.Note
This bumps
Cargo.lockonly; the workspace requirement stayseyre = "0.6.12", so normal resolution picks up 0.6.14 and above. If you'd rather encode the fix as a hard floor — relevant only under minimal-version resolution — say the word and I'll bump the requirement to0.6.14too.🤖 Generated with Claude Code
https://claude.ai/code/session_01BRDAyUb1r1nLd3i4Sc2UXy
Generated by Claude Code