about summary refs log tree commit diff
path: root/tests/ui/specialization/anyid-repro-125197.rs
blob: 9428d8dc2d41942403c1a219131366c3c1762cd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//@ aux-build: anyid-repro-125197.rs
//@ check-pass

// Makes sure that we don't check `specializes(impl1, impl2)` for a pair of impls that don't
// actually participate in specialization. Since <https://github.com/rust-lang/rust/pull/122791>,
// we don't treat inductive cycles as errors -- so we may need to winnow more pairs of impls, and
// we try to winnow impls in favor of other impls. However, if we're *inside* the `specializes`
// query, then may have a query cycle if we call `specializes` again!

extern crate anyid_repro_125197;
use anyid_repro_125197::AnyId;

fn main() {
    let x = "hello, world";
    let y: AnyId = x.into();
    let _ = y == x;
}