diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2014-07-21 20:54:28 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2014-07-24 18:58:12 -0700 |
| commit | caa564bea3d5f5a24d0797c4769184c1ea0abaff (patch) | |
| tree | f0f1b5d284efe24018586e85fb5b442e8b578283 /src/libunicode | |
| parent | 7f2e63ec3f6f03ac9273a9f166a4ce8deff48097 (diff) | |
| download | rust-caa564bea3d5f5a24d0797c4769184c1ea0abaff.tar.gz rust-caa564bea3d5f5a24d0797c4769184c1ea0abaff.zip | |
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<int> { ... }
}
for x in MyStruct { ... } { ... }
Change ad-hoc `next` methods like the above to implementations of the
`Iterator` trait. For example:
impl Iterator<int> for MyStruct {
fn next(&mut self) -> Option<int> { ... }
}
Closes #15392.
[breaking-change]
Diffstat (limited to 'src/libunicode')
| -rw-r--r-- | src/libunicode/decompose.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libunicode/decompose.rs b/src/libunicode/decompose.rs index 832b65d4739..25e06bf7c13 100644 --- a/src/libunicode/decompose.rs +++ b/src/libunicode/decompose.rs @@ -39,6 +39,7 @@ pub fn decompose_canonical(c: char, i: |char|) { d(c, i, false); } pub fn decompose_compatible(c: char, i: |char|) { d(c, i, true); } fn d(c: char, i: |char|, k: bool) { + #[cfg(stage0)] use core::iter::Iterator; // 7-bit ASCII never decomposes |
