]> git.lizzy.rs Git - rust.git/blob - src/test/ui/suggestions/as-ref.rs
Auto merge of #65129 - andjo403:cargo_args, r=alexcrichton
[rust.git] / src / test / ui / suggestions / as-ref.rs
1 struct Foo;
2 fn takes_ref(_: &Foo) {}
3
4 fn main() {
5   let ref opt = Some(Foo);
6   opt.map(|arg| takes_ref(arg));
7   //~^ ERROR mismatched types [E0308]
8   opt.and_then(|arg| Some(takes_ref(arg)));
9   //~^ ERROR mismatched types [E0308]
10   let ref opt: Result<_, ()> = Ok(Foo);
11   opt.map(|arg| takes_ref(arg));
12   //~^ ERROR mismatched types [E0308]
13   opt.and_then(|arg| Ok(takes_ref(arg)));
14   //~^ ERROR mismatched types [E0308]
15   let x: &Option<usize> = &Some(3);
16   let y: Option<&usize> = x;
17   //~^ ERROR mismatched types [E0308]
18   let x: &Result<usize, usize> = &Ok(3);
19   let y: Result<&usize, &usize> = x;
20   //~^ ERROR mismatched types [E0308]
21   // note: do not suggest because of `E: usize`
22   let x: &Result<usize, usize> = &Ok(3);
23   let y: Result<&usize, usize> = x;
24   //~^ ERROR mismatched types [E0308]
25 }