]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-3601.rs
Rollup merge of #62337 - Mark-Simulacrum:fix-cpu-usage-script, r=alexcrichton
[rust.git] / src / test / ui / issues / issue-3601.rs
1 #![feature(box_patterns)]
2 #![feature(box_syntax)]
3
4 struct HTMLImageData {
5     image: Option<String>
6 }
7
8 struct ElementData {
9     kind: Box<ElementKind>
10 }
11
12 enum ElementKind {
13     HTMLImageElement(HTMLImageData)
14 }
15
16 enum NodeKind {
17     Element(ElementData)
18 }
19
20 struct NodeData {
21     kind: Box<NodeKind>,
22 }
23
24 fn main() {
25     let mut id = HTMLImageData { image: None };
26     let ed = ElementData { kind: box ElementKind::HTMLImageElement(id) };
27     let n = NodeData {kind : box NodeKind::Element(ed)};
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 }