Skip to content

Bump MSRV 1.88, syn 3.0 and darling 0.24 - #399

Merged
Veetaha merged 9 commits into
masterfrom
feat/bump-msrv-1.88
Aug 25, 2026
Merged

Bump MSRV 1.88, syn 3.0 and darling 0.24#399
Veetaha merged 9 commits into
masterfrom
feat/bump-msrv-1.88

Conversation

@Veetaha

@Veetaha Veetaha commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.1 and syn@3.0.3 (plus prettyplease@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.

Comment thread bon/tests/integration/builder/mod.rs
@Veetaha
Veetaha merged commit 5a4944c into master Aug 25, 2026
33 checks passed
@Veetaha
Veetaha deleted the feat/bump-msrv-1.88 branch August 25, 2026 00:47
@github-actions github-actions Bot mentioned this pull request Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants