35 lines
457 B
Rust
35 lines
457 B
Rust
//@ revisions: good1 good2 good3
|
|
//@ check-pass
|
|
|
|
use std::ops::Drop;
|
|
|
|
struct Foo;
|
|
|
|
const X: usize = 1;
|
|
|
|
#[cfg(good1)]
|
|
impl Drop for Foo
|
|
where
|
|
[(); X]:, // Trivial WF bound
|
|
{
|
|
fn drop(&mut self) {}
|
|
}
|
|
|
|
#[cfg(good2)]
|
|
impl Drop for Foo
|
|
where
|
|
for<'a> &'a (): Copy, // Trivial trait bound
|
|
{
|
|
fn drop(&mut self) {}
|
|
}
|
|
|
|
#[cfg(good3)]
|
|
impl Drop for Foo
|
|
where
|
|
for<'a> &'a (): 'a, // Trivial outlives bound
|
|
{
|
|
fn drop(&mut self) {}
|
|
}
|
|
|
|
fn main() {}
|