Skip to content

Undefined nested associated type causes ICE #22384

Closed
@solson

Description

@solson

Playpen link

trait Trait {
    fn foo();
}

fn main() {
    <<i32 as Copy>::foobar as Trait>::foo();
    // In general, <<Type as AnyTraitTheTypeImplements>::anything as AnyTrait>::method();
}

The above causes the following the following error:

<anon>:6:6: 6:27 error: internal compiler error: Cannot project an associated type from `VtableBuiltin(nested=[[];[];[]])`
<anon>:6     <<i32 as Copy>::foobar as Trait>::foo();
              ^~~~~~~~~~~~~~~~~~~~~
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:129

It works correctly if foobar is actually a defined associated type.

Metadata

Metadata

Assignees

No one assigned

    Labels

    E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.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