From caa564bea3d5f5a24d0797c4769184c1ea0abaff Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Mon, 21 Jul 2014 20:54:28 -0700 Subject: librustc: Stop desugaring `for` expressions and translate them directly. This makes edge cases in which the `Iterator` trait was not in scope and/or `Option` or its variants were not in scope work properly. This breaks code that looks like: struct MyStruct { ... } impl MyStruct { fn next(&mut self) -> Option { ... } } for x in MyStruct { ... } { ... } Change ad-hoc `next` methods like the above to implementations of the `Iterator` trait. For example: impl Iterator for MyStruct { fn next(&mut self) -> Option { ... } } Closes #15392. [breaking-change] --- src/libstd/io/tempfile.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/libstd') diff --git a/src/libstd/io/tempfile.rs b/src/libstd/io/tempfile.rs index 5ca7e417af6..f580dfd80f0 100644 --- a/src/libstd/io/tempfile.rs +++ b/src/libstd/io/tempfile.rs @@ -12,7 +12,7 @@ use io::{fs, IoResult}; use io; -use iter::{Iterator, range}; +use iter::range; use libc; use ops::Drop; use option::{Option, None, Some}; @@ -21,6 +21,9 @@ use path::{Path, GenericPath}; use result::{Ok, Err}; use sync::atomics; +#[cfg(stage0)] +use iter::Iterator; // NOTE(stage0): Remove after snapshot. + /// A wrapper for a path to temporary directory implementing automatic /// scope-based deletion. pub struct TempDir { -- cgit 1.4.1-3-g733a5