]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/while-prelude-drop.rs
auto merge of #7441 : catamorphism/rust/testcases_2013-06-27, r=catamorphism
[rust.git] / src / test / run-pass / while-prelude-drop.rs
1 // Copyright 2012 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
12 #[deriving(Eq)]
13 enum t { a, b(~str), }
14
15 fn make(i: int) -> t {
16     if i > 10 { return a; }
17     let mut s = ~"hello";
18     // Ensure s is non-const.
19
20     s.push_str("there");
21     return b(s);
22 }
23
24 pub fn main() {
25     let mut i = 0;
26
27
28     // The auto slot for the result of make(i) should not leak.
29     while make(i) != a { i += 1; }
30 }