Skip to content

Commit 2df5a13

Browse files
committed
Removed future's destructor
It was only there to prevent Future from being copyable, but it's noncopyable anyways since it contains a ~fn.
1 parent da29a8e commit 2df5a13

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

src/libextra/future.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,6 @@ pub struct Future<A> {
3737
priv state: FutureState<A>,
3838
}
3939

40-
// n.b. It should be possible to get rid of this.
41-
// Add a test, though -- tjc
42-
// FIXME(#2829) -- futures should not be copyable, because they close
43-
// over ~fn's that have pipes and so forth within!
44-
#[unsafe_destructor]
45-
impl<A> Drop for Future<A> {
46-
fn drop(&mut self) {}
47-
}
48-
4940
enum FutureState<A> {
5041
Pending(~fn() -> A),
5142
Evaluating,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright 2013 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+
extern mod extra;
12+
13+
use extra::future;
14+
15+
fn main() {
16+
let f = future::from_value(());
17+
let g = f;
18+
f.unwrap(); //~ ERROR use of moved value
19+
}

0 commit comments

Comments
 (0)