rust/tests/incremental/unrecoverable_query.rs
Michael Baikov db5ed4bd79 Allow for try_force_from_dep_node to fail
The way it is implemented currently try_force_from_dep_node returns true
as long as there's a function to force the query. It wasn't this way
from the beginning, earlier version was producing forcing result and it
was changed in https://github.com/rust-lang/rust/pull/89978, I couldn't
find any comments addressing this change.

One way it can fail is by failing to recover the query in
DepNodeParams::recover - when we are trying to query something that no
longer exists in the current environment
2024-06-19 07:21:41 -04:00

41 lines
605 B
Rust

// If it is impossible to find query arguments just from the hash
// compiler should treat the node as red
// In this test prior to fixing compiler was having problems figuring out
// drop impl for T inside of m
//@ revisions:cfail1 cfail2
//@ compile-flags: --crate-type=lib
//@ build-pass
pub trait P {
type A;
}
struct S;
impl P for S {
type A = C;
}
struct T<D: P>(D::A, Z<D>);
struct Z<D: P>(D::A, String);
impl<D: P> T<D> {
pub fn i() -> Self {
loop {}
}
}
enum C {
#[cfg(cfail1)]
Up(()),
#[cfg(cfail2)]
Lorry(()),
}
pub fn m() {
T::<S>::i();
}