| use std::ops::Deref; | |
| struct Foo { | |
| v: Vec<u32>, | |
| } | |
| struct Bar { | |
| v: Vec<u32>, | |
| } | |
| impl Deref for Bar { | |
| type Target = Vec<u32>; | |
| fn deref(&self) -> &Self::Target { | |
| &self.v | |
| } | |
| } | |
| fn f(foo: &Foo) { | |
| match foo { | |
| Foo { v: [1, 2] } => {} | |
| //~^ ERROR expected an array or slice, found `Vec<u32> | |
| _ => {} | |
| } | |
| } | |
| fn bar(bar: &Bar) { | |
| match bar { | |
| Bar { v: [1, 2] } => {} | |
| //~^ ERROR expected an array or slice, found `Vec<u32> | |
| _ => {} | |
| } | |
| } | |
| fn main() {} |