]> git.lizzy.rs Git - rust.git/blob - src/test/ui/reachable/expr_struct.rs
Rollup merge of #53317 - estebank:abolish-ice, r=oli-obk
[rust.git] / src / test / ui / reachable / expr_struct.rs
1 // Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 #![allow(unused_variables)]
12 #![allow(unused_assignments)]
13 #![allow(dead_code)]
14 #![deny(unreachable_code)]
15 #![feature(type_ascription)]
16
17 struct Foo {
18     a: usize,
19     b: usize,
20 }
21
22 fn a() {
23     // struct expr is unreachable:
24     let x = Foo { a: 22, b: 33, ..return }; //~ ERROR unreachable
25 }
26
27 fn b() {
28     // the `33` is unreachable:
29     let x = Foo { a: return, b: 33, ..return }; //~ ERROR unreachable
30 }
31
32 fn c() {
33     // the `..return` is unreachable:
34     let x = Foo { a: 22, b: return, ..return }; //~ ERROR unreachable
35 }
36
37 fn d() {
38     // the struct expr is unreachable:
39     let x = Foo { a: 22, b: return }; //~ ERROR unreachable
40 }
41
42 fn main() { }