-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
rust-lang/rust
#139762Labels
from-craterA regression found via a crater run, not part of our test suiteA regression found via a crater run, not part of our test suite
Description
edit: While this looks like a regression with tachys, turns out that leptos has its own fork of tachys: https://github.com/leptos-rs/leptos/tree/main/tachys
Not yet minimized.
[INFO] [stdout] error[E0391]: cycle detected when computing type of `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::{synthetic#0}`
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] note: ...which requires comparing an impl and trait method signature, inferring any hidden `impl Trait` types in the process...
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires computing type of `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::resolve::{opaque#0}`...
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires computing type of opaque `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::resolve::{opaque#0}`...
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires borrow-checking `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::resolve`...
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires promoting constants in MIR for `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::resolve`...
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires checking if `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::resolve` contains FFI-unwind calls...
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires building MIR for `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::resolve`...
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires match-checking `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::resolve`...
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: ...which requires type-checking `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::resolve`...
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:138:5
[INFO] [stdout] |
[INFO] [stdout] 138 | async fn resolve(mut self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] = note: ...which again requires computing type of `reactive_graph::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/reactive_graph/mod.rs:124:1: 128:23>::{synthetic#0}`, completing the cycle
[INFO] [stdout] note: cycle used when checking assoc item `html::<impl at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/html/mod.rs:53:1: 53:28>::resolve` is compatible with trait definition
[INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tachys-0.1.8/src/html/mod.rs:60:5
[INFO] [stdout] |
[INFO] [stdout] 60 | async fn resolve(self) -> Self::AsyncOutput {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[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
Metadata
Metadata
Assignees
Labels
from-craterA regression found via a crater run, not part of our test suiteA regression found via a crater run, not part of our test suite
Type
Projects
Status
done
Milestone
Relationships
Development
Select code repository
Activity
compiler-errors commentedon Apr 11, 2025
Smells like #158 though.
edit: possibly not. IDK.
compiler-errors commentedon Apr 11, 2025
Edit: THIS IS ON CRATES.IO'S VERSION OF TACHYS, NOT THE FORK!
Interestingly enough, there are more/different regressions when building tachys on nightly with the new solver:
[-]tachys regression[/-][+]leptos ~~tachys~~ regression[/+]compiler-errors commentedon Apr 11, 2025
Minimal-ish:
compiler-errors commentedon Apr 11, 2025
So, it seems that we're doing "unnecessary work" when normalizing the
<V as AttributeValue>::{synthetic#0}
RPITIT. Although theV: AttributeValue
where clause in the impl should keep that associated type as rigid, we're still assembling the impl candidate which inevitably leads to a cycle error.We could perhaps rework candidate assembly for
NormalizesTo
goals to only assemble param-env/alias-bound candidates when the trait goal isTraitGoalProvenVia::ParamEnv
/AliasBound
. 🤷[-]leptos ~~tachys~~ regression[/-][+]leptos regression[/+]Rollup merge of rust-lang#139789 - lcnr:opaques-auto-trait-leakage, r…
12 remaining items