Skip to content

Commit cf9c586

Browse files
committed
reviewer changes
1 parent 31a7e38 commit cf9c586

File tree

5 files changed

+69
-3
lines changed

5 files changed

+69
-3
lines changed

src/test/compile-fail/slice-1.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ fn main() {
1616
let x = Foo;
1717
x[..]; //~ ERROR incorrect slicing expression: `[..]`
1818
//~^ NOTE use `expr[]` to construct a slice of the whole of expr
19-
}
19+
}

src/test/compile-fail/slice-2.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ fn main() {
2222
x[mut Foo..]; //~ ERROR cannot take a mutable slice of a value with type `Foo`
2323
x[mut ..Foo]; //~ ERROR cannot take a mutable slice of a value with type `Foo`
2424
x[mut Foo..Foo]; //~ ERROR cannot take a mutable slice of a value with type `Foo`
25-
}
25+
}

src/test/run-pass/slice-fail-1.rs

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Copyright 2014 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+
// Test that is a slicing expr[..] fails, the correct cleanups happen.
12+
13+
use std::task;
14+
15+
struct Foo;
16+
17+
static mut DTOR_COUNT: int = 0;
18+
19+
impl Drop for Foo {
20+
fn drop(&mut self) { unsafe { DTOR_COUNT += 1; } }
21+
}
22+
23+
fn foo() {
24+
let x: &[_] = &[Foo, Foo];
25+
x[3..4];
26+
}
27+
28+
fn main() {
29+
let _ = task::try(proc() foo());
30+
unsafe { assert!(DTOR_COUNT == 2); }
31+
}

src/test/run-pass/slice-fail-2.rs

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Copyright 2014 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+
// Test that is a slicing expr[..] fails, the correct cleanups happen.
12+
13+
use std::task;
14+
15+
struct Foo;
16+
17+
static mut DTOR_COUNT: int = 0;
18+
19+
impl Drop for Foo {
20+
fn drop(&mut self) { unsafe { DTOR_COUNT += 1; } }
21+
}
22+
23+
fn bar() -> uint {
24+
fail!();
25+
}
26+
27+
fn foo() {
28+
let x: &[_] = &[Foo, Foo];
29+
x[3..bar()];
30+
}
31+
32+
fn main() {
33+
let _ = task::try(proc() foo());
34+
unsafe { assert!(DTOR_COUNT == 2); }
35+
}

src/test/run-pass/slice.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,4 @@ fn main() {
6767
unsafe {
6868
assert!(COUNT == 8);
6969
}
70-
}
70+
}

0 commit comments

Comments
 (0)