rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
98.44k stars 12.73k forks source link

Bad MIR when casting a reference to dyn* #102430

Closed eholk closed 1 year ago

eholk commented 2 years ago

Test case (playground:

#![feature(dyn_star)]
#![allow(incomplete_features)]

trait AddOne {
    fn add1(&mut self) -> usize;
}

impl AddOne for usize {
    fn add1(&mut self) -> usize {
        *self += 1;
        *self
    }
}

impl AddOne for &mut usize {
    fn add1(&mut self) -> usize {
        (*self).add1()
    }
}

fn add_one(mut i: dyn* AddOne) -> usize {
    i.add1()
}

fn main() {
    let mut x = 42;
    let y = &mut x as dyn* AddOne;

    println!("{}", add_one(y));
}

This gives the following error message:

   Compiling playground v0.0.1 (/playground)
thread 'rustc' panicked at 'assertion failed: bx.cx().is_backend_immediate(cast)', /rustc/470e518c4b43265020c882bcf3c86632f5494910/compiler/rustc_codegen_ssa/src/mir/rvalue.rs:298:25
stack backtrace:
   0:     0x7fb5936cf170 - std::backtrace_rs::backtrace::libunwind::trace::h6f0c1aea3f6a8f92
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   1:     0x7fb5936cf170 - std::backtrace_rs::backtrace::trace_unsynchronized::h246e054cc0c6474e
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fb5936cf170 - std::sys_common::backtrace::_print_fmt::he958bf8edb06c4b4
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7fb5936cf170 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h5c96f6e60024ea09
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7fb593729e2e - core::fmt::write::h9220227ac4bd60db
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/core/src/fmt/mod.rs:1209:17
   5:     0x7fb5936bfcb5 - std::io::Write::write_fmt::h0baa4b904438720a
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/io/mod.rs:1679:15
   6:     0x7fb5936d1ef3 - std::sys_common::backtrace::_print::h4e50715668854aea
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7fb5936d1ef3 - std::sys_common::backtrace::print::hc3d0dd731686e213
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7fb5936d1ef3 - std::panicking::default_hook::{{closure}}::hc630ddd34d05043a
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/panicking.rs:267:22
   9:     0x7fb5936d1bdf - std::panicking::default_hook::hb98d54da30ecd030
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/panicking.rs:286:9
  10:     0x7fb595f07a41 - rustc_driver[f0efc00e041104a1]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7fb5936d272b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h8dbd399d0f831315
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/alloc/src/boxed.rs:1952:9
  12:     0x7fb5936d272b - std::panicking::rust_panic_with_hook::h9d36e1ca30b3ec7a
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/panicking.rs:673:13
  13:     0x7fb5936d2541 - std::panicking::begin_panic_handler::{{closure}}::h52cfa7ac8afcd930
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/panicking.rs:558:13
  14:     0x7fb5936cf61c - std::sys_common::backtrace::__rust_end_short_backtrace::h84b44348d4400013
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys_common/backtrace.rs:138:18
  15:     0x7fb5936d22a2 - rust_begin_unwind
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/panicking.rs:556:5
  16:     0x7fb593726a03 - core::panicking::panic_fmt::h7c2a24ac7a8b212a
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/core/src/panicking.rs:142:14
  17:     0x7fb59372684d - core::panicking::panic::h57553d5470b7e561
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/core/src/panicking.rs:48:5
  18:     0x7fb594e5f464 - <rustc_codegen_ssa[c092e4c426cdb651]::mir::FunctionCx<rustc_codegen_llvm[6942bde5879ea22d]::builder::Builder>>::codegen_block
  19:     0x7fb594e4dfb6 - rustc_codegen_ssa[c092e4c426cdb651]::mir::codegen_mir::<rustc_codegen_llvm[6942bde5879ea22d]::builder::Builder>
  20:     0x7fb5952ddcc4 - rustc_codegen_llvm[6942bde5879ea22d]::base::compile_codegen_unit::module_codegen
  21:     0x7fb595c0df07 - <rustc_query_system[543b4fc37dde943d]::dep_graph::graph::DepGraph<rustc_middle[f8105f7dfe6ff4e0]::dep_graph::dep_node::DepKind>>::with_task::<rustc_middle[f8105f7dfe6ff4e0]::ty::context::TyCtxt, rustc_span[4f1efeb85c089ac8]::symbol::Symbol, rustc_codegen_ssa[c092e4c426cdb651]::ModuleCodegen<rustc_codegen_llvm[6942bde5879ea22d]::ModuleLlvm>>
  22:     0x7fb595c0dd09 - rustc_codegen_llvm[6942bde5879ea22d]::base::compile_codegen_unit
  23:     0x7fb5959f41bd - rustc_codegen_ssa[c092e4c426cdb651]::base::codegen_crate::<rustc_codegen_llvm[6942bde5879ea22d]::LlvmCodegenBackend>
  24:     0x7fb5959f39bd - <rustc_codegen_llvm[6942bde5879ea22d]::LlvmCodegenBackend as rustc_codegen_ssa[c092e4c426cdb651]::traits::backend::CodegenBackend>::codegen_crate
  25:     0x7fb594d1018c - <rustc_session[ffd18f1f609c177d]::session::Session>::time::<alloc[9b15bfb767e51fba]::boxed::Box<dyn core[7fef4cab63355933]::any::Any>, rustc_interface[f8a55cb2f21fea8d]::passes::start_codegen::{closure#0}>
  26:     0x7fb594d0fb6e - <rustc_interface[f8a55cb2f21fea8d]::passes::QueryContext>::enter::<<rustc_interface[f8a55cb2f21fea8d]::queries::Queries>::ongoing_codegen::{closure#0}::{closure#0}, core[7fef4cab63355933]::result::Result<alloc[9b15bfb767e51fba]::boxed::Box<dyn core[7fef4cab63355933]::any::Any>, rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>
  27:     0x7fb594ccf7a3 - <rustc_interface[f8a55cb2f21fea8d]::queries::Queries>::ongoing_codegen
  28:     0x7fb594ccda2a - rustc_interface[f8a55cb2f21fea8d]::interface::create_compiler_and_run::<core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>, rustc_driver[f0efc00e041104a1]::run_compiler::{closure#1}>
  29:     0x7fb594ccc331 - <scoped_tls[998c43719cb84b4a]::ScopedKey<rustc_span[4f1efeb85c089ac8]::SessionGlobals>>::set::<rustc_interface[f8a55cb2f21fea8d]::interface::run_compiler<core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>, rustc_driver[f0efc00e041104a1]::run_compiler::{closure#1}>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>
  30:     0x7fb594ccc01f - std[ede4ecd9ed8acb00]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[f8a55cb2f21fea8d]::util::run_in_thread_pool_with_globals<rustc_interface[f8a55cb2f21fea8d]::interface::run_compiler<core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>, rustc_driver[f0efc00e041104a1]::run_compiler::{closure#1}>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>
  31:     0x7fb595d687b0 - <<std[ede4ecd9ed8acb00]::thread::Builder>::spawn_unchecked_<rustc_interface[f8a55cb2f21fea8d]::util::run_in_thread_pool_with_globals<rustc_interface[f8a55cb2f21fea8d]::interface::run_compiler<core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>, rustc_driver[f0efc00e041104a1]::run_compiler::{closure#1}>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>::{closure#1} as core[7fef4cab63355933]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  32:     0x7fb5936dc393 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h073fd3d24d46d103
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/alloc/src/boxed.rs:1938:9
  33:     0x7fb5936dc393 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d6d89ec5f806eed
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/alloc/src/boxed.rs:1938:9
  34:     0x7fb5936dc393 - std::sys::unix::thread::Thread::new::thread_start::hd7471e2b028e93f2
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys/unix/thread.rs:108:17
  35:     0x7fb5935af609 - start_thread
  36:     0x7fb5934d2133 - clone
  37:                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/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.66.0-nightly (470e518c4 2022-09-27) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type bin -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
end of query stack
error: internal compiler error: no errors encountered even though `delay_span_bug` issued

error: internal compiler error: broken MIR in DefId(0:10 ~ playground[62e1]::main) (move _4 as dyn* AddOne (Pointer(ArrayToPointer))): ArrayToPointer cast from unexpected type &mut usize
  --> src/main.rs:27:13
   |
27 |     let y = &mut x as dyn* AddOne;
   |             ^^^^^^^^^^^^^^^^^^^^^
   |
   = note: delayed at compiler/rustc_borrowck/src/type_check/mod.rs:2125:29

thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1529:13
stack backtrace:
   0:     0x7fb5936cf170 - std::backtrace_rs::backtrace::libunwind::trace::h6f0c1aea3f6a8f92
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   1:     0x7fb5936cf170 - std::backtrace_rs::backtrace::trace_unsynchronized::h246e054cc0c6474e
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fb5936cf170 - std::sys_common::backtrace::_print_fmt::he958bf8edb06c4b4
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7fb5936cf170 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h5c96f6e60024ea09
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7fb593729e2e - core::fmt::write::h9220227ac4bd60db
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/core/src/fmt/mod.rs:1209:17
   5:     0x7fb5936bfcb5 - std::io::Write::write_fmt::h0baa4b904438720a
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/io/mod.rs:1679:15
   6:     0x7fb5936d1ef3 - std::sys_common::backtrace::_print::h4e50715668854aea
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7fb5936d1ef3 - std::sys_common::backtrace::print::hc3d0dd731686e213
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7fb5936d1ef3 - std::panicking::default_hook::{{closure}}::hc630ddd34d05043a
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/panicking.rs:267:22
   9:     0x7fb5936d1bdf - std::panicking::default_hook::hb98d54da30ecd030
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/panicking.rs:286:9
  10:     0x7fb595f07a41 - rustc_driver[f0efc00e041104a1]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7fb5936d272b - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h8dbd399d0f831315
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/alloc/src/boxed.rs:1952:9
  12:     0x7fb5936d272b - std::panicking::rust_panic_with_hook::h9d36e1ca30b3ec7a
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/panicking.rs:673:13
  13:     0x7fb597029c41 - std[ede4ecd9ed8acb00]::panicking::begin_panic::<rustc_errors[cbe001ae92aecd94]::ExplicitBug>::{closure#0}
  14:     0x7fb597029616 - std[ede4ecd9ed8acb00]::sys_common::backtrace::__rust_end_short_backtrace::<std[ede4ecd9ed8acb00]::panicking::begin_panic<rustc_errors[cbe001ae92aecd94]::ExplicitBug>::{closure#0}, !>
  15:     0x7fb5970295e6 - std[ede4ecd9ed8acb00]::panicking::begin_panic::<rustc_errors[cbe001ae92aecd94]::ExplicitBug>
  16:     0x7fb5970275a6 - std[ede4ecd9ed8acb00]::panic::panic_any::<rustc_errors[cbe001ae92aecd94]::ExplicitBug>
  17:     0x7fb595a52fd8 - <rustc_errors[cbe001ae92aecd94]::HandlerInner as core[7fef4cab63355933]::ops::drop::Drop>::drop
  18:     0x7fb594d15db8 - core[7fef4cab63355933]::ptr::drop_in_place::<rustc_session[ffd18f1f609c177d]::parse::ParseSess>
  19:     0x7fb594cd3718 - <alloc[9b15bfb767e51fba]::rc::Rc<rustc_session[ffd18f1f609c177d]::session::Session> as core[7fef4cab63355933]::ops::drop::Drop>::drop
  20:     0x7fb594cd079d - core[7fef4cab63355933]::ptr::drop_in_place::<rustc_interface[f8a55cb2f21fea8d]::interface::Compiler>
  21:     0x7fb594cce841 - rustc_interface[f8a55cb2f21fea8d]::interface::create_compiler_and_run::<core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>, rustc_driver[f0efc00e041104a1]::run_compiler::{closure#1}>
  22:     0x7fb594ccc331 - <scoped_tls[998c43719cb84b4a]::ScopedKey<rustc_span[4f1efeb85c089ac8]::SessionGlobals>>::set::<rustc_interface[f8a55cb2f21fea8d]::interface::run_compiler<core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>, rustc_driver[f0efc00e041104a1]::run_compiler::{closure#1}>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>
  23:     0x7fb594ccc01f - std[ede4ecd9ed8acb00]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[f8a55cb2f21fea8d]::util::run_in_thread_pool_with_globals<rustc_interface[f8a55cb2f21fea8d]::interface::run_compiler<core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>, rustc_driver[f0efc00e041104a1]::run_compiler::{closure#1}>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>
  24:     0x7fb595d687b0 - <<std[ede4ecd9ed8acb00]::thread::Builder>::spawn_unchecked_<rustc_interface[f8a55cb2f21fea8d]::util::run_in_thread_pool_with_globals<rustc_interface[f8a55cb2f21fea8d]::interface::run_compiler<core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>, rustc_driver[f0efc00e041104a1]::run_compiler::{closure#1}>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>::{closure#0}, core[7fef4cab63355933]::result::Result<(), rustc_errors[cbe001ae92aecd94]::ErrorGuaranteed>>::{closure#1} as core[7fef4cab63355933]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  25:     0x7fb5936dc393 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h073fd3d24d46d103
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/alloc/src/boxed.rs:1938:9
  26:     0x7fb5936dc393 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d6d89ec5f806eed
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/alloc/src/boxed.rs:1938:9
  27:     0x7fb5936dc393 - std::sys::unix::thread::Thread::new::thread_start::hd7471e2b028e93f2
                               at /rustc/470e518c4b43265020c882bcf3c86632f5494910/library/std/src/sys/unix/thread.rs:108:17
  28:     0x7fb5935af609 - start_thread
  29:     0x7fb5934d2133 - clone
  30:                0x0 - <unknown>

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.66.0-nightly (470e518c4 2022-09-27) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type bin -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
end of query stack
thread panicked while panicking. aborting.
error: could not compile `playground`

Caused by:
  process didn't exit successfully: `rustc --crate-name playground --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2 -C metadata=933dd66f8166fec1 -C extra-filename=-933dd66f8166fec1 --out-dir /playground/target/debug/deps -L dependency=/playground/target/debug/deps --extern addr2line=/playground/target/debug/deps/libaddr2line-f7b4d4e29b3267b6.rlib --extern adler=/playground/target/debug/deps/libadler-a6755dfadabd895e.rlib --extern ahash=/playground/target/debug/deps/libahash-825e3cd464bdaf64.rlib --extern aho_corasick=/playground/target/debug/deps/libaho_corasick-e05c20d54f890d08.rlib --extern ansi_term=/playground/target/debug/deps/libansi_term-2159b79c7c03c33b.rlib --extern anyhow=/playground/target/debug/deps/libanyhow-8abc50ae9c6bf2c5.rlib --extern approx=/playground/target/debug/deps/libapprox-f8cd61c0f4561a16.rlib --extern arc_swap=/playground/target/debug/deps/libarc_swap-fb3889d9fd78c0cc.rlib --extern arrayvec=/playground/target/debug/deps/libarrayvec-3a1c12b84c4c35e6.rlib --extern async_recursion=/playground/target/debug/deps/libasync_recursion-cc714020a1801775.so --extern async_trait=/playground/target/debug/deps/libasync_trait-439102b22d0670f3.so --extern atomic=/playground/target/debug/deps/libatomic-29fd3d926750c024.rlib --extern atty=/playground/target/debug/deps/libatty-6a81a73b7b125fe8.rlib --extern autocfg=/playground/target/debug/deps/libautocfg-92b429196c196cd1.rlib --extern backtrace=/playground/target/debug/deps/libbacktrace-07f225be961879b5.rlib --extern base64=/playground/target/debug/deps/libbase64-cfc95277467b3864.rlib --extern bit_set=/playground/target/debug/deps/libbit_set-59180d9c020c4e30.rlib --extern bit_vec=/playground/target/debug/deps/libbit_vec-e0495be0df3dad6d.rlib --extern bit_field=/playground/target/debug/deps/libbit_field-162e58bc8aaf39fd.rlib --extern bitflags=/playground/target/debug/deps/libbitflags-de1f0b76046eea2a.rlib --extern block_buffer=/playground/target/debug/deps/libblock_buffer-8e5c81058cbc036e.rlib --extern bstr=/playground/target/debug/deps/libbstr-04d286fc8ab8acb3.rlib --extern bytemuck=/playground/target/debug/deps/libbytemuck-4ba972f7fe5d08ae.rlib --extern bytemuck_derive=/playground/target/debug/deps/libbytemuck_derive-7faea13f5d6df39d.so --extern byteorder=/playground/target/debug/deps/libbyteorder-3386849127ec7437.rlib --extern bytes_0_4_12=/playground/target/debug/deps/libbytes-9abdbd06a7823441.rlib --extern bytes=/playground/target/debug/deps/libbytes-716a7fa45043c08f.rlib --extern cc=/playground/target/debug/deps/libcc-54590ee4f75082e3.rlib --extern cfg_if=/playground/target/debug/deps/libcfg_if-5253e57569830399.rlib --extern chrono=/playground/target/debug/deps/libchrono-7fc59948973e01c6.rlib --extern clap=/playground/target/debug/deps/libclap-1220decc518a44ab.rlib --extern clap_derive=/playground/target/debug/deps/libclap_derive-dcafb6f2bd1958c7.so --extern clap_lex=/playground/target/debug/deps/libclap_lex-7a89db0172accea0.rlib --extern color_quant=/playground/target/debug/deps/libcolor_quant-aef1b2deff556d9b.rlib --extern cookie=/playground/target/debug/deps/libcookie-6091968361d392fe.rlib --extern cookie_store=/playground/target/debug/deps/libcookie_store-2f8120f319071579.rlib --extern cpufeatures=/playground/target/debug/deps/libcpufeatures-7eaa9d638ad497cc.rlib --extern crc32fast=/playground/target/debug/deps/libcrc32fast-0c0c315b6647141a.rlib --extern crossbeam=/playground/target/debug/deps/libcrossbeam-6c5cfc5ba7b47d8c.rlib --extern crossbeam_channel=/playground/target/debug/deps/libcrossbeam_channel-1fc646f8550838e7.rlib --extern crossbeam_deque=/playground/target/debug/deps/libcrossbeam_deque-d43a85f4820b2b7c.rlib --extern crossbeam_epoch=/playground/target/debug/deps/libcrossbeam_epoch-87cad39d228e8de2.rlib --extern crossbeam_queue=/playground/target/debug/deps/libcrossbeam_queue-ae0b5df97adfb215.rlib --extern crossbeam_utils=/playground/target/debug/deps/libcrossbeam_utils-7788520fdada8b0e.rlib --extern crypto_common=/playground/target/debug/deps/libcrypto_common-f4a9b3fd00e6ea40.rlib --extern csv=/playground/target/debug/deps/libcsv-d6af792fe2dbcc80.rlib --extern csv_core=/playground/target/debug/deps/libcsv_core-ec211a530f024414.rlib --extern data_encoding=/playground/target/debug/deps/libdata_encoding-dc27914ccac23bde.rlib --extern derivative=/playground/target/debug/deps/libderivative-cce7e91c42fe9964.so --extern digest=/playground/target/debug/deps/libdigest-e8c78290c2f32d94.rlib --extern either=/playground/target/debug/deps/libeither-c59fd8d863c925cf.rlib --extern encoding_rs=/playground/target/debug/deps/libencoding_rs-1b37bb924e80cd4e.rlib --extern env_logger=/playground/target/debug/deps/libenv_logger-5a518e9fb5dd7e7e.rlib --extern error_chain=/playground/target/debug/deps/liberror_chain-2f965a974c8320c8.rlib --extern exr=/playground/target/debug/deps/libexr-1452149d189a55c0.rlib --extern fallible_iterator=/playground/target/debug/deps/libfallible_iterator-7f4fc8c0ad37dc9d.rlib --extern fallible_streaming_iterator=/playground/target/debug/deps/libfallible_streaming_iterator-baab7654e5e34d04.rlib --extern fastrand=/playground/target/debug/deps/libfastrand-965b0d9c80775ec8.rlib --extern filetime=/playground/target/debug/deps/libfiletime-aba6db3386fdcf17.rlib --extern fixedbitset=/playground/target/debug/deps/libfixedbitset-5c1762520b77630c.rlib --extern flate2=/playground/target/debug/deps/libflate2-2f1dfe78012aeb10.rlib --extern flume=/playground/target/debug/deps/libflume-472e5c8ee82d5874.rlib --extern fnv=/playground/target/debug/deps/libfnv-0672b6da71ed834c.rlib --extern foreign_types=/playground/target/debug/deps/libforeign_types-e5d0ea207091f2ed.rlib --extern foreign_types_shared=/playground/target/debug/deps/libforeign_types_shared-e64cfaf7a202bcc7.rlib --extern form_urlencoded=/playground/target/debug/deps/libform_urlencoded-3844328579a70fe7.rlib --extern futf=/playground/target/debug/deps/libfutf-66f12e798eb4013d.rlib --extern futures_0_1_31=/playground/target/debug/deps/libfutures-559b4d2f77076e5b.rlib --extern futures=/playground/target/debug/deps/libfutures-54dbf2acf71853a8.rlib --extern futures_channel=/playground/target/debug/deps/libfutures_channel-5a543d63c31b728e.rlib --extern futures_core=/playground/target/debug/deps/libfutures_core-77e05f53be02523a.rlib --extern futures_executor=/playground/target/debug/deps/libfutures_executor-3f1a6e0404047dba.rlib --extern futures_io=/playground/target/debug/deps/libfutures_io-7514bf44ab6f03c6.rlib --extern futures_macro=/playground/target/debug/deps/libfutures_macro-b2b6d46b641bf716.so --extern futures_sink=/playground/target/debug/deps/libfutures_sink-86e59a6713e2ed94.rlib --extern futures_task=/playground/target/debug/deps/libfutures_task-457c727d38dc5940.rlib --extern futures_util=/playground/target/debug/deps/libfutures_util-fe7f99cc801f8363.rlib --extern generic_array=/playground/target/debug/deps/libgeneric_array-2987f7bc5ae53add.rlib --extern getrandom_0_1_16=/playground/target/debug/deps/libgetrandom-99ce16fdf40044af.rlib --extern getrandom=/playground/target/debug/deps/libgetrandom-a880b6a4409fa46c.rlib --extern gif=/playground/target/debug/deps/libgif-ed825f9632f6d5c4.rlib --extern gimli=/playground/target/debug/deps/libgimli-7ee2f9e9a98577f2.rlib --extern glob=/playground/target/debug/deps/libglob-3e188ae16859c506.rlib --extern h2=/playground/target/debug/deps/libh2-ca628d34074c98f6.rlib --extern half=/playground/target/debug/deps/libhalf-886abc4065fa3cfd.rlib --extern hashbrown=/playground/target/debug/deps/libhashbrown-57fafd4741fca288.rlib --extern hashlink=/playground/target/debug/deps/libhashlink-3ead8c1bb5803635.rlib --extern heck=/playground/target/debug/deps/libheck-424a3df7d01d544f.rlib --extern hmac=/playground/target/debug/deps/libhmac-04489c29f7a8d6b2.rlib --extern html5ever=/playground/target/debug/deps/libhtml5ever-47735223bfd294ff.rlib --extern http=/playground/target/debug/deps/libhttp-d834fed362f673be.rlib --extern http_body=/playground/target/debug/deps/libhttp_body-979ba46f4775d5c7.rlib --extern httparse=/playground/target/debug/deps/libhttparse-fc679c89115dbc46.rlib --extern httpdate=/playground/target/debug/deps/libhttpdate-7c7fbb165bed6800.rlib --extern humantime=/playground/target/debug/deps/libhumantime-bcb137373d337ec0.rlib --extern hyper=/playground/target/debug/deps/libhyper-e0f2899cefe04d6e.rlib --extern hyper_tls=/playground/target/debug/deps/libhyper_tls-d1566a116b77e285.rlib --extern iana_time_zone=/playground/target/debug/deps/libiana_time_zone-9337374abfdae12d.rlib --extern idna_0_2_3=/playground/target/debug/deps/libidna-ae923ee1330a862d.rlib --extern idna=/playground/target/debug/deps/libidna-0a12406716989b67.rlib --extern image=/playground/target/debug/deps/libimage-0ba7ab5f37b53373.rlib --extern indexmap=/playground/target/debug/deps/libindexmap-e1fcfce5913dfe48.rlib --extern iovec=/playground/target/debug/deps/libiovec-fef97101a9d3cd2b.rlib --extern ipnet=/playground/target/debug/deps/libipnet-7d81997bc8687860.rlib --extern itertools=/playground/target/debug/deps/libitertools-df3e3be40c4e43be.rlib --extern itoa_0_4_8=/playground/target/debug/deps/libitoa-bda856047fedd8f8.rlib --extern itoa=/playground/target/debug/deps/libitoa-22539b1eee9b69a2.rlib --extern jpeg_decoder=/playground/target/debug/deps/libjpeg_decoder-af66cdea3158f3fe.rlib --extern lazy_static=/playground/target/debug/deps/liblazy_static-56f839fc5f97cc86.rlib --extern lebe=/playground/target/debug/deps/liblebe-e9bdc56a94107b78.rlib --extern libc=/playground/target/debug/deps/liblibc-5b352ebbe14b2204.rlib --extern libm=/playground/target/debug/deps/liblibm-14409b78f2f5c4fb.rlib --extern libsqlite3_sys=/playground/target/debug/deps/liblibsqlite3_sys-38272f4ba988821f.rlib --extern linked_hash_map=/playground/target/debug/deps/liblinked_hash_map-11a9f42e529348d3.rlib --extern lock_api=/playground/target/debug/deps/liblock_api-870e0519890a6f5b.rlib --extern log=/playground/target/debug/deps/liblog-c2f830b0384f75a8.rlib --extern log_mdc=/playground/target/debug/deps/liblog_mdc-8c9acbf18051a6d8.rlib --extern log4rs=/playground/target/debug/deps/liblog4rs-f14a937f585b4488.rlib --extern mac=/playground/target/debug/deps/libmac-5ef46c35d1d60ae2.rlib --extern markup5ever=/playground/target/debug/deps/libmarkup5ever-b9d52a4f38469b41.rlib --extern markup5ever_rcdom=/playground/target/debug/deps/libmarkup5ever_rcdom-9dad59f9c6966416.rlib --extern matches=/playground/target/debug/deps/libmatches-94fda48e5e4c1005.rlib --extern matrixmultiply=/playground/target/debug/deps/libmatrixmultiply-9caa3f033427a130.rlib --extern md5=/playground/target/debug/deps/libmd5-26dfe91a8afacce5.rlib --extern memchr=/playground/target/debug/deps/libmemchr-eb1f3e221a710635.rlib --extern memmap=/playground/target/debug/deps/libmemmap-08786a7d006af4ba.rlib --extern memoffset=/playground/target/debug/deps/libmemoffset-4b04207de0ea1bb9.rlib --extern mime=/playground/target/debug/deps/libmime-be254843d53468a4.rlib --extern mime_guess=/playground/target/debug/deps/libmime_guess-571817c641636617.rlib --extern minimal_lexical=/playground/target/debug/deps/libminimal_lexical-cb9ae037445fc7f9.rlib --extern miniz_oxide_0_5_4=/playground/target/debug/deps/libminiz_oxide-5d12ae64a02c15bc.rlib --extern miniz_oxide=/playground/target/debug/deps/libminiz_oxide-e577356e646b213e.rlib --extern mio=/playground/target/debug/deps/libmio-f337f11978f5387b.rlib --extern nalgebra=/playground/target/debug/deps/libnalgebra-42cb50a8204dd6b5.rlib --extern nalgebra_macros=/playground/target/debug/deps/libnalgebra_macros-38473e1c2e33bf8c.so --extern nanorand=/playground/target/debug/deps/libnanorand-9170763a6329c0fb.rlib --extern native_tls=/playground/target/debug/deps/libnative_tls-91ec818b8d8e48d4.rlib --extern ndarray=/playground/target/debug/deps/libndarray-260d3d505de074ab.rlib --extern debug_unreachable=/playground/target/debug/deps/libdebug_unreachable-cc7ea61f7b47b527.rlib --extern nom=/playground/target/debug/deps/libnom-3604a20b53e5f26f.rlib --extern num=/playground/target/debug/deps/libnum-973a455cb5fbb59a.rlib --extern num_bigint=/playground/target/debug/deps/libnum_bigint-5b7a0fc5b9d3604e.rlib --extern num_complex=/playground/target/debug/deps/libnum_complex-f12077e2a219e357.rlib --extern num_integer=/playground/target/debug/deps/libnum_integer-cf0c1cb78a09e29b.rlib --extern num_iter=/playground/target/debug/deps/libnum_iter-a50493cc94d4d459.rlib --extern num_rational=/playground/target/debug/deps/libnum_rational-8f73d0661d80f4e0.rlib --extern num_traits=/playground/target/debug/deps/libnum_traits-2b42c54c1cb0a99c.rlib --extern num_cpus=/playground/target/debug/deps/libnum_cpus-57d58ddd9756b4ef.rlib --extern num_threads=/playground/target/debug/deps/libnum_threads-58f5879f94056fd1.rlib --extern object=/playground/target/debug/deps/libobject-6b80f4e7beb816b2.rlib --extern once_cell=/playground/target/debug/deps/libonce_cell-382c8a1f6af6d4e9.rlib --extern opaque_debug=/playground/target/debug/deps/libopaque_debug-ab9ddb0f69438328.rlib --extern openssl=/playground/target/debug/deps/libopenssl-f6967f093da749ec.rlib --extern openssl_macros=/playground/target/debug/deps/libopenssl_macros-a09b00a91bc6678b.so --extern openssl_probe=/playground/target/debug/deps/libopenssl_probe-94c713caf31880eb.rlib --extern openssl_sys=/playground/target/debug/deps/libopenssl_sys-bd0730e27320c224.rlib --extern ordered_float=/playground/target/debug/deps/libordered_float-6e9edbfea8aa1359.rlib --extern os_str_bytes=/playground/target/debug/deps/libos_str_bytes-79f185ddd89d0ef4.rlib --extern parking_lot=/playground/target/debug/deps/libparking_lot-8f2314ea28ff3de3.rlib --extern parking_lot_core=/playground/target/debug/deps/libparking_lot_core-69c2956b42ae7456.rlib --extern paste=/playground/target/debug/deps/libpaste-956a0fe23069f8ec.so --extern percent_encoding=/playground/target/debug/deps/libpercent_encoding-f34d1ed0718d03bf.rlib --extern pest=/playground/target/debug/deps/libpest-b897b36587a53d68.rlib --extern petgraph=/playground/target/debug/deps/libpetgraph-bd85196e7933b921.rlib --extern phf_0_8_0=/playground/target/debug/deps/libphf-fae1fb35b28a2359.rlib --extern phf=/playground/target/debug/deps/libphf-f8bdad2644609f38.rlib --extern phf_codegen=/playground/target/debug/deps/libphf_codegen-739b43d158fa2592.rlib --extern phf_generator_0_8_0=/playground/target/debug/deps/libphf_generator-eb87b4fc65e9a49c.rlib --extern phf_generator=/playground/target/debug/deps/libphf_generator-708705cc63a04847.rlib --extern phf_shared_0_8_0=/playground/target/debug/deps/libphf_shared-e02d9191b9baf9b9.rlib --extern phf_shared_0_10_0=/playground/target/debug/deps/libphf_shared-2b39fa7fe3e04733.rlib --extern phf_shared=/playground/target/debug/deps/libphf_shared-2e872e302dad9f42.rlib --extern pin_project=/playground/target/debug/deps/libpin_project-ed7efe6f375e2c78.rlib --extern pin_project_internal=/playground/target/debug/deps/libpin_project_internal-35bf558bc49dfa65.so --extern pin_project_lite=/playground/target/debug/deps/libpin_project_lite-f39210ec8aa22683.rlib --extern pin_utils=/playground/target/debug/deps/libpin_utils-b0bf3f0688139ba1.rlib --extern pkg_config=/playground/target/debug/deps/libpkg_config-e38945851503d517.rlib --extern png=/playground/target/debug/deps/libpng-1105e80039eb79bc.rlib --extern postgres=/playground/target/debug/deps/libpostgres-263c6d443d901783.rlib --extern postgres_protocol=/playground/target/debug/deps/libpostgres_protocol-1db355cf2b227b28.rlib --extern postgres_types=/playground/target/debug/deps/libpostgres_types-29892eb750ab97b7.rlib --extern ppv_lite86=/playground/target/debug/deps/libppv_lite86-8303bb68ceff8d83.rlib --extern precomputed_hash=/playground/target/debug/deps/libprecomputed_hash-1298520f088678de.rlib --extern proc_macro_error=/playground/target/debug/deps/libproc_macro_error-34a23edc39bc7bb0.rlib --extern proc_macro_error_attr=/playground/target/debug/deps/libproc_macro_error_attr-e0734aeb24cbff34.so --extern proc_macro_hack=/playground/target/debug/deps/libproc_macro_hack-92717a4671472a53.so --extern proc_macro2=/playground/target/debug/deps/libproc_macro2-53246511007eb985.rlib --extern psl_types=/playground/target/debug/deps/libpsl_types-5574d9ebd805e411.rlib --extern publicsuffix=/playground/target/debug/deps/libpublicsuffix-542b0b9ed406cbcd.rlib --extern quote=/playground/target/debug/deps/libquote-12598f68e6755c49.rlib --extern rand_0_7_3=/playground/target/debug/deps/librand-394774da12d7d1ec.rlib --extern rand=/playground/target/debug/deps/librand-5b9de2b665ffdcbe.rlib --extern rand_chacha_0_2_2=/playground/target/debug/deps/librand_chacha-de4a2d4dbe41705f.rlib --extern rand_chacha=/playground/target/debug/deps/librand_chacha-f08162f98e47646c.rlib --extern rand_core_0_5_1=/playground/target/debug/deps/librand_core-cf4df2764ac99069.rlib --extern rand_core=/playground/target/debug/deps/librand_core-3ce513323ea534f3.rlib --extern rand_distr=/playground/target/debug/deps/librand_distr-42b5e30ad0728dde.rlib --extern rand_pcg=/playground/target/debug/deps/librand_pcg-aac8c00f230a541c.rlib --extern rawpointer=/playground/target/debug/deps/librawpointer-63eb1bba55566369.rlib --extern rayon=/playground/target/debug/deps/librayon-527e5e7785f5e12f.rlib --extern rayon_core=/playground/target/debug/deps/librayon_core-925c7d21f8aec6c8.rlib --extern regex=/playground/target/debug/deps/libregex-914541ed93e104cd.rlib --extern regex_automata=/playground/target/debug/deps/libregex_automata-0aae4b45579b2f53.rlib --extern regex_syntax=/playground/target/debug/deps/libregex_syntax-76c8d77671269f0e.rlib --extern remove_dir_all=/playground/target/debug/deps/libremove_dir_all-6db8331ec1c4e72f.rlib --extern reqwest=/playground/target/debug/deps/libreqwest-d97a3cd84eba093e.rlib --extern ring=/playground/target/debug/deps/libring-0eb100e683ebae6b.rlib --extern rusqlite=/playground/target/debug/deps/librusqlite-0566aa069828918c.rlib --extern rustc_demangle=/playground/target/debug/deps/librustc_demangle-57fef8ec284fa01a.rlib --extern rustc_version=/playground/target/debug/deps/librustc_version-50fdea9deddb8df2.rlib --extern ryu=/playground/target/debug/deps/libryu-1e0bdbf6224e6045.rlib --extern safe_arch=/playground/target/debug/deps/libsafe_arch-4b9e9eae77998306.rlib --extern same_file=/playground/target/debug/deps/libsame_file-7a3f353776f43cdd.rlib --extern scoped_threadpool=/playground/target/debug/deps/libscoped_threadpool-14c0b9d1ec39c6a3.rlib --extern scopeguard=/playground/target/debug/deps/libscopeguard-866386222a022128.rlib --extern select=/playground/target/debug/deps/libselect-af1cc1495ab8a757.rlib --extern semver=/playground/target/debug/deps/libsemver-a550373c4e63fa09.rlib --extern semver_parser=/playground/target/debug/deps/libsemver_parser-dc970e5d5f19ab4b.rlib --extern serde=/playground/target/debug/deps/libserde-7f4ae80b6ed9e02e.rlib --extern serde_value=/playground/target/debug/deps/libserde_value-4b811a75c611b648.rlib --extern serde_derive=/playground/target/debug/deps/libserde_derive-640f952cd7c76875.so --extern serde_json=/playground/target/debug/deps/libserde_json-52036526f4cf8cb9.rlib --extern serde_urlencoded=/playground/target/debug/deps/libserde_urlencoded-13b9b38ac7b79417.rlib --extern serde_yaml=/playground/target/debug/deps/libserde_yaml-8648e04e2f6641b7.rlib --extern sha1_smol=/playground/target/debug/deps/libsha1_smol-d45ade8d066501af.rlib --extern sha2=/playground/target/debug/deps/libsha2-7a7e97ccbf984f20.rlib --extern signal_hook_registry=/playground/target/debug/deps/libsignal_hook_registry-1ebe482c6af03ac1.rlib --extern simba=/playground/target/debug/deps/libsimba-2341826662f5df82.rlib --extern siphasher=/playground/target/debug/deps/libsiphasher-84a2d6040737f0d8.rlib --extern slab=/playground/target/debug/deps/libslab-d2d640f6d1d8efdb.rlib --extern smallvec=/playground/target/debug/deps/libsmallvec-fa8917f2c89b12f3.rlib --extern smawk=/playground/target/debug/deps/libsmawk-6ed7cfb7fa793e0c.rlib --extern socket2=/playground/target/debug/deps/libsocket2-8647045a6d01ad7d.rlib --extern spin_0_5_2=/playground/target/debug/deps/libspin-4d2c7b2ce1e7d317.rlib --extern spin=/playground/target/debug/deps/libspin-c4db4e0c8c1ce7b3.rlib --extern string_cache=/playground/target/debug/deps/libstring_cache-36edd8173dd50130.rlib --extern string_cache_codegen=/playground/target/debug/deps/libstring_cache_codegen-e52db0562568f057.rlib --extern stringprep=/playground/target/debug/deps/libstringprep-5d7a8b7e5089f243.rlib --extern strsim=/playground/target/debug/deps/libstrsim-f8a23f77c73daaa0.rlib --extern subtle=/playground/target/debug/deps/libsubtle-7f658a021fbf8c09.rlib --extern syn=/playground/target/debug/deps/libsyn-33eedea71ffa5db4.rlib --extern tar=/playground/target/debug/deps/libtar-8bb0a56d8331b6bb.rlib --extern tempfile=/playground/target/debug/deps/libtempfile-373573fc29e23031.rlib --extern tendril=/playground/target/debug/deps/libtendril-21a5e8f6857fa604.rlib --extern termcolor=/playground/target/debug/deps/libtermcolor-be5ff8b1f3327763.rlib --extern terminal_size=/playground/target/debug/deps/libterminal_size-7c7c264112cc44cc.rlib --extern textwrap=/playground/target/debug/deps/libtextwrap-66058ef176b00ba0.rlib --extern thiserror=/playground/target/debug/deps/libthiserror-84a689cb65ab4c55.rlib --extern thiserror_impl=/playground/target/debug/deps/libthiserror_impl-733445e18af9dfae.so --extern thread_id=/playground/target/debug/deps/libthread_id-4c9c07548aadfaf0.rlib --extern thread_local=/playground/target/debug/deps/libthread_local-218322e9ad55284b.rlib --extern threadpool=/playground/target/debug/deps/libthreadpool-0aa74f74d9cfb31a.rlib --extern tiff=/playground/target/debug/deps/libtiff-4ae03ff61fea363f.rlib --extern time_0_1_44=/playground/target/debug/deps/libtime-1829a6b70089c235.rlib --extern time=/playground/target/debug/deps/libtime-7f0f59e390f7851c.rlib --extern time_macros=/playground/target/debug/deps/libtime_macros-7713ab67b11274b5.so --extern tinyvec=/playground/target/debug/deps/libtinyvec-f957348d01c7eb52.rlib --extern tinyvec_macros=/playground/target/debug/deps/libtinyvec_macros-8f36f65da14d810a.rlib --extern tokio=/playground/target/debug/deps/libtokio-a3a3bcc089ab2209.rlib --extern tokio_io=/playground/target/debug/deps/libtokio_io-d6526e68e1252ff1.rlib --extern tokio_macros=/playground/target/debug/deps/libtokio_macros-084d9ab710e9bb54.so --extern tokio_native_tls=/playground/target/debug/deps/libtokio_native_tls-ee86a47bb51d9ab3.rlib --extern tokio_postgres=/playground/target/debug/deps/libtokio_postgres-f25ea3c1a429c701.rlib --extern tokio_util=/playground/target/debug/deps/libtokio_util-0ee51c4b932b898d.rlib --extern toml=/playground/target/debug/deps/libtoml-c00fdaa94dcd7a05.rlib --extern tower_service=/playground/target/debug/deps/libtower_service-1acfe98d5d51417b.rlib --extern tracing=/playground/target/debug/deps/libtracing-d710696113690bc5.rlib --extern tracing_core=/playground/target/debug/deps/libtracing_core-621bbcd9b5dd8782.rlib --extern traitobject=/playground/target/debug/deps/libtraitobject-ac408b27f7e01f65.rlib --extern try_lock=/playground/target/debug/deps/libtry_lock-849bac2fba98b76b.rlib --extern typemap=/playground/target/debug/deps/libtypemap-0e4274a17e401313.rlib --extern typenum=/playground/target/debug/deps/libtypenum-37db19a11d859610.rlib --extern ucd_trie=/playground/target/debug/deps/libucd_trie-45445967628f920c.rlib --extern unicase=/playground/target/debug/deps/libunicase-a9d514baad760bab.rlib --extern unicode_bidi=/playground/target/debug/deps/libunicode_bidi-876cf42c358ea953.rlib --extern unicode_ident=/playground/target/debug/deps/libunicode_ident-1944e73a859ea33a.rlib --extern unicode_linebreak=/playground/target/debug/deps/libunicode_linebreak-afc5856a9f644e39.rlib --extern unicode_normalization=/playground/target/debug/deps/libunicode_normalization-d57646ab90d32677.rlib --extern unicode_segmentation=/playground/target/debug/deps/libunicode_segmentation-d0f3e302d0d3e8ca.rlib --extern unicode_width=/playground/target/debug/deps/libunicode_width-f7ec37c1de2029b9.rlib --extern unicode_xid=/playground/target/debug/deps/libunicode_xid-ada196e1f4b9ed77.rlib --extern unsafe_any=/playground/target/debug/deps/libunsafe_any-843b450d6d60d480.rlib --extern untrusted=/playground/target/debug/deps/libuntrusted-ecc06c34234b2716.rlib --extern url=/playground/target/debug/deps/liburl-a19262a4c42e722d.rlib --extern utf8=/playground/target/debug/deps/libutf8-8dc7fb5a31151cba.rlib --extern uuid=/playground/target/debug/deps/libuuid-b7d0a7faa4fae3f3.rlib --extern vcpkg=/playground/target/debug/deps/libvcpkg-ad2c320523f78ca3.rlib --extern vec_map=/playground/target/debug/deps/libvec_map-d4f07e9e0554b315.rlib --extern version_check=/playground/target/debug/deps/libversion_check-2dcd18eb3e92f0ef.rlib --extern walkdir=/playground/target/debug/deps/libwalkdir-5f8042bccd6ce967.rlib --extern want=/playground/target/debug/deps/libwant-c2768293d80f4d73.rlib --extern weezl=/playground/target/debug/deps/libweezl-e114694e0e5f32dc.rlib --extern wide=/playground/target/debug/deps/libwide-97bbc38c39ea9c7a.rlib --extern winapi=/playground/target/debug/deps/libwinapi-e9fab6f07c691756.rlib --extern xattr=/playground/target/debug/deps/libxattr-d6404b41c97480fc.rlib --extern xml5ever=/playground/target/debug/deps/libxml5ever-802882258322eb23.rlib --extern yaml_rust=/playground/target/debug/deps/libyaml_rust-630e276985e58fd0.rlib -L native=/playground/target/debug/build/libsqlite3-sys-09af0945074029c7/out -L native=/playground/target/debug/build/ring-bffb4b05604ef318/out` (signal: 6, SIGABRT: process abort signal)
Rageking8 commented 2 years ago

@rustbot label +C-bug +T-compiler +I-ICE +F-dyn_star +requires-nightly

DutchGhost commented 2 years ago

A smaller sample that ICE's with the same message:

#![feature(dyn_star)]
#![allow(incomplete_features)]

use std::fmt::Display;

fn bug() -> impl Display {
    // This reference seems to be evil.
    // `1 as dyn* Display` compiles fine!
    &1 as dyn* Display
}

fn main() {
    let _ = bug();
}
compiler-errors commented 2 years ago

The sample provided by DutchGhost compiles now, and the one that @eholk provided compiles with some slight modification (adding some '_ lifetimes so borrowck is happy):

#![feature(dyn_star)]
#![allow(incomplete_features)]

trait AddOne {
    fn add1(&mut self) -> usize;
}

impl AddOne for usize {
    fn add1(&mut self) -> usize {
        *self += 1;
        *self
    }
}

impl AddOne for &mut usize {
    fn add1(&mut self) -> usize {
        (*self).add1()
    }
}

fn add_one(mut i: dyn* AddOne + '_) -> usize {
    i.add1()
}

fn main() {
    let mut x = 42usize;
    let y = &mut x as (dyn* AddOne + '_);

    println!("{}", add_one(y));
}