]> git.lizzy.rs Git - rust.git/blob - src/test/ui/resolve/resolve-speculative-adjustment.rs
Auto merge of #47571 - FenrirWolf:libunwind, r=alexcrichton
[rust.git] / src / test / ui / resolve / resolve-speculative-adjustment.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 // Make sure speculative path resolution works properly when resolution
12 // adjustment happens and no extra errors is reported.
13
14 struct S {
15     field: u8,
16 }
17
18 trait Tr {
19     fn method(&self);
20 }
21
22 impl Tr for S {
23     fn method(&self) {
24         fn g() {
25             // Speculative resolution of `Self` and `self` silently fails,
26             // "did you mean" messages are not printed.
27             field;
28             //~^ ERROR cannot find value `field`
29             method();
30             //~^ ERROR cannot find function `method`
31         }
32
33         field;
34         //~^ ERROR cannot find value `field`
35         method();
36         //~^ ERROR cannot find function `method`
37     }
38 }
39
40 fn main() {}