Skip to content

Track Rust 1.99 Clippy compatibility for async-trait generated must-use attributes #107

Open

Description

@Dastari

Hosted Rust 1.99.0 (b940084d7, 2026-09-28) rejects bare #[must_use] attributes generated by async-trait 0.1.89 because its returned boxed Future is already must-use. The workspace companion warnings-denied Clippy lane reported 23 diagnostics in storage async trait declarations. Ordinary ORM and router tests pass on this compiler; this is a confirmed Clippy compatibility gap, not evidence of a runtime/storage failure.

Actual evidence: https://github.com/Dastari/graphql-orm/actions/runs/36925105050/job/110580381802
Source: #104 at e32ba5b. async-trait 0.1.89 src/expand.rs adds #[must_use] to each async trait method. Reported traits include BlobStore, ObjectStorage, MultipartWriter and StreamingObjectStore.

Reproduce using owned upstream source only:

cargo +1.99.0 clippy -p graphql-orm-storage --lib --locked -- -D warnings
cargo +1.99.0 clippy -p graphql-orm-ai --all-targets --locked --features provider-openai,provider-anthropic,provider-xai,provider-ollama,provider-openai-compatible,local-harness -- -D warnings

No live application service/database or consumer repository is needed.

#106 pins release and CI validation to the locally reviewed Rust 1.97.1 compiler while retaining all warnings-denied/provider/backend gates and the Rust 1.90 router MSRV lane. It explicitly does not resolve this newer-toolchain compatibility issue. Before advancing the reviewed compiler baseline, establish a bounded generated-trait reproducer, fix/adopt upstream macro compatibility with narrow scope, and run every affected package's provider/backend Clippy lanes. Preserve unused-future diagnostics, public traits, storage semantics, backend feature boundaries and independent package versions. Do not modify the immutable .2 release or absorb storage/AI into ORM features.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions