1 error[E0308]: mismatched types
2 --> $DIR/issue-38371.rs:4:8
4 LL | fn foo(&foo: Foo) {
7 | | expected due to this
8 | expected struct `Foo`, found reference
9 | help: did you mean `foo`: `&Foo`
11 = note: expected struct `Foo`
14 error[E0308]: mismatched types
15 --> $DIR/issue-38371.rs:18:9
17 LL | fn agh(&&bar: &u32) {
18 | ^^^^ ---- expected due to this
20 | expected `u32`, found reference
21 | help: you can probably remove the explicit borrow: `bar`
23 = note: expected type `u32`
26 error[E0308]: mismatched types
27 --> $DIR/issue-38371.rs:21:8
29 LL | fn bgh(&&bar: u32) {
30 | ^^^^^ --- expected due to this
32 | expected `u32`, found reference
34 = note: expected type `u32`
37 error[E0529]: expected an array or slice, found `u32`
38 --> $DIR/issue-38371.rs:24:9
40 LL | fn ugh(&[bar]: &u32) {
41 | ^^^^^ pattern cannot match with input type `u32`
43 error: aborting due to 4 previous errors
45 Some errors have detailed explanations: E0308, E0529.
46 For more information about an error, try `rustc --explain E0308`.