rust/src/librustc/middle
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
..
borrowck librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
cfg librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
save Implement new mod import sugar 2014-07-20 12:40:08 +02:00
trans librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
typeck librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
astencode.rs librustc: Implement unboxed closures with mutable receivers 2014-07-18 09:01:37 -07:00
check_const.rs Convert a first batch of diagnostics to have error codes 2014-07-12 21:53:34 +02:00
check_loop.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
check_match.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
check_static.rs Convert a first batch of diagnostics to have error codes 2014-07-12 21:53:34 +02:00
const_eval.rs Add support for patterns referencing non-trivial statics 2014-07-19 01:09:22 +02:00
dataflow.rs Removed the _frozen methods from dataflow API. 2014-07-18 13:48:53 +02:00
dead.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
def.rs middle: Derive Show impls 2014-07-15 18:54:47 -04:00
dependency_format.rs
effect.rs Assign more diagnostic codes 2014-07-18 20:13:19 +02:00
entry.rs Assign more diagnostic codes 2014-07-18 20:13:19 +02:00
expr_use_visitor.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
freevars.rs librustc: Implement unboxed closures with mutable receivers 2014-07-18 09:01:37 -07:00
graph.rs
intrinsicck.rs Assign more diagnostic codes 2014-07-18 20:13:19 +02:00
kind.rs Add Drop support for enums 2014-07-22 23:45:49 +02:00
lang_items.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
liveness.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
mem_categorization.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
pat_util.rs Add support for patterns referencing non-trivial statics 2014-07-19 01:09:22 +02:00
privacy.rs privacy: Add publically-reexported foreign item to exported item set 2014-07-21 09:54:59 -07:00
reachable.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
region.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
resolve_lifetime.rs
resolve.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
stability.rs
subst.rs librustc: Implement unboxed closures with mutable receivers 2014-07-18 09:01:37 -07:00
ty_fold.rs librustc: Implement unboxed closures with mutable receivers 2014-07-18 09:01:37 -07:00
ty.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
weak_lang_items.rs