Do not ignore lifetime bounds in Copy impls

Closes #29149
This commit is contained in:
Santiago Pastorino 2018-01-30 11:20:57 -03:00
parent fe7e1a45f3
commit b9f756416a
2 changed files with 37 additions and 7 deletions

View file

@ -0,0 +1,23 @@
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// Test that the 'static bound from the Copy impl is respected. Regression test for #29149.
#![feature(nll)]
#[derive(Clone)] struct Foo<'a>(&'a u32);
impl Copy for Foo<'static> {}
fn main() {
let s = 2;
let a = Foo(&s); //~ ERROR `s` does not live long enough [E0597]
drop(a);
drop(a);
}