Closed
Description
rustc lib.rs --edition=2018 --crate-type lib
produces an ICE for the code given below. This code should produce
an error (the TryFrom
implementation is missing associated items).
Code
(UPDATED: Here's MCVE: #74047 (comment))
use std::convert::{TryFrom, TryInto};
use std::io;
use std::os::unix::net::UnixStream;
use std::path::Path;
pub struct MyStream { }
impl MyStream {
pub async fn connect(path: impl AsRef<Path>) -> io::Result<MyStream> {
let socket = Socket::new()?;
let stream: MyStream = socket.into_unix_stream().try_into()?;
loop {}
}
}
impl TryFrom<UnixStream> for MyStream {
}
pub struct Socket { }
impl Socket {
pub fn new() -> io::Result<Socket> {
loop {}
}
pub fn into_unix_stream(self) -> UnixStream {
loop {}
}
}
Meta
rustc --version --verbose
:
rustc 1.44.1 (c7087fe00 2020-06-17)
binary: rustc
commit-hash: c7087fe00d2ba919df1d813c040a5d47e43b0fe7
commit-date: 2020-06-17
host: x86_64-unknown-linux-gnu
release: 1.44.1
LLVM version: 9.0
Error also occurs on beta and nightly.
Error output
thread 'rustc' panicked at 'no entry found for key', src/librustc_mir_build/build/mod.rs:345:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.44.1 (c7087fe00 2020-06-17) running on x86_64-unknown-linux-gnu
note: compiler flags: --crate-type lib
error: internal compiler error: cat_expr Errd
--> src/lib.rs:12:32
|
12 | let stream: MyStream = socket.into_unix_stream().try_into()?;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: internal compiler error: cat_expr Errd
--> src/lib.rs:12:32
|
12 | let stream: MyStream = socket.into_unix_stream().try_into()?;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: internal compiler error: cat_expr Errd
--> src/lib.rs:12:68
|
12 | let stream: MyStream = socket.into_unix_stream().try_into()?;
| ^
thread 'rustc' panicked at 'no errors encountered even though `delay_span_bug` issued', src/librustc_errors/lib.rs:366:17
stack backtrace:
0: 0x7f129fb65ab4 - backtrace::backtrace::libunwind::trace::h812748238d609e46
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
1: 0x7f129fb65ab4 - backtrace::backtrace::trace_unsynchronized::h7c97e818aebf09c8
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
2: 0x7f129fb65ab4 - std::sys_common::backtrace::_print_fmt::h60d914263b0ccd71
at src/libstd/sys_common/backtrace.rs:78
3: 0x7f129fb65ab4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf78227137afc7565
at src/libstd/sys_common/backtrace.rs:59
4: 0x7f129fba3bac - core::fmt::write::h543cdf60775f89bf
at src/libcore/fmt/mod.rs:1069
5: 0x7f129fb574d3 - std::io::Write::write_fmt::h0c7f3ce24c679426
at src/libstd/io/mod.rs:1504
6: 0x7f129fb6aab5 - std::sys_common::backtrace::_print::h80e55e24be231368
at src/libstd/sys_common/backtrace.rs:62
7: 0x7f129fb6aab5 - std::sys_common::backtrace::print::h3b197b9c1261c865
at src/libstd/sys_common/backtrace.rs:49
8: 0x7f129fb6aab5 - std::panicking::default_hook::{{closure}}::ha6c807149ce20f8f
at src/libstd/panicking.rs:198
9: 0x7f129fb6a7f2 - std::panicking::default_hook::he49a9c12e358cc45
at src/libstd/panicking.rs:218
10: 0x7f12a0107923 - rustc_driver::report_ice::h303988fb5b9997d4
11: 0x7f129fb6b235 - std::panicking::rust_panic_with_hook::h93f74f5ef2f71f31
at src/libstd/panicking.rs:515
12: 0x7f12a28f125e - std::panicking::begin_panic::hc68bee93462232be
13: 0x7f12a292aa12 - <rustc_errors::HandlerInner as core::ops::drop::Drop>::drop::h1f879c4351fba67a
14: 0x7f12a024c166 - core::ptr::drop_in_place::h4d80a69fc5b8b26d
15: 0x7f12a0254536 - <alloc::rc::Rc<T> as core::ops::drop::Drop>::drop::h11773fcd49f47beb
16: 0x7f12a027801d - core::ptr::drop_in_place::ha136f12949be28b0
17: 0x7f12a025ea45 - rustc_interface::interface::run_compiler_in_existing_thread_pool::h1fe14dfeda5e7ff8
18: 0x7f12a011152d - scoped_tls::ScopedKey<T>::set::h7ef5c845735c44d5
19: 0x7f12a010e3d4 - rustc_ast::attr::with_globals::h80403999168944fb
20: 0x7f12a0119a92 - std::sys_common::backtrace::__rust_begin_short_backtrace::h65e906f83ddca1d2
21: 0x7f12a026140e - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4a7aeea8942a4e2c
22: 0x7f129fb7b2aa - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hf207c3654ee300a0
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/liballoc/boxed.rs:1008
23: 0x7f129fb7b2aa - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h66e0c6190e34816b
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/liballoc/boxed.rs:1008
24: 0x7f129fb7b2aa - std::sys::unix::thread::Thread::new::thread_start::h30687bc0b1c3cd55
at src/libstd/sys/unix/thread.rs:87
25: 0x7f129fabb609 - start_thread
at /build/glibc-YYA7BZ/glibc-2.31/nptl/pthread_create.c:477
26: 0x7f129f9cf103 - __clone
27: 0x0 - <unknown>
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.44.1 (c7087fe00 2020-06-17) running on x86_64-unknown-linux-gnu
note: compiler flags: --crate-type lib
thread panicked while panicking. aborting.
Illegal instruction (core dumped)
Backtrace
hread 'rustc' panicked at 'no entry found for key', src/librustc_mir_build/build/mod.rs:345:9
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print_fmt
at src/libstd/sys_common/backtrace.rs:78
3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
at src/libstd/sys_common/backtrace.rs:59
4: core::fmt::write
at src/libcore/fmt/mod.rs:1069
5: std::io::Write::write_fmt
at src/libstd/io/mod.rs:1504
6: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:62
7: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:49
8: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:198
9: std::panicking::default_hook
at src/libstd/panicking.rs:218
10: rustc_driver::report_ice
11: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:515
12: rust_begin_unwind
at src/libstd/panicking.rs:419
13: core::panicking::panic_fmt
at src/libcore/panicking.rs:111
14: core::option::expect_failed
at src/libcore/option.rs:1260
15: rustc_mir_build::build::expr::as_place::<impl rustc_mir_build::build::Builder>::expr_as_place
16: rustc_mir_build::build::expr::as_place::<impl rustc_mir_build::build::Builder>::as_place
17: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
18: rustc_mir_build::build::expr::as_temp::<impl rustc_mir_build::build::Builder>::expr_as_temp
19: rustc_mir_build::build::expr::as_operand::<impl rustc_mir_build::build::Builder>::expr_as_operand
20: rustc_mir_build::build::expr::as_operand::<impl rustc_mir_build::build::Builder>::as_call_operand
21: rustc_mir_build::build::expr::as_operand::<impl rustc_mir_build::build::Builder>::as_call_operand
22: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
23: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
24: rustc_mir_build::build::expr::as_temp::<impl rustc_mir_build::build::Builder>::expr_as_temp
25: rustc_mir_build::build::expr::as_operand::<impl rustc_mir_build::build::Builder>::expr_as_operand
26: rustc_mir_build::build::expr::as_operand::<impl rustc_mir_build::build::Builder>::as_call_operand
27: rustc_mir_build::build::expr::as_operand::<impl rustc_mir_build::build::Builder>::as_call_operand
28: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
29: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
30: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
31: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::break_scope
32: rustc_mir_build::build::expr::stmt::<impl rustc_mir_build::build::Builder>::stmt_expr
33: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
34: rustc_mir_build::build::expr::as_temp::<impl rustc_mir_build::build::Builder>::expr_as_temp
35: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
36: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
37: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
38: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
39: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
40: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
41: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
42: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
43: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
44: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
45: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
46: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
47: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
48: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
49: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
50: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
51: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
52: rustc_mir_build::build::construct_fn
53: rustc_infer::infer::InferCtxtBuilder::enter
54: rustc_mir_build::build::mir_built
55: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_built>::compute
56: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
57: rustc_query_system::query::plumbing::get_query
58: rustc_mir::transform::check_unsafety::unsafety_check_result
59: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
60: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
61: rustc_query_system::query::plumbing::get_query
62: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_rvalue
63: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_statement
64: rustc_mir::transform::check_unsafety::unsafety_check_result
65: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
66: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
67: rustc_query_system::query::plumbing::get_query
68: rustc_mir::transform::mir_const
69: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_const>::compute
70: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
71: rustc_query_system::query::plumbing::get_query
72: rustc_mir::transform::mir_validated
73: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_validated>::compute
74: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
75: rustc_query_system::query::plumbing::get_query
76: rustc_mir::borrow_check::mir_borrowck
77: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_borrowck>::compute
78: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
79: rustc_query_system::query::plumbing::get_query
80: rustc_typeck::collect::type_of::type_of
81: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
82: rustc_query_system::query::plumbing::get_query
83: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::try_expand_impl_trait_type::OpaqueTypeExpander::expand_opaque_ty
84: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::try_expand_impl_trait_type
85: rustc_typeck::check::check_item_type
86: rustc_middle::hir::map::Map::visit_item_likes_in_module
87: rustc_typeck::check::check_mod_item_types
88: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::check_mod_item_types>::compute
89: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
90: rustc_query_system::query::plumbing::get_query
91: rustc_query_system::query::plumbing::ensure_query
92: rustc_typeck::check_crate
93: rustc_interface::passes::analysis
94: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
95: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
96: rustc_query_system::query::plumbing::get_query
97: rustc_middle::ty::context::tls::enter_global
98: rustc_interface::interface::run_compiler_in_existing_thread_pool
99: scoped_tls::ScopedKey<T>::set
100: rustc_ast::attr::with_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.44.1 (c7087fe00 2020-06-17) running on x86_64-unknown-linux-gnu
note: compiler flags: --crate-type lib
query stack during panic:
#0 [mir_built] building MIR for
#1 [unsafety_check_result] unsafety-checking `MyStream::connect::{{closure}}#0`
#2 [unsafety_check_result] unsafety-checking `MyStream::connect`
#3 [mir_const] processing `MyStream::connect`
#4 [mir_validated] processing `MyStream::connect`
#5 [mir_borrowck] borrow-checking `MyStream::connect`
#6 [type_of] processing `MyStream::connect::{{opaque}}#0`
#7 [check_mod_item_types] checking item types in top-level module
#8 [analysis] running analysis passes on this crate
end of query stack
error: internal compiler error: cat_expr Errd
--> src/lib.rs:12:32
|
12 | let stream: MyStream = socket.into_unix_stream().try_into()?;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: internal compiler error: cat_expr Errd
--> src/lib.rs:12:32
|
12 | let stream: MyStream = socket.into_unix_stream().try_into()?;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: internal compiler error: cat_expr Errd
--> src/lib.rs:12:68
|
12 | let stream: MyStream = socket.into_unix_stream().try_into()?;
| ^
thread 'rustc' panicked at 'no errors encountered even though `delay_span_bug` issued', src/librustc_errors/lib.rs:366:17
stack backtrace:
0: 0x7f2c1885cab4 - backtrace::backtrace::libunwind::trace::h812748238d609e46
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
1: 0x7f2c1885cab4 - backtrace::backtrace::trace_unsynchronized::h7c97e818aebf09c8
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
2: 0x7f2c1885cab4 - std::sys_common::backtrace::_print_fmt::h60d914263b0ccd71
at src/libstd/sys_common/backtrace.rs:78
3: 0x7f2c1885cab4 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf78227137afc7565
at src/libstd/sys_common/backtrace.rs:59
4: 0x7f2c1889abac - core::fmt::write::h543cdf60775f89bf
at src/libcore/fmt/mod.rs:1069
5: 0x7f2c1884e4d3 - std::io::Write::write_fmt::h0c7f3ce24c679426
at src/libstd/io/mod.rs:1504
6: 0x7f2c18861ab5 - std::sys_common::backtrace::_print::h80e55e24be231368
at src/libstd/sys_common/backtrace.rs:62
7: 0x7f2c18861ab5 - std::sys_common::backtrace::print::h3b197b9c1261c865
at src/libstd/sys_common/backtrace.rs:49
8: 0x7f2c18861ab5 - std::panicking::default_hook::{{closure}}::ha6c807149ce20f8f
at src/libstd/panicking.rs:198
9: 0x7f2c188617f2 - std::panicking::default_hook::he49a9c12e358cc45
at src/libstd/panicking.rs:218
10: 0x7f2c18dfe923 - rustc_driver::report_ice::h303988fb5b9997d4
11: 0x7f2c18862235 - std::panicking::rust_panic_with_hook::h93f74f5ef2f71f31
at src/libstd/panicking.rs:515
12: 0x7f2c1b5e825e - std::panicking::begin_panic::hc68bee93462232be
13: 0x7f2c1b621a12 - <rustc_errors::HandlerInner as core::ops::drop::Drop>::drop::h1f879c4351fba67a
14: 0x7f2c18f43166 - core::ptr::drop_in_place::h4d80a69fc5b8b26d
15: 0x7f2c18f4b536 - <alloc::rc::Rc<T> as core::ops::drop::Drop>::drop::h11773fcd49f47beb
16: 0x7f2c18f6f01d - core::ptr::drop_in_place::ha136f12949be28b0
17: 0x7f2c18f55a45 - rustc_interface::interface::run_compiler_in_existing_thread_pool::h1fe14dfeda5e7ff8
18: 0x7f2c18e0852d - scoped_tls::ScopedKey<T>::set::h7ef5c845735c44d5
19: 0x7f2c18e053d4 - rustc_ast::attr::with_globals::h80403999168944fb
20: 0x7f2c18e10a92 - std::sys_common::backtrace::__rust_begin_short_backtrace::h65e906f83ddca1d2
21: 0x7f2c18f5840e - core::ops::function::FnOnce::call_once{{vtable.shim}}::h4a7aeea8942a4e2c
22: 0x7f2c188722aa - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::hf207c3654ee300a0
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/liballoc/boxed.rs:1008
23: 0x7f2c188722aa - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h66e0c6190e34816b
at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/liballoc/boxed.rs:1008
24: 0x7f2c188722aa - std::sys::unix::thread::Thread::new::thread_start::h30687bc0b1c3cd55
at src/libstd/sys/unix/thread.rs:87
25: 0x7f2c187b2609 - start_thread
at /build/glibc-YYA7BZ/glibc-2.31/nptl/pthread_create.c:477
26: 0x7f2c186c6103 - __clone
27: 0x0 - <unknown>
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.44.1 (c7087fe00 2020-06-17) running on x86_64-unknown-linux-gnu
note: compiler flags: --crate-type lib
query stack during panic:
end of query stack
thread panicked while panicking. aborting.
Illegal instruction (core dumped)
Metadata
Metadata
Assignees
Labels
Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.htmlArea: Async & AwaitAsync-await issues that have been triaged during a working group meeting.Category: This is a bug.Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️High priorityRelevant to the compiler team, which will review and decide on the PR/issue.ICE tracked in rust-lang/glacier.
Type
Projects
Status
Done