Commit Graph

4 Commits

Author SHA1 Message Date
Jorge Aparicio
5e1820f346 fix tests 2015-01-30 10:37:44 -05:00
Huon Wilson
0c70ce1424 Update compile fail tests to use isize. 2015-01-08 11:02:24 -05:00
Huon Wilson
2e4a21c2c2 Mention type of for exprs that don't implement Iterator.
This improves the error message by telling the user the exact type of
`x` if it doesn't implement `Iterator` in `for ... in x {}`.

Closes #16043.
2014-08-29 17:39:09 +10:00
Patrick Walton
caa564bea3 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]
2014-07-24 18:58:12 -07:00