]> git.lizzy.rs Git - rust.git/blob - src/test/ui/pattern/usefulness/issue-3601.rs
Rollup merge of #96051 - newpavlov:duration_rounding, r=nagisa,joshtriplett
[rust.git] / src / test / ui / pattern / usefulness / issue-3601.rs
1 #![feature(box_patterns)]
2
3 struct HTMLImageData {
4     image: Option<String>
5 }
6
7 struct ElementData {
8     kind: Box<ElementKind>
9 }
10
11 enum ElementKind {
12     HTMLImageElement(HTMLImageData)
13 }
14
15 enum NodeKind {
16     Element(ElementData)
17 }
18
19 struct NodeData {
20     kind: Box<NodeKind>,
21 }
22
23 fn main() {
24     let mut id = HTMLImageData { image: None };
25     let ed = ElementData { kind: Box::new(ElementKind::HTMLImageElement(id)) };
26     let n = NodeData { kind: Box::new(NodeKind::Element(ed)) };
27
28     // n.b. span could be better
29     match n.kind {
30         box NodeKind::Element(ed) => match ed.kind { //~ ERROR non-exhaustive patterns
31             box ElementKind::HTMLImageElement(ref d) if d.image.is_some() => { true }
32         },
33     };
34 }