1 error[E0308]: mismatched types
2 --> $DIR/as-ref.rs:7:29
4 LL | opt.map(|arg| takes_ref(arg));
5 | --- ^^^ expected `&Foo`, found struct `Foo`
7 | help: consider using `as_ref` instead: `as_ref().map`
9 error[E0308]: mismatched types
10 --> $DIR/as-ref.rs:8:39
12 LL | opt.and_then(|arg| Some(takes_ref(arg)));
13 | -------- ^^^ expected `&Foo`, found struct `Foo`
15 | help: consider using `as_ref` instead: `as_ref().and_then`
17 error[E0308]: mismatched types
18 --> $DIR/as-ref.rs:10:29
20 LL | opt.map(|arg| takes_ref(arg));
21 | --- ^^^ expected `&Foo`, found struct `Foo`
23 | help: consider using `as_ref` instead: `as_ref().map`
25 error[E0308]: mismatched types
26 --> $DIR/as-ref.rs:11:37
28 LL | opt.and_then(|arg| Ok(takes_ref(arg)));
29 | -------- ^^^ expected `&Foo`, found struct `Foo`
31 | help: consider using `as_ref` instead: `as_ref().and_then`
33 error[E0308]: mismatched types
34 --> $DIR/as-ref.rs:13:29
36 LL | let y: Option<&usize> = x;
39 | | expected enum `Option`, found `&Option<usize>`
40 | | help: you can convert from `&Option<T>` to `Option<&T>` using `.as_ref()`: `x.as_ref()`
41 | expected due to this
43 = note: expected enum `Option<&usize>`
44 found reference `&Option<usize>`
46 error[E0308]: mismatched types
47 --> $DIR/as-ref.rs:15:37
49 LL | let y: Result<&usize, &usize> = x;
50 | ---------------------- ^ expected enum `Result`, found reference
52 | expected due to this
54 = note: expected enum `Result<&usize, &usize>`
55 found reference `&Result<usize, usize>`
56 help: you can convert from `&Result<T, E>` to `Result<&T, &E>` using `.as_ref()`
58 LL | let y: Result<&usize, &usize> = x.as_ref();
61 error[E0308]: mismatched types
62 --> $DIR/as-ref.rs:19:36
64 LL | let y: Result<&usize, usize> = x;
65 | --------------------- ^ expected enum `Result`, found reference
67 | expected due to this
69 = note: expected enum `Result<&usize, usize>`
70 found reference `&Result<usize, usize>`
72 error: aborting due to 7 previous errors
74 For more information about this error, try `rustc --explain E0308`.