Skip to content

ICE: Mismatched trait bounds for static trait methods leads to ICE rather than error #14853

Closed
@Ryman

Description

@Ryman
use std::fmt::Show;

trait Something {
    fn yay<T: Show>(_: Option<Self>, thing: &[T]) -> String {
        format!("{}", thing)
    }
}

struct X { data: u32 }

impl Something for X {
    // Changing `T: Str` into `T: Show` compiles fine
    fn yay<T: Str>(_:Option<X>, thing: &[T]) -> String {
        format!("{:s}", thing[0])
    }
}

fn main() {
    let arr = &["one", "two", "three"];
    println!("{}", Something::yay(None::<X>, arr))
}
error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. 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' failed at 'could not find method while translating', <...>/rust/rust/src/libstd/option.rs:167
stack backtrace:
   1:        0x10d74b8c5 - rt::backtrace::imp::write::h6bffa7f6a68925ccmDx::v0.11.0.pre
   2:        0x10d6d1159 - rt::unwind::begin_unwind_inner::h33034d2882c92e8codx::v0.11.0.pre
   3:        0x10a7c883d - rt::unwind::begin_unwind::h8806507132401694468::v0.11.0.pre
   4:        0x10a90d987 - middle::trans::meth::method_with_name::h0bbbc11eed115623jtv::v0.11.0.pre
   5:        0x10a8463bb - middle::trans::meth::trans_method_callee::hefc4ff4abe1ace40fev::v0.11.0.pre
   6:        0x10a845d15 - middle::trans::callee::trans_method_call::closure.60059
   7:        0x10a8440dc - middle::trans::callee::trans_call_inner::hb55cdf9f2d3a6391PId::v0.11.0.pre
   8:        0x10a8459dd - middle::trans::callee::trans_method_call::h3e9e43e36ee2e66a5Dd::v0.11.0.pre
   9:        0x10a84e797 - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  10:        0x10a84d488 - middle::trans::expr::trans_unadjusted::hfd27b1de4c9d553ePHe::v0.11.0.pre
  11:        0x10a81432f - middle::trans::expr::trans::hcaec28254c68ec76Foe::v0.11.0.pre
  12:        0x10a847768 - middle::trans::callee::trans_args::h40a54dd74be2c0089Ud::v0.11.0.pre
  13:        0x10a844877 - middle::trans::callee::trans_call_inner::hb55cdf9f2d3a6391PId::v0.11.0.pre
  14:        0x10a8459dd - middle::trans::callee::trans_method_call::h3e9e43e36ee2e66a5Dd::v0.11.0.pre
  15:        0x10a84e797 - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  16:        0x10a8122fe - middle::trans::expr::trans_into::h0d638b240f271997Jke::v0.11.0.pre
  17:        0x10a8126dc - middle::trans::controlflow::trans_block::h6d9948b8510c72ce45a::v0.11.0.pre
  18:        0x10a8c94e0 - middle::trans::base::trans_closure::he57d425510e4d010M7o::v0.11.0.pre
  19:        0x10a7dcbcb - middle::trans::base::trans_fn::h8545e03220387efa9fp::v0.11.0.pre
  20:        0x10a7e0c6b - middle::trans::monomorphize::monomorphic_fn::h261842f1edfa9695Tka::v0.11.0.pre
  21:        0x10a83afb8 - middle::trans::callee::trans_fn_ref_with_vtables::h1bce787075ed3cd12jd::v0.11.0.pre
  22:        0x10a846674 - middle::trans::meth::trans_method_callee::hefc4ff4abe1ace40fev::v0.11.0.pre
  23:        0x10a845d15 - middle::trans::callee::trans_method_call::closure.60059
  24:        0x10a8440dc - middle::trans::callee::trans_call_inner::hb55cdf9f2d3a6391PId::v0.11.0.pre
  25:        0x10a8459dd - middle::trans::callee::trans_method_call::h3e9e43e36ee2e66a5Dd::v0.11.0.pre
  26:        0x10a84e797 - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  27:        0x10a8122fe - middle::trans::expr::trans_into::h0d638b240f271997Jke::v0.11.0.pre
  28:        0x10a8126dc - middle::trans::controlflow::trans_block::h6d9948b8510c72ce45a::v0.11.0.pre
  29:        0x10a8c94e0 - middle::trans::base::trans_closure::he57d425510e4d010M7o::v0.11.0.pre
  30:        0x10a7dcbcb - middle::trans::base::trans_fn::h8545e03220387efa9fp::v0.11.0.pre
  31:        0x10a7e09f0 - middle::trans::monomorphize::monomorphic_fn::h261842f1edfa9695Tka::v0.11.0.pre
  32:        0x10a83afb8 - middle::trans::callee::trans_fn_ref_with_vtables::h1bce787075ed3cd12jd::v0.11.0.pre
  33:        0x10a836129 - middle::trans::callee::trans_fn_ref::h2444d91fa308c57cadd::v0.11.0.pre
  34:        0x10a857c84 - middle::trans::expr::trans_def::h1370c4852146f82fS1e::v0.11.0.pre
  35:        0x10a84da00 - middle::trans::expr::trans_unadjusted::hfd27b1de4c9d553ePHe::v0.11.0.pre
  36:        0x10a81432f - middle::trans::expr::trans::hcaec28254c68ec76Foe::v0.11.0.pre
  37:        0x10a847768 - middle::trans::callee::trans_args::h40a54dd74be2c0089Ud::v0.11.0.pre
  38:        0x10a844877 - middle::trans::callee::trans_call_inner::hb55cdf9f2d3a6391PId::v0.11.0.pre
  39:        0x10a843fde - middle::trans::callee::trans_call::h37abd2a7aca4dee6XCd::v0.11.0.pre
  40:        0x10a84e730 - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  41:        0x10a8122fe - middle::trans::expr::trans_into::h0d638b240f271997Jke::v0.11.0.pre
  42:        0x10a906ac5 - middle::trans::tvec::write_content::ha2f5fb559bde7c23yHu::v0.11.0.pre
  43:        0x10a86518c - middle::trans::tvec::trans_slice_vstore::h1522f7df8e9088252lu::v0.11.0.pre
  44:        0x10a84e3c7 - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  45:        0x10a8122fe - middle::trans::expr::trans_into::h0d638b240f271997Jke::v0.11.0.pre
  46:        0x10a8fe4ff - middle::trans::_match::store_local::closure.64245
  47:        0x10a8fe2c3 - middle::trans::_match::mk_binding_alloca::h104032463593563318::v0.11.0.pre
  48:        0x10a8c3903 - middle::trans::_match::store_local::hb6d216d9a98a1573Mht::v0.11.0.pre
  49:        0x10a8116ca - middle::trans::base::init_local::he37da045a448e76dpCo::v0.11.0.pre
  50:        0x10a810b9e - middle::trans::controlflow::trans_stmt::hc7faa3acb6b8c01cX0a::v0.11.0.pre
  51:        0x10a812611 - middle::trans::controlflow::trans_block::h6d9948b8510c72ce45a::v0.11.0.pre
  52:        0x10a84ed0b - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  53:        0x10a8122fe - middle::trans::expr::trans_into::h0d638b240f271997Jke::v0.11.0.pre
  54:        0x10a8638a3 - middle::trans::_match::trans_match::h367a840f9de4b613p8s::v0.11.0.pre
  55:        0x10a84eccd - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  56:        0x10a8122fe - middle::trans::expr::trans_into::h0d638b240f271997Jke::v0.11.0.pre
  57:        0x10a8126dc - middle::trans::controlflow::trans_block::h6d9948b8510c72ce45a::v0.11.0.pre
  58:        0x10a8c94e0 - middle::trans::base::trans_closure::he57d425510e4d010M7o::v0.11.0.pre
  59:        0x10a7dcbcb - middle::trans::base::trans_fn::h8545e03220387efa9fp::v0.11.0.pre
  60:        0x10a7e0c6b - middle::trans::monomorphize::monomorphic_fn::h261842f1edfa9695Tka::v0.11.0.pre
  61:        0x10a83afb8 - middle::trans::callee::trans_fn_ref_with_vtables::h1bce787075ed3cd12jd::v0.11.0.pre
  62:        0x10a8375ed - middle::trans::meth::trans_static_method_callee::h6a97ca71ff84b94aejv::v0.11.0.pre
  63:        0x10a84550a - middle::trans::callee::trans_call::closure.60047
  64:        0x10a8440dc - middle::trans::callee::trans_call_inner::hb55cdf9f2d3a6391PId::v0.11.0.pre
  65:        0x10a843fde - middle::trans::callee::trans_call::h37abd2a7aca4dee6XCd::v0.11.0.pre
  66:        0x10a84e730 - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  67:        0x10a84d488 - middle::trans::expr::trans_unadjusted::hfd27b1de4c9d553ePHe::v0.11.0.pre
  68:        0x10a81432f - middle::trans::expr::trans::hcaec28254c68ec76Foe::v0.11.0.pre
  69:        0x10a811efe - middle::trans::expr::trans_to_lvalue::hda7da15885e2de97SGe::v0.11.0.pre
  70:        0x10a85b562 - middle::trans::expr::trans_addr_of::h0a767b6d5efb4628K0f::v0.11.0.pre
  71:        0x10a84da27 - middle::trans::expr::trans_unadjusted::hfd27b1de4c9d553ePHe::v0.11.0.pre
  72:        0x10a81231e - middle::trans::expr::trans_into::h0d638b240f271997Jke::v0.11.0.pre
  73:        0x10a864554 - middle::trans::expr::trans_adt::h5a3327d761e79cd4wKf::v0.11.0.pre
  74:        0x10a84f519 - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  75:        0x10a84d488 - middle::trans::expr::trans_unadjusted::hfd27b1de4c9d553ePHe::v0.11.0.pre
  76:        0x10a81432f - middle::trans::expr::trans::hcaec28254c68ec76Foe::v0.11.0.pre
  77:        0x10a811efe - middle::trans::expr::trans_to_lvalue::hda7da15885e2de97SGe::v0.11.0.pre
  78:        0x10a8627a7 - middle::trans::_match::trans_match::h367a840f9de4b613p8s::v0.11.0.pre
  79:        0x10a84eccd - middle::trans::expr::trans_rvalue_dps_unadjusted::hfb0b700a82d3d6a4Baf::v0.11.0.pre
  80:        0x10a8122fe - middle::trans::expr::trans_into::h0d638b240f271997Jke::v0.11.0.pre
  81:        0x10a8126dc - middle::trans::controlflow::trans_block::h6d9948b8510c72ce45a::v0.11.0.pre
  82:        0x10a8c94e0 - middle::trans::base::trans_closure::he57d425510e4d010M7o::v0.11.0.pre
  83:        0x10a7dcbcb - middle::trans::base::trans_fn::h8545e03220387efa9fp::v0.11.0.pre
  84:        0x10a7d6c6d - middle::trans::base::trans_item::h6625316285fff06fXwp::v0.11.0.pre
  85:        0x10a8d8401 - middle::trans::base::trans_crate::h9804a2506ca74711Ypq::v0.11.0.pre
  86:        0x10b04161d - driver::driver::phase_4_translate_to_llvm::heff6157cc2c67c58ZKm::v0.11.0.pre
  87:        0x10b0389aa - driver::driver::compile_input::h55d49e35c904a84fAsm::v0.11.0.pre
  88:        0x10b0fc00c - driver::run_compiler::h7b8c3e9894537cc1j7o::v0.11.0.pre
  89:        0x10b0f95b7 - driver::main_args::closure.94809
  90:        0x10b10da77 - driver::monitor::closure.95880
  91:        0x10b10908b - task::TaskBuilder::try::closure.95643
  92:        0x10a777d3c - task::spawn_opts::closure.7930
  93:        0x10d745d48 - rt::task::Task::run::closure.25290
  94:        0x10d7b9d8c - rust_try
  95:        0x10d745cb1 - rt::task::Task::run::h805e582abbe1f9acy2u::v0.11.0.pre
  96:        0x10a777b9f - task::spawn_opts::closure.7902
  97:        0x10d749b39 - rt::thread::thread_start::hc64e98bc84a7a5a86Lv::v0.11.0.pre
  98:     0x7fff91ed9899 - _pthread_body
  99:     0x7fff91ed972a - _pthread_struct_init

rustc 0.11.0-pre (aa09561 2014-06-04 15:26:50 -0700)
host: x86_64-apple-darwin

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