Skip to content

ICE: When implementing trait with a generic parameter and an associated output type #19129

Closed
@japaric

Description

@japaric

STR

#![feature(associated_types)]

// This was an ICE (#17388), which got fixed by #18868
trait Trait<T> {
    type Output;

    fn fun() -> <Self as Trait<T>>::Output;
}

// The new ICE gets triggered by this `impl`
impl<T> Trait<T> for () {
    type Output = ();

    fn fun() {}
}

fn main() {}

Output

ice.rs:1:1: 1:1 error: internal compiler error: Type parameter `Output/AssocSpace.1` (Output/AssocSpace/1) out of range when substituting (root type=Output) substs=Substs[types=[[T];[()];[()];[]], regions=[[];[];[];[]]]
ice.rs:1 #![feature(associated_types)]
         ^
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
task 'rustc' panicked at 'Box<Any>', /var/tmp/paludis/build/dev-lang-rust-scm/work/rust-scm/src/libsyntax/diagnostic.rs:121

stack backtrace:
   1:     0x7f72dcabfae0 - rt::backtrace::imp::write::hdd602ae028f48d0dvVs
   2:     0x7f72dcac2b70 - <unknown>
   3:     0x7f72dd263310 - unwind::begin_unwind_inner::hbce8e4e8263dca1ePad
   4:     0x7f72da970ac0 - <unknown>
   5:     0x7f72da970a40 - diagnostic::SpanHandler::span_bug::hbe9748378cce230fGYF
   6:     0x7f72dba52970 - middle::subst::SubstFolder<'a, 'tcx>.TypeFolder<'tcx>::fold_ty::h3e05f8a78cf2b146RLP
   7:     0x7f72dbaf3800 - <unknown>
   8:     0x7f72dbaf33b0 - <unknown>
   9:     0x7f72dbaf2af0 - <unknown>
  10:     0x7f72dbb2c5b0 - <unknown>
  11:     0x7f72dbb2c410 - <unknown>
  12:     0x7f72dbb2bf50 - <unknown>
  13:     0x7f72dbb19410 - middle::ty::Generics<'tcx>::to_bounds::h3795ba6b160f5212yd1
  14:     0x7f72dbbe66b0 - middle::typeck::check::wf::BoundsChecker<'cx, 'tcx>::check_trait_ref::ha7aa8a645e91eafdZ9g
  15:     0x7f72dbbe48c0 - <unknown>
  16:     0x7f72dbbe1ae0 - <unknown>
  17:     0x7f72dbbe6c70 - middle::typeck::check::wf::CheckTypeWellFormedVisitor<'ccx, 'tcx>.Visitor<'v>::visit_item::ha3e9d13b541ef7c6k8g
  18:     0x7f72dbc3bb50 - middle::typeck::check::check_item_types::h754a0f7a04b7367639h
  19:     0x7f72dbfdf590 - <unknown>
  20:     0x7f72dbfde7a0 - middle::typeck::check_crate::h03aa0a74283c33108PL
  21:     0x7f72dd75bcc0 - driver::driver::phase_3_run_analysis_passes::h13d5815dc0529392D5R
  22:     0x7f72dd750ae0 - driver::driver::compile_input::hce9f8a5af8c23ae8nMR
  23:     0x7f72dd7d51d0 - <unknown>
  24:     0x7f72dd7d50c0 - <unknown>
  25:     0x7f72dd5e2d50 - <unknown>
  26:     0x7f72dd5e2b40 - <unknown>
  27:     0x7f72ddaf4ba0 - <unknown>
  28:     0x7f72dd2b2670 - <unknown>
  29:     0x7f72dd2b2660 - rust_try
  30:     0x7f72dd260c70 - unwind::try::hc967dd74749deb3arZc
  31:     0x7f72dd260b00 - task::Task::run::h236da885853fa0e4h5b
  32:     0x7f72ddaf48e0 - <unknown>
  33:     0x7f72dd262320 - <unknown>
  34:     0x7f72d7d451d0 - start_thread
  35:     0x7f72dcf391b9 - clone
  36:                0x0 - <unknown>

Version

#19113 + #18868 on top of bfaa7bc

cc @nikomatsakis

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-associated-itemsArea: Associated items (types, constants & functions)I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions