Skip to content

regression: "cycle detected when borrow-checking" in offset_of! #150464

@cuviper

Description

@cuviper
[INFO] [stdout] error[E0391]: cycle detected when borrow-checking `firmware::operation::implement::stm::gain::tests::test_phase_half`
[INFO] [stdout]    --> src/firmware/operation/implement/stm/gain.rs:649:5
[INFO] [stdout]     |
[INFO] [stdout] 649 |     fn test_phase_half() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: ...which requires promoting constants in MIR for `firmware::operation::implement::stm::gain::tests::test_phase_half`...
[INFO] [stdout]    --> src/firmware/operation/implement/stm/gain.rs:649:5
[INFO] [stdout]     |
[INFO] [stdout] 649 |     fn test_phase_half() {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires simplifying constant for the type system `firmware::operation::implement::stm::gain::tests::test_phase_half::{constant#0}`...
[INFO] [stdout]    --> src/firmware/operation/implement/stm/gain.rs:704:20
[INFO] [stdout]     |
[INFO] [stdout] 704 |                 tx[offset_of!(GainSTMHead, flag)] & 0x3F
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires const-evaluating + checking `firmware::operation::implement::stm::gain::tests::test_phase_half::{constant#0}`...
[INFO] [stdout]    --> src/firmware/operation/implement/stm/gain.rs:704:20
[INFO] [stdout]     |
[INFO] [stdout] 704 |                 tx[offset_of!(GainSTMHead, flag)] & 0x3F
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires caching mir of `firmware::operation::implement::stm::gain::tests::test_phase_half::{constant#0}` for CTFE...
[INFO] [stdout]    --> src/firmware/operation/implement/stm/gain.rs:704:20
[INFO] [stdout]     |
[INFO] [stdout] 704 |                 tx[offset_of!(GainSTMHead, flag)] & 0x3F
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires elaborating drops for `firmware::operation::implement::stm::gain::tests::test_phase_half::{constant#0}`...
[INFO] [stdout]    --> src/firmware/operation/implement/stm/gain.rs:704:20
[INFO] [stdout]     |
[INFO] [stdout] 704 |                 tx[offset_of!(GainSTMHead, flag)] & 0x3F
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: ...which again requires borrow-checking `firmware::operation::implement::stm::gain::tests::test_phase_half`, completing the cycle
[INFO] [stdout]     = note: cycle used when running analysis passes on crate `autd3_driver`
[INFO] [stdout]     = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information
[INFO] [stdout]     = note: this error originates in the macro `offset_of` (in Nightly builds, run with -Z macro-backtrace for more info)

https://crater-reports.s3.amazonaws.com/beta-1.93-3/beta-2025-12-09/reg/autd3-driver-38.0.1/log.txt

@rustbot modify labels: +regression-from-stable-to-beta -regression-untriaged

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-arrayArea: `[T; N]`A-const-evalArea: Constant evaluation, covers all const contexts (static, const fn, ...)A-constant-promotionArea: constant promotionC-bugCategory: This is a bug.I-cycleIssue: A query cycle occurred while none was expectedI-prioritizeIssue: Indicates that prioritization has been requested for this issue.S-has-bisectionStatus: A bisection has been found for this issueS-has-mcveStatus: A Minimal Complete and Verifiable Example has been found for this issueT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-typesRelevant to the types team, which will review and decide on the PR/issue.regression-from-stable-to-betaPerformance or correctness regression from stable to beta.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions