Closed
Description
rustc 1.30.0-dev
binary: rustc
commit-hash: b5590423e6ceb048dd7d792382e960d66b7615d2
commit-date: 2018-08-16
host: x86_64-pc-windows-msvc
release: 1.30.0-dev
LLVM version: 7.0
a/Cargo.toml
[package]
name = "a"
version = "0.1.0"
a/src/lib.rs
#![feature(existential_type)]
pub existential type Foo: std::fmt::Debug;
pub fn foo() -> Foo {
5
}
b/Cargo.toml
[package]
name = "b"
version = "0.1.0"
[dependencies]
a = { path = "../a" }
b/src/main.rs
extern crate a;
fn main() {
let _ = a::foo();
}
ICE
thread 'main' panicked at 'librustc_resolve\build_reduced_graph.rs:741: unexpected definition: Existential(DefId(9/0:3))', librustc\util\bug.rs:47:26
stack backtrace:
0: std::sys::windows::backtrace::unwind_backtrace
at C:\Stuff\Sources\rustsrc\src\libstd\sys\windows\backtrace\mod.rs:95
1: std::sys_common::backtrace::print
at C:\Stuff\Sources\rustsrc\src\libstd\sys_common\backtrace.rs:59
2: std::panicking::default_hook::{{closure}}
at C:\Stuff\Sources\rustsrc\src\libstd\panicking.rs:211
3: std::panicking::default_hook
at C:\Stuff\Sources\rustsrc\src\libstd\panicking.rs:227
4: rustc::util::common::panic_hook
at C:\Stuff\Sources\rustsrc\src\librustc\util\common.rs:51
5: std::panicking::rust_panic_with_hook
at C:\Stuff\Sources\rustsrc\src\libstd\panicking.rs:479
6: std::panicking::begin_panic<alloc::string::String>
at C:\Stuff\Sources\rustsrc\src\libstd\panicking.rs:409
7: rustc::util::bug::opt_span_bug_fmt::{{closure}}<syntax_pos::span_encoding::Span>
at C:\Stuff\Sources\rustsrc\src\librustc\util\bug.rs:47
8: rustc::ty::context::tls::with_opt::{{closure}}<closure,!>
at C:\Stuff\Sources\rustsrc\src\librustc\ty\context.rs:2008
9: rustc::ty::context::tls::with_context_opt<closure,!>
at C:\Stuff\Sources\rustsrc\src\librustc\ty\context.rs:1939
10: rustc::ty::context::tls::with_opt<closure,!>
at C:\Stuff\Sources\rustsrc\src\librustc\ty\context.rs:2008
11: rustc::util::bug::opt_span_bug_fmt<syntax_pos::span_encoding::Span>
at C:\Stuff\Sources\rustsrc\src\librustc\util\bug.rs:42
12: rustc::util::bug::bug_fmt
at C:\Stuff\Sources\rustsrc\src\librustc\util\bug.rs:22
13: rustc_resolve::Resolver::populate_module_if_necessary
at C:\Stuff\Sources\rustsrc\src\librustc_resolve\build_reduced_graph.rs:813
14: rustc_resolve::Resolver::build_reduced_graph_for_item
at C:\Stuff\Sources\rustsrc\src\librustc_resolve\build_reduced_graph.rs:441
15: rustc_resolve::build_reduced_graph::{{impl}}::visit_item
at C:\Stuff\Sources\rustsrc\src\librustc_resolve\build_reduced_graph.rs:991
16: syntax::visit::walk_item<rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>
at C:\Stuff\Sources\rustsrc\src\libsyntax\visit.rs:245
17: rustc_resolve::build_reduced_graph::{{impl}}::visit_item
at C:\Stuff\Sources\rustsrc\src\librustc_resolve\build_reduced_graph.rs:992
18: syntax::ext::expand::AstFragment::visit_with<rustc_resolve::build_reduced_graph::BuildReducedGraphVisitor>
at C:\Stuff\Sources\rustsrc\src\libsyntax\ext\expand.rs:120
19: rustc_resolve::macros::{{impl}}::visit_ast_fragment_with_placeholders
at C:\Stuff\Sources\rustsrc\src\librustc_resolve\macros.rs:209
20: syntax::ext::expand::MacroExpander::collect_invocations
at C:\Stuff\Sources\rustsrc\src\libsyntax\ext\expand.rs:478
21: syntax::ext::expand::MacroExpander::expand_fragment
at C:\Stuff\Sources\rustsrc\src\libsyntax\ext\expand.rs:318
22: syntax::ext::expand::MacroExpander::expand_crate
at C:\Stuff\Sources\rustsrc\src\libsyntax\ext\expand.rs:292
23: rustc_driver::driver::phase_2_configure_and_expand_inner::{{closure}}<closure>
at C:\Stuff\Sources\rustsrc\src\librustc_driver\driver.rs:1006
24: rustc::util::common::time<syntax::ast::Crate,closure>
at C:\Stuff\Sources\rustsrc\src\librustc\util\common.rs:157
25: rustc_driver::driver::phase_2_configure_and_expand<closure>
at C:\Stuff\Sources\rustsrc\src\librustc_driver\driver.rs:764
26: rustc_driver::driver::compile_input
at C:\Stuff\Sources\rustsrc\src\librustc_driver\driver.rs:184
27: rustc_driver::run_compiler_with_pool
at C:\Stuff\Sources\rustsrc\src\librustc_driver\lib.rs:562
28: scoped_tls::ScopedKey<syntax::Globals>::set<syntax::Globals,closure,(core::result::Result<(), rustc::session::CompileIncomplete>, core::option::Option<rustc::session::Session>)>
at C:\Users\Arnavion\.cargo\registry\src\github.com-1ecc6299db9ec823\scoped-tls-0.1.2\src\lib.rs:155
29: std::panic::{{impl}}::call_once<(),closure>
at C:\Stuff\Sources\rustsrc\src\libstd\panic.rs:313
30: panic_unwind::__rust_maybe_catch_panic
at C:\Stuff\Sources\rustsrc\src\libpanic_unwind\lib.rs:102
31: std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
at C:\Stuff\Sources\rustsrc\src\libstd\panicking.rs:289
32: rustc_driver::run<closure>
at C:\Stuff\Sources\rustsrc\src\librustc_driver\lib.rs:187
33: rustc_driver::main
at C:\Stuff\Sources\rustsrc\src\librustc_driver\lib.rs:1737
34: std::rt::lang_start::{{closure}}<()>
at C:\Stuff\Sources\rustsrc\src\libstd\rt.rs:74
35: std::panicking::try::do_call<closure,i32>
at C:\Stuff\Sources\rustsrc\src\libstd\panicking.rs:310
36: panic_unwind::__rust_maybe_catch_panic
at C:\Stuff\Sources\rustsrc\src\libpanic_unwind\lib.rs:102
37: std::panicking::try<i32,closure>
at C:\Stuff\Sources\rustsrc\src\libstd\panicking.rs:289
38: std::rt::lang_start_internal
at C:\Stuff\Sources\rustsrc\src\libstd\rt.rs:58
39: main
40: __scrt_common_main_seh
at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283
41: BaseThreadInitThunk
42: RtlUserThreadStart
query stack during panic:
end of query stack
error: internal compiler error: unexpected panic
Resolver::build_reduced_graph_for_external_crate_def
needs an arm for Def::Existential
? @oli-obk
Edit: Easy playground repro