Skip to content

Commit 9a093ab

Browse files
committed
extra: change workcache::Work::unwrap to move out of self.
1 parent d5803e6 commit 9a093ab

File tree

1 file changed

+18
-26
lines changed

1 file changed

+18
-26
lines changed

src/libextra/workcache.rs

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -330,37 +330,29 @@ impl<T:Send +
330330
pub fn new(p: @mut Prep, e: Either<T,PortOne<(Exec,T)>>) -> Work<T> {
331331
Work { prep: p, res: Some(e) }
332332
}
333-
}
334333

335-
// FIXME (#3724): movable self. This should be in impl Work.
336-
fn unwrap<T:Send +
337-
Encodable<json::Encoder> +
338-
Decodable<json::Decoder>>( // FIXME(#5121)
339-
w: Work<T>) -> T {
340-
let mut ww = w;
341-
let s = ww.res.take();
342-
343-
match s {
344-
None => fail!(),
345-
Some(Left(v)) => v,
346-
Some(Right(port)) => {
347-
let (exe, v) = recv_one(port);
348-
349-
let s = json_encode(&v);
350-
351-
let p = &*ww.prep;
352-
do p.ctxt.db.write |db| {
353-
db.cache(p.fn_name,
354-
&p.declared_inputs,
355-
&exe.discovered_inputs,
356-
&exe.discovered_outputs,
357-
s);
334+
pub fn unwrap(self) -> T {
335+
let Work { prep, res } = self;
336+
match res {
337+
None => fail!(),
338+
Some(Left(v)) => v,
339+
Some(Right(port)) => {
340+
let (exe, v) = recv_one(port);
341+
let s = json_encode(&v);
342+
do prep.ctxt.db.write |db| {
343+
db.cache(prep.fn_name,
344+
&prep.declared_inputs,
345+
&exe.discovered_inputs,
346+
&exe.discovered_outputs,
347+
s);
348+
}
349+
v
358350
}
359-
v
360351
}
361352
}
362353
}
363354

355+
364356
//#[test]
365357
fn test() {
366358
use std::io::WriterUtil;
@@ -385,6 +377,6 @@ fn test() {
385377
out.to_str()
386378
}
387379
};
388-
let s = unwrap(w);
380+
let s = w.unwrap();
389381
io::println(s);
390382
}

0 commit comments

Comments
 (0)