blob: 35a487c764dc36a18f81be0d7670774420fbf435 (
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
|
// Tests that we don't fail with an overflow error for certain
// strange types
// See https://github.com/rust-lang/rust/pull/72936#issuecomment-643676915
pub trait Interner {
type InternedType;
}
struct RustInterner<'tcx> {
foo: &'tcx ()
}
impl<'tcx> Interner for RustInterner<'tcx> {
type InternedType = Box<TyData<Self>>;
}
enum TyData<I: Interner> {
FnDef(I::InternedType)
}
struct VariableKind<I: Interner>(I::InternedType);
// @has overflow/struct.BoundVarsCollector.html
// @has - '//h3[@class="code-header"]' "impl<'tcx> Send for BoundVarsCollector<'tcx>"
pub struct BoundVarsCollector<'tcx> {
val: VariableKind<RustInterner<'tcx>>
}
fn is_send<T: Send>() {}
struct MyInterner<'tcx> {
val: &'tcx ()
}
fn main() {}
|