Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Ryman opened this issue Jun 12, 2014 · 1 comment · Fixed by #17721
Closed

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

Ryman opened this issue Jun 12, 2014 · 1 comment · Fixed by #17721
Labels
E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@Ryman
Copy link
Contributor

Ryman commented Jun 12, 2014

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

@ghost
Copy link

ghost commented Oct 1, 2014

No ICE any more but E-needstest.

@alexcrichton alexcrichton added the E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. label Oct 1, 2014
bors added a commit to rust-lang-ci/rust that referenced this issue Jul 17, 2023
ci(metrics): Run measurement functions in parallel

Resolves rust-lang#14853
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants