about summary refs log tree commit diff
path: root/tests/incremental/unrecoverable_query.rs
blob: 798a418f79902ce81001c8be1c65ec650fd12f27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// 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

#![allow(dead_code)]

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();
}