/src/test/compile-fail/regions-early-bound-error.rs
Rust | 38 lines | 16 code | 6 blank | 16 comment | 1 complexity | f51233d1fc27fdfc0e06fbd8c93c9852 MD5 | raw file
Possible License(s): 0BSD, Apache-2.0, MIT, AGPL-1.0
- // 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.
- // Tests that you can use a fn lifetime parameter as part of
- // the value for a type parameter in a bound.
- trait GetRef<'a, T> {
- fn get(&self) -> &'a T;
- }
- struct Box<'a, T:'a> {
- t: &'a T
- }
- impl<'a,T:Clone> GetRef<'a,T> for Box<'a,T> {
- fn get(&self) -> &'a T {
- self.t
- }
- }
- fn get<'a,'b,G:GetRef<'a, isize>>(g1: G, b: &'b isize) -> &'b isize {
- g1.get()
- //~^ ERROR cannot infer an appropriate lifetime for automatic coercion due to
- //~| ERROR mismatched types
- //~| expected `&'b isize`
- //~| found `&'a isize`
- //~| lifetime mismatch
- }
- fn main() {
- }