]> git.lizzy.rs Git - rust.git/blob - src/test/compile-fail/issue-30255.rs
rustc_typeck: do not overlap a borrow of TypeckTables with method lookup.
[rust.git] / src / test / compile-fail / issue-30255.rs
1 // Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10 //
11 // Test that lifetime elision error messages correctly omit parameters
12 // with no elided lifetimes
13
14 struct S<'a> {
15     field: &'a i32,
16 }
17
18 fn f(a: &S, b: i32) -> &i32 {
19 //~^ ERROR missing lifetime specifier [E0106]
20 //~^^ HELP does not say which one of `a`'s 2 elided lifetimes it is borrowed from
21     panic!();
22 }
23
24 fn g(a: &S, b: bool, c: &i32) -> &i32 {
25 //~^ ERROR missing lifetime specifier [E0106]
26 //~^^ HELP does not say whether it is borrowed from one of `a`'s 2 elided lifetimes or `c`
27     panic!();
28 }
29
30 fn h(a: &bool, b: bool, c: &S, d: &i32) -> &i32 {
31 //~^ ERROR missing lifetime specifier [E0106]
32 //~^^ HELP does not say whether it is borrowed from `a`, one of `c`'s 2 elided lifetimes, or `d`
33     panic!();
34 }
35