Bump MSRV 1.88, syn 3.0 and darling 0.24 - #399
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR raises the project’s Minimum Supported Rust Version (MSRV) to 1.88, migrates crates to Rust 2024 edition, and updates the proc-macro stack to darling@0.24 / syn@3 (plus related lockfile and test updates) while removing legacy MSRV gating (rustversion, feature-gated implied bounds) across code, tests, scripts, and docs.
Changes:
- Bump MSRV to 1.88 and update CI/MSRV tooling and documentation accordingly.
- Upgrade proc-macro dependencies to
darling@0.24.1andsyn@3.0.3(plusprettyplease@0.3) and refactor macro code for syn v3 API changes. - Move crates to Rust 2024 edition and update tests/fixtures/docs to match new diagnostics and defaults.
Reviewed changes
Copilot reviewed 68 out of 69 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| website/src/reference/builder/top-level/derive.md | Removes outdated IntoFuture MSRV note after MSRV bump. |
| website/src/reference/builder/top-level/const.md | Removes outdated MSRV row from const builder docs. |
| website/src/guide/typestate-api/custom-methods.md | Updates docs: implied-bounds no longer feature-gated. |
| website/doctests/Cargo.toml | Switches doctests crate to edition 2024; drops implied-bounds feature. |
| scripts/test-msrv.sh | Updates MSRV default to 1.88 and reshapes workspace for MSRV runs; updates pinned deps. |
| rust-toolchain.toml | Bumps dev toolchain channel to 1.98.0. |
| README.md | Updates MSRV badge to 1.88.0. |
| Cargo.toml | Adjusts workspace lint configuration for 2024/MSRV changes. |
| Cargo.lock | Updates lockfile format (v4) and dependency graph for syn3/darling0.24. |
| bon/tests/integration/ui/compile_fail/attr_with.stderr | Updates expected compiler error output. |
| bon/tests/integration/ui/compile_fail/attr_derive.stderr | Updates expected compiler error output for new parsing/diagnostics. |
| bon/tests/integration/ui/compile_fail/attr_bon.stderr | Updates expected error output to include available values. |
| bon/tests/integration/main.rs | Reorders prelude re-exports. |
| bon/tests/integration/builder/target_feature.rs | Removes rustversion gating and renames module for x86_64-only test. |
| bon/tests/integration/builder/name_conflicts/builder_state.rs | Adds comments/rustfmt skip to preserve exact parse structure in tests. |
| bon/tests/integration/builder/mod.rs | Tweaks async test generic bound usage. |
| bon/tests/integration/builder/attr_into_future.rs | Removes MSRV gating and clippy MSRV allowance now that MSRV is higher. |
| bon/tests/integration/builder/attr_field.rs | Removes rustversion gating around impl Trait turbofish tests. |
| bon/tests/integration/builder/attr_const.rs | Expands const builder tests and removes old MSRV gating. |
| bon/src/lib.rs | Switches to #![expect(deprecated)] and reorders macro re-exports. |
| bon/src/collections.rs | Drops edition-2024 expr fragment specifier lint allowances on macros. |
| bon/src/builder_state.rs | Makes diagnostic::on_unimplemented unconditional (MSRV now supports it). |
| bon/src/__/mod.rs | Removes rustversion re-export. |
| bon/src/__/ide.rs | Removes IntoFuture rustversion gating. |
| bon/Cargo.toml | Bumps edition to 2024, sets rust-version to 1.88, removes rustversion dep. |
| bon-sandbox/src/missing_docs_test.rs | Reorders imports for updated public API re-exports. |
| bon-sandbox/src/docs_in_private_items.rs | Reorders imports for updated public API re-exports. |
| bon-sandbox/src/attr_getter.rs | Reorders imports. |
| bon-sandbox/Cargo.toml | Switches sandbox crate to edition 2024. |
| bon-macros/src/util/visibility.rs | Updates syntax to Rust 2024 idioms (if let ... &&). |
| bon-macros/src/util/ty/match_types.rs | Refactors pattern matching for syn v3 API changes and trait impl availability. |
| bon-macros/src/util/mod.rs | Reorders prelude imports and drops obsolete lint allowances. |
| bon-macros/src/util/ide.rs | Reorders imports and updates completion trigger filtering logic. |
| bon-macros/src/util/fn_arg.rs | Removes ty_mut helper (syn v3 receiver/type handling refactor). |
| bon-macros/src/tests/mod.rs | Reorders expect-test imports. |
| bon-macros/src/tests/attr_setters.rs | Uses then_some for clarity/2024 style. |
| bon-macros/src/parsing/simple_closure.rs | Updates closure modifier handling for syn v3. |
| bon-macros/src/parsing/item_sig.rs | Refactors conditional doc self-mention rejection logic. |
| bon-macros/src/parsing/const_.rs | Updates const-expression validation for syn v3 AST changes. |
| bon-macros/src/parsing/bon_crate_path.rs | Derives Default directly on enum. |
| bon-macros/src/normalization/self_ty.rs | Adjusts pattern destructuring for syn v3 struct fields. |
| bon-macros/src/normalization/lifetimes.rs | Updates receiver/lifetime handling and fn-pointer visitor hooks for syn v3. |
| bon-macros/src/normalization/impl_traits.rs | Refactors impl-trait normalization with syn v3 receiver changes. |
| bon-macros/src/normalization/cfg/visit.rs | Refactors variadic cfg handling with Rust 2024 if let ... &&. |
| bon-macros/src/normalization/cfg/mod.rs | Uses then_some when selecting cfg_attr branches. |
| bon-macros/src/lib.rs | Switches lint config to #![expect(...)] and drops some obsolete allowances. |
| bon-macros/src/error/panic_context.rs | Drops rustversion compatibility shim; uses std backtrace/PanicHookInfo directly. |
| bon-macros/src/builder/item_struct.rs | Reorders imports. |
| bon-macros/src/builder/item_impl.rs | Updates syn v3 trait_/modifiers handling for impl items. |
| bon-macros/src/builder/builder_gen/top_level_config/on.rs | Reorders imports. |
| bon-macros/src/builder/builder_gen/top_level_config/mod.rs | Reorders imports and refactors on-clause validation logic. |
| bon-macros/src/builder/builder_gen/state_mod.rs | Makes associated type bounds implied-bounds behavior unconditional. |
| bon-macros/src/builder/builder_gen/start_fn.rs | Updates receiver-kind logic and clippy lint selection for newer toolchains. |
| bon-macros/src/builder/builder_gen/setters/mod.rs | Minor refactors and formatting updates (incl. conditional logic). |
| bon-macros/src/builder/builder_gen/member/named.rs | Refactors validation/merge logic with Rust 2024 if let ... &&. |
| bon-macros/src/builder/builder_gen/member/mod.rs | Reorders imports. |
| bon-macros/src/builder/builder_gen/member/config/with/mod.rs | Boxes closure config variant to reduce enum size; adjusts parsing. |
| bon-macros/src/builder/builder_gen/member/config/setters.rs | Reorders imports. |
| bon-macros/src/builder/builder_gen/member/config/mod.rs | Refactors const/getter validation with Rust 2024 conditionals. |
| bon-macros/src/builder/builder_gen/input_fn/validation.rs | Refactors const-fn validation logic. |
| bon-macros/src/builder/builder_gen/input_fn/mod.rs | Updates receiver-type extraction and safety handling for syn v3. |
| bon-macros/src/builder/builder_gen/getters.rs | Simplifies CString well-known type path now that MSRV guarantees core::ffi::CStr. |
| bon-macros/src/builder/builder_gen/generic_setters.rs | Refactors conditional insert logic and type param replacement. |
| bon-macros/src/builder/builder_gen/builder_derives/mod.rs | Reorders imports. |
| bon-macros/src/bon.rs | Reorders imports. |
| bon-macros/Cargo.toml | Switches to edition 2024, bumps rust-version to 1.88, updates darling/syn/prettyplease deps. |
| benchmarks/compilation/codegen/Cargo.toml | Switches benchmark codegen crate to edition 2024. |
| benchmarks/compilation/Cargo.toml | Switches benchmark crate to edition 2024. |
| .github/workflows/ci.yml | Updates CI MSRV matrix to just 1.88.0. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Merged
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.
No description provided.