Issue 1:
Compiling water v0.14.34-alpha (file:///mnt/host/kmcg3413.net/water.rs)
/mnt/host/kmcg3413.net/water.rs/src/compat.rs:53:1: 61:2 error: internal compiler error: impl `VtableImpl(impl_def_id=DefId { krate: 0, node: 6089 }:compat::MessagesIterator<'a, T>.Iterator, substs=Substs[types=[[_];[];[]], regions=[['_#0r];[];[]]], nested=[[Obligation(predicate=Binder(TraitPredicate(TraitRef(T, core::kinds::Send))),depth=1), Obligation(predicate=Binder(TraitPredicate(TraitRef(T, core::kinds::Sized))),depth=1)];[];[]])` did not contain projection for `Obligation(predicate=<compat::MessagesIterator<'a, T> as TraitRef(compat::MessagesIterator<'a, T>, core::iter::Iterator)>::Item,depth=0)`
/mnt/host/kmcg3413.net/water.rs/src/compat.rs:53 impl<'a, T: Send> Iterator for MessagesIterator<'a, T> {
/mnt/host/kmcg3413.net/water.rs/src/compat.rs:54 fn next(&mut self) -> Option<T> {
/mnt/host/kmcg3413.net/water.rs/src/compat.rs:55 let result = self.proxy.recv_opt();
/mnt/host/kmcg3413.net/water.rs/src/compat.rs:56 match result {
/mnt/host/kmcg3413.net/water.rs/src/compat.rs:57 Result::Ok(t) => Option::Some(t),
/mnt/host/kmcg3413.net/water.rs/src/compat.rs:58 Result::Err(_) => Option::None,
...
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', /home/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-linux/build/src/libsyntax/diagnostic.rs:123

stack backtrace:
1: 0x7fb1ad3cf920 - sys::backtrace::write::h36422e877a8b3158yQs
2: 0x7fb1ad3f5650 - failure::on_fail::hde5005d61795902da3y
3: 0x7fb1ad35b4a0 - rt::unwind::begin_unwind_inner::ha0668a3a9d73b9a7RHy
4: 0x7fb1a824baf0 - rt::unwind::begin_unwind::h9147230717703493418
5: 0x7fb1a824ba80 - diagnostic::SpanHandler::span_bug::hee7de6e88971705bDFF
6: 0x7fb1ab746c70 - middle::traits::project::project_type::ha3169b6d00cba236CYP
7: 0x7fb1ab743dd0 - middle::traits::project::opt_normalize_projection_type::h52e80e1c888609adFQP
8: 0x7fb1ab731890 - middle::traits::project::normalize_projection_type::had1d9d27edaeb68fgPP
9: 0x7fb1ab745270 - middle::traits::project::AssociatedTypeNormalizer<'a, 'b, 'tcx>.TypeFolder<'tcx>::fold_ty::h8977cf1010cf2ef8RNP
10: 0x7fb1aca02990 - middle::ty_fold::TypeFolder::fold_trait_ref::h15244371943192340039
11: 0x7fb1aca035c0 - middle::ty_fold::VecPerParamSpace<T>.TypeFoldable<'tcx>::fold_with::h3029018912722243389
12: 0x7fb1aca1eb40 - check::FnCtxt<'a, 'tcx>::instantiate_bounds::haf69ce16fdf22227Nul
13: 0x7fb1aca37870 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>::check_impl::closure.30018
14: 0x7fb1aca33ce0 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>::with_fcx::h0df2a1129da2a633Hfi
15: 0x7fb1aca3a760 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>.Visitor<'v>::visit_item::hc72c9294b1b3f21ftoi
16: 0x7fb1aca3c5c0 - visit::walk_mod::h2450081392115226323
17: 0x7fb1aca3a760 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>.Visitor<'v>::visit_item::hc72c9294b1b3f21ftoi
18: 0x7fb1acc28bd0 - check_crate::unboxed_closure.40283
19: 0x7fb1acc23820 - check_crate::h4ba306a17295b431iux
20: 0x7fb1ad910600 - driver::phase_3_run_analysis_passes::h56810662503f92d8Sva
21: 0x7fb1ad8feaa0 - driver::compile_input::h8d0abf631800220evba
22: 0x7fb1ad9ca070 - thunk::F.Invoke<A, R>::invoke::h13263903969514368718
23: 0x7fb1ad9c8e20 - rt::unwind::try::try_fn::h2272437873322108176
24: 0x7fb1ad4598b0 - rust_try_inner
25: 0x7fb1ad4598a0 - rust_try
26: 0x7fb1ad9c9170 - thunk::F.Invoke<A, R>::invoke::h17236552692728063371
27: 0x7fb1ad3e1490 - sys::thread::thread_start::hd19c7749b7af23e8EGv
28: 0x7fb1a7a6fa80 - start_thread
29: 0x0 - <unknown>

Could not compile `water`.

To learn more, run the command again with --verbose.

rustc 0.13.0-nightly (ad9e759 2015-01-05 00:26:28 +0000)

binary: rustc

commit-hash: ad9e759

commit-date: 2015-01-05 00:26:28 +0000

host: x86_64-unknown-linux-gnu

release: 0.13.0-nightly

Issue 2:
STR

Didn't have time to write a shorter snippet

#![crate_type = "lib"]
#![feature(associated_types, lang_items, unboxed_closures)]
#![no_std]

use Option::{None, Some};

trait Iterator {
type Item;

fn next(&mut self) -> Option<Self::Item>;
}

trait DoubleEndedIterator: Iterator {
fn next_back(&mut self) -> Option< <Self as Iterator>::Item>;
}

struct Rev<I>(I);

impl<I> Iterator for Rev<I> where I: DoubleEndedIterator {
// forgot this!
//type Item = <I as Iterator>::Item;

fn next(&mut self) -> Option< <I as Iterator>::Item> {
self.0.next_back()
}
}

#[lang = "copy"] trait Copy {}
#[lang = "sized"] trait Sized {}

enum Option<T> {
None,
Some(T),
}

#[lang = "fn_mut"]
trait FnMut<Args, Result> {
extern "rust-call" fn call_mut(&mut self, Args) -> Result;
}

Output

iter.rs:23:5: 25:6 error: internal compiler error: impl `VtableImpl(impl_def_id=DefId { krate: 0, node: 38 }:Rev<I>.Iterator, substs=Substs[types=[[_];[];[]], regions=[[];[];[]]], nested=[[Obligation(predicate=Binder(TraitPredicate(TraitRef(I, Sized))),depth=1), Obligation(predicate=Binder(TraitPredicate(TraitRef(I, DoubleEndedIterator))),depth=1)];[];[]])` did not contain projection for `Obligation(predicate=<Rev<I> as TraitRef(Rev<I>, Iterator)>::Item,depth=0)`
iter.rs:23 fn next(&mut self) -> Option< <I as Iterator>::Item> {
iter.rs:24 self.0.next_back()
iter.rs:25 }
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', /root/rust/src/libsyntax/diagnostic.rs:123

stack backtrace:
1: 0x7fddb1e70120 - sys::backtrace::write::h3fe61c98bf398fe8P8s
2: 0x7fddb1e8fef0 - failure::on_fail::h55da319a91ee267cEpz
3: 0x7fddb1e05b40 - rt::unwind::begin_unwind_inner::h2a51826b093fcd9eJ3y
4: 0x7fddad24b3d0 - rt::unwind::begin_unwind::h3298842058425057001
5: 0x7fddad24b360 - diagnostic::SpanHandler::span_bug::heeaf2edd6daa003fNQF
6: 0x7fddb022acb0 - middle::traits::project::project_type::hcf50d7eec736df9c35P
7: 0x7fddb0222800 - middle::traits::fulfill::process_predicate::h3703aabc133e79cayGP
8: 0x7fddb0221ab0 - middle::traits::fulfill::FulfillmentContext<$u{27}tcx$GT$::select::h827e4d042486e566SzP
9: 0x7fddb00ee7c0 - middle::traits::fulfill::FulfillmentContext<$u{27}tcx$GT$::select_all_or_error::heebbe09eddbd26dfDwP
10: 0x7fddb1510cd0 - check::compare_impl_method::h359a8a44e8f8def4Zfk
11: 0x7fddb14ff0b0 - check::check_item::hfedb86714512d4d8XRj
12: 0x7fddb169d450 - check_crate::unboxed_closure.39783
13: 0x7fddb16981f0 - check_crate::h7446c5344d10b3c1cGx
14: 0x7fddb23a98d0 - driver::phase_3_run_analysis_passes::hb59d2d67157ec124gva
15: 0x7fddb2397fb0 - driver::compile_input::hff9e8d16e3108315vba
16: 0x7fddb24e4900 - thunk::F.Invoke<A,$u{20}R$GT$::invoke::h10803646332669730367
17: 0x7fddb24e36c0 - rt::unwind::try::try_fn::h3820096971255462672
18: 0x7fddb1ef4eb0 - rust_try_inner
19: 0x7fddb1ef4ea0 - rust_try
20: 0x7fddb24e3a10 - thunk::F.Invoke<A,$u{20}R$GT$::invoke::h15250775183210022334
21: 0x7fddb1e7f8d0 - sys::thread::thread_start::h7b82ef93cab3e580K1v
22: 0x7fddaca690c0 - start_thread
23: 0x7fddb1aab2d9 - __clone
24: 0x0 - <unknown>

Version

84f5ad8

cc @nikomatsakis