]>
Commit | Line | Data |
---|---|---|
0731742a XL |
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 | } |