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