Skip to content

rustc crashed with empty Iterator trait implementation #20553

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
davidsullins opened this issue Jan 5, 2015 · 2 comments
Closed

rustc crashed with empty Iterator trait implementation #20553

davidsullins opened this issue Jan 5, 2015 · 2 comments
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@davidsullins
Copy link

This 3-liner crashes rustc:

struct CrashIt;
impl Iterator for CrashIt { }
fn main() { }

My original code did a lot more than that, but I tried to create the minimal repro case.

$ rustc --version --verbose
rustc 0.13.0-nightly (c6c786671 2015-01-04 00:50:59 +0000)
binary: rustc
commit-hash: c6c786671d692d7b13c2e5c68a53001327b4b125
commit-date: 2015-01-04 00:50:59 +0000
host: x86_64-unknown-linux-gnu
release: 0.13.0-nightly

$ RUST_BACKTRACE=1 rustc src/main.rs 
src/main.rs:2:1: 2:30 error: internal compiler error: impl `VtableImpl(impl_def_id=DefId { krate: 0, node: 7 }:CrashIt.Iterator, substs=Substs[types=[[];[];[]], regions=[[];[];[]]], nested=[[];[];[]])` did not contain projection for `Obligation(predicate=<CrashIt as TraitRef(CrashIt, core::iter::Iterator)>::Item,depth=0)`
src/main.rs:2 impl Iterator for CrashIt { }
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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:     0x7fbff73562d0 - sys::backtrace::write::h8532e701ef86014f4it
   2:     0x7fbff737bb00 - failure::on_fail::h7532e1f79d134d5dzvz
   3:     0x7fbff72e11c0 - rt::unwind::begin_unwind_inner::h97b151606151d62deaz
   4:     0x7fbff218ec60 - rt::unwind::begin_unwind::h15809447133099964284
   5:     0x7fbff218ebf0 - diagnostic::SpanHandler::span_bug::he8142ababcc30c39DFF
   6:     0x7fbff568de70 - middle::traits::project::project_type::h947eece142ef049d52P
   7:     0x7fbff568afd0 - middle::traits::project::opt_normalize_projection_type::hb3defb9cc9365d1e8UP
   8:     0x7fbff5678ba0 - middle::traits::project::normalize_projection_type::hdc293893275ee559JTP
   9:     0x7fbff568c470 - middle::traits::project::AssociatedTypeNormalizer<'a, 'b, 'tcx>.TypeFolder<'tcx>::fold_ty::h801cbd2cdff2eff1kSP
  10:     0x7fbff69492e0 - middle::ty_fold::Rc<T>.TypeFoldable<'tcx>::fold_with::h6325524173844043840
  11:     0x7fbff6949e90 - middle::ty_fold::VecPerParamSpace<T>.TypeFoldable<'tcx>::fold_with::h13884369302522804796
  12:     0x7fbff6965280 - check::FnCtxt<'a, 'tcx>::instantiate_bounds::hed550a9659b70335Oll
  13:     0x7fbff697dfc0 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>::check_impl::closure.29997
  14:     0x7fbff697a430 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>::with_fcx::hb1283961ed8977b7Gfi
  15:     0x7fbff6980d70 - check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>.Visitor<'v>::visit_item::h001ababd87597e37soi
  16:     0x7fbff6b6dfe0 - check_crate::unboxed_closure.40162
  17:     0x7fbff6b68c30 - check_crate::h19fb6dea5733566ajsx
  18:     0x7fbff78a7640 - driver::phase_3_run_analysis_passes::h46b1604d9f9f5633Tva
  19:     0x7fbff7895ae0 - driver::compile_input::h68b8602933aad8d7wba
  20:     0x7fbff7960eb0 - thunk::F.Invoke<A, R>::invoke::h18029802347644288836
  21:     0x7fbff795fc60 - rt::unwind::try::try_fn::h6518866316425934196
  22:     0x7fbff73e2400 - rust_try_inner
  23:     0x7fbff73e23f0 - rust_try
  24:     0x7fbff795ffb0 - thunk::F.Invoke<A, R>::invoke::h15513809553472565307
  25:     0x7fbff7367e40 - sys::thread::thread_start::h5ea7ba97235331d5a9v
  26:     0x7fbff19b2c20 - start_thread
  27:     0x7fbff6f83899 - clone
  28:                0x0 - <unknown>
@jdm jdm added the I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ label Jan 5, 2015
@oakes
Copy link

oakes commented Jan 5, 2015

Possible duplicate of #20347

@huonw
Copy link
Member

huonw commented Jan 6, 2015

Looks like a dupe; thanks for filing!

The fix is writing type Item = X; in the body of the impl, where X is the type that the Iterator yields.

@huonw huonw closed this as completed Jan 6, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

No branches or pull requests

4 participants