Skip to content
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

ICE when using inlined function from another crate (UFCS related) #18501

Closed
japaric opened this issue Nov 1, 2014 · 9 comments · Fixed by #18523
Closed

ICE when using inlined function from another crate (UFCS related) #18501

japaric opened this issue Nov 1, 2014 · 9 comments · Fixed by #18523
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@japaric
Copy link
Member

japaric commented Nov 1, 2014

While trying to replace the "secret" functions (e.g. secret_show) used for format_args! with their UFCS versions (e.g. Show::fmt), I ran into the following ICE:

STR

// fmt.rs
struct Foo;

trait Show {
    fn fmt(&self);
}

impl Show for Foo {
    fn fmt(&self) {}
}

fn secret_show<T: Show>(_: &T) {}

fn bar<T>(f: extern "Rust" fn(&T), t: &T) {}

// ICE requirement: this has to be marked as inline
#[cfg(ice)]
#[inline]
pub fn baz() {
    bar(Show::fmt, &Foo);
}

#[cfg(not(ice))]
#[inline]
pub fn baz() {
    bar(secret_show, &Foo);
}
// main.rs
extern crate fmt;

fn main() {
    ::fmt::baz();
}

Output

$ rustc --cfg ice --crate-type=lib fmt.rs && rustc -L . main.rs
task 'rustc' panicked at 'assertion failed: did.krate != ast::LOCAL_CRATE', /var/tmp/paludis/build/dev-lang-rust-scm/work/rust-scm/src/librustc/middle/ty.rs:4476

I couldn't get a backtrace with RUST_BACKTRACE nor with gdb

Version

rustc 0.13.0-dev (82045ca36 2014-10-31 11:16:44 +0000)

cc @nick29581

@s-panferov
Copy link

I have similar ICE without inlining:

task 'rustc' panicked at 'assertion failed: `(left == right) && (right == left)` (left: `11`, right: `0`)', /Users/rustbuild/src/rust-buildbot/slave/nightly-mac/build/src/librustc/middle/ty.rs:2569

stack backtrace:
   1:        0x1053ac929 - rt::backtrace::imp::write::hfe87245730e40e498nq
   2:        0x1053afb6c - failure::on_fail::h250240fc1d2cc13cHEq
   3:        0x10560b395 - unwind::begin_unwind_inner::h629bbfd5c5c7ad4bSJd
   4:        0x10560b02f - unwind::begin_unwind_fmt::h26eed6b8c9614d01kHd
   5:        0x1024f5487 - middle::ty::type_contents::tc_ty::h4f516816f0265f20JIH
   6:        0x1024f473e - middle::ty::type_contents::tc_ty::h4f516816f0265f20JIH
   7:        0x1024f4c7f - middle::ty::type_contents::tc_ty::h4f516816f0265f20JIH
   8:        0x1022ada4f - middle::ty::type_contents::hcbff11a2d2064355XHH
   9:        0x102497834 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::consume_expr::h12011496269642837587
  10:        0x1024916af - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_expr::h6289422402745590059
  11:        0x102497889 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::consume_expr::h12011496269642837587
  12:        0x1024916af - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_expr::h6289422402745590059
  13:        0x102497889 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::consume_expr::h12011496269642837587
  14:        0x1024916af - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_expr::h6289422402745590059
  15:        0x102497ae3 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_local::h480003012053056122
  16:        0x102497a15 - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_block::h3271632192568197791
  17:        0x10249180e - middle::expr_use_visitor::ExprUseVisitor<'d, 't, TYPER>::walk_expr::h6289422402745590059
  18:        0x10249d180 - middle::trans::_match::trans_match_inner::closure.126642
  19:        0x10242094b - middle::trans::_match::trans_match::h812670c167266a78prk
  20:        0x1024100fd - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  21:        0x1023d5cf9 - middle::trans::expr::trans_into::h6b9cbd6894a0b3dd6M4
  22:        0x1023d604e - middle::trans::controlflow::trans_block::hb6579525f1a9c0e0M30
  23:        0x10247633a - middle::trans::base::trans_closure::h73d516938fc276e1Zah
  24:        0x1023c995f - middle::trans::base::trans_fn::ha1261357d96dceccpmh
  25:        0x1023cb592 - middle::trans::monomorphize::monomorphic_fn::h3beeee8af9d8e21acu0
  26:        0x1023fc857 - middle::trans::callee::trans_fn_ref_with_substs::he50eea051fdbe5a9sH3
  27:        0x1023e0aae - middle::trans::meth::trans_method_callee::ha6757eb79d64f196aAm
  28:        0x10240211b - middle::trans::callee::trans_method_call::closure.122853
  29:        0x1023dd895 - middle::trans::callee::trans_call_inner::hecb2b66e77f79065c33
  30:        0x102401f4d - middle::trans::callee::trans_method_call::hd6c33d4672989d74EY3
  31:        0x10240fb8f - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  32:        0x10240e911 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  33:        0x1023d7272 - middle::trans::expr::trans::h13b6cdaa2b8246660Q4
  34:        0x102419a98 - middle::trans::expr::trans_addr_of::hfcdfbe87e717518flZ6
  35:        0x10240f120 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  36:        0x1023d5d19 - middle::trans::expr::trans_into::h6b9cbd6894a0b3dd6M4
  37:        0x102422651 - middle::trans::expr::trans_adt::h9723c7611e8b803aFJ6
  38:        0x1024106ff - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  39:        0x10240e911 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  40:        0x1023d7272 - middle::trans::expr::trans::h13b6cdaa2b8246660Q4
  41:        0x1024206e2 - middle::trans::_match::trans_match::h812670c167266a78prk
  42:        0x1024100fd - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  43:        0x1023d5cf9 - middle::trans::expr::trans_into::h6b9cbd6894a0b3dd6M4
  44:        0x1023d604e - middle::trans::controlflow::trans_block::hb6579525f1a9c0e0M30
  45:        0x10247633a - middle::trans::base::trans_closure::h73d516938fc276e1Zah
  46:        0x1023c995f - middle::trans::base::trans_fn::ha1261357d96dceccpmh
  47:        0x1023cb592 - middle::trans::monomorphize::monomorphic_fn::h3beeee8af9d8e21acu0
  48:        0x1023fc857 - middle::trans::callee::trans_fn_ref_with_substs::he50eea051fdbe5a9sH3
  49:        0x1023e0aae - middle::trans::meth::trans_method_callee::ha6757eb79d64f196aAm
  50:        0x10240211b - middle::trans::callee::trans_method_call::closure.122853
  51:        0x1023dd895 - middle::trans::callee::trans_call_inner::hecb2b66e77f79065c33
  52:        0x102401f4d - middle::trans::callee::trans_method_call::hd6c33d4672989d74EY3
  53:        0x10240fb8f - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  54:        0x10240e911 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  55:        0x1023d7272 - middle::trans::expr::trans::h13b6cdaa2b8246660Q4
  56:        0x102419a98 - middle::trans::expr::trans_addr_of::hfcdfbe87e717518flZ6
  57:        0x10240f120 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  58:        0x1023d5d19 - middle::trans::expr::trans_into::h6b9cbd6894a0b3dd6M4
  59:        0x102422651 - middle::trans::expr::trans_adt::h9723c7611e8b803aFJ6
  60:        0x1024106ff - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  61:        0x10240e911 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  62:        0x1023d7272 - middle::trans::expr::trans::h13b6cdaa2b8246660Q4
  63:        0x1024206e2 - middle::trans::_match::trans_match::h812670c167266a78prk
  64:        0x1024100fd - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  65:        0x1023d5cf9 - middle::trans::expr::trans_into::h6b9cbd6894a0b3dd6M4
  66:        0x10249d8ee - middle::trans::_match::store_local::closure.126680
  67:        0x10249d7a0 - middle::trans::_match::mk_binding_alloca::h3000336027245779899
  68:        0x10246dd5f - middle::trans::_match::store_local::h8039e9afecf4d4cdKEk
  69:        0x1023d52d4 - middle::trans::base::init_local::h33c895e862085d0aQig
  70:        0x1023d4741 - middle::trans::controlflow::trans_stmt::h85c129a56de52a90GY0
  71:        0x1023d5f48 - middle::trans::controlflow::trans_block::hb6579525f1a9c0e0M30
  72:        0x10247633a - middle::trans::base::trans_closure::h73d516938fc276e1Zah
  73:        0x1023c995f - middle::trans::base::trans_fn::ha1261357d96dceccpmh
  74:        0x1023cb42c - middle::trans::monomorphize::monomorphic_fn::h3beeee8af9d8e21acu0
  75:        0x1023fc857 - middle::trans::callee::trans_fn_ref_with_substs::he50eea051fdbe5a9sH3
  76:        0x1023e0aae - middle::trans::meth::trans_method_callee::ha6757eb79d64f196aAm
  77:        0x10240211b - middle::trans::callee::trans_method_call::closure.122853
  78:        0x1023dd895 - middle::trans::callee::trans_call_inner::hecb2b66e77f79065c33
  79:        0x102401f4d - middle::trans::callee::trans_method_call::hd6c33d4672989d74EY3
  80:        0x10240fb8f - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  81:        0x10240e911 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  82:        0x1023d7272 - middle::trans::expr::trans::h13b6cdaa2b8246660Q4
  83:        0x102407fe4 - middle::trans::callee::trans_args::h6215d14867a1f36bno4
  84:        0x1023de92d - middle::trans::callee::trans_call_inner::hecb2b66e77f79065c33
  85:        0x102401f4d - middle::trans::callee::trans_method_call::hd6c33d4672989d74EY3
  86:        0x10240fb8f - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  87:        0x10240e911 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  88:        0x1023d7272 - middle::trans::expr::trans::h13b6cdaa2b8246660Q4
  89:        0x102419a98 - middle::trans::expr::trans_addr_of::hfcdfbe87e717518flZ6
  90:        0x10240f120 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  91:        0x1023d5d19 - middle::trans::expr::trans_into::h6b9cbd6894a0b3dd6M4
  92:        0x102422651 - middle::trans::expr::trans_adt::h9723c7611e8b803aFJ6
  93:        0x1024106ff - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  94:        0x10240e911 - middle::trans::expr::trans_unadjusted::hcc11a8a8a1a648574x5
  95:        0x1023d7272 - middle::trans::expr::trans::h13b6cdaa2b8246660Q4
  96:        0x1024206e2 - middle::trans::_match::trans_match::h812670c167266a78prk
  97:        0x1024100fd - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
  98:        0x1023d5cf9 - middle::trans::expr::trans_into::h6b9cbd6894a0b3dd6M4
  99:        0x1023d604e - middle::trans::controlflow::trans_block::hb6579525f1a9c0e0M30
  100:        0x102410168 - middle::trans::expr::trans_rvalue_dps_unadjusted::hea6dad8c49515284vb6
 ... <frames omitted>
rustc 0.13.0-nightly (221fc1e3c 2014-10-31 02:27:15 +0000)

But i can't reproduce it in simple code example for now.

@s-panferov
Copy link

Caught it!

git clone https://github.com/s-panferov/ice-assertion-ty.git
cd ice-assertion-ty
cargo test

Main body:

#![feature(macro_rules)]

pub trait ToSql {
    fn to_sql(&self) -> String;
}

#[deriving(Clone)]
pub enum ExprValue<T> {
    ExpressionValue,
    DefaultValue
}

#[allow(dead_code)]
#[deriving(Clone)]
pub enum Insert<T, V, M> {
    InsertDefaultValues,
    InsertValues(Vec<V>)
}

#[allow(dead_code)]
#[deriving(Clone)]
pub struct InsertQuery<T, V, M> {
    pub values: Insert<T, V, M>
}

impl ToSql for ()  {
    fn to_sql(&self) -> String {
        "DEFAULT VALUES".to_string()
    }
}

impl<T: Clone, V: ToSql, M: Clone> ToSql for Insert<T, V, M> {
    fn to_sql(&self) -> String {
        match self {
            &InsertDefaultValues => {
                "DEFAULT VALUES".to_string()
            },
            &InsertValues(ref rows) => {
                let val: Vec<&V> = rows.iter().collect();
                "".to_string()
            }

        }
    }
}

impl<T: Clone, V: Clone+ToSql, M: Clone> ToSql for InsertQuery<T, V, M> {
    fn to_sql(&self) -> String {
        // ..
        format!("{}", self.values.to_sql())
    }
}

Test body:

#![feature(globs)]

extern crate ice;

use ice::*;

#[test]
fn test() {
  let values: Insert<(), (), ()> = InsertDefaultValues;
  let query: InsertQuery<(), (), ()> = InsertQuery {
       values: values
  };
  println!("result");
  println!("{}", query.to_sql());  
}

@spaolacci
Copy link
Contributor

I guess this the related, since I'm actually trying to use UFCS to inline a function and the function is not defined in my crate,

fn binop<T>(op: fn(&T, &T) -> T, a: &T, b: &T) -> T {
    // [...]
    op(a, b)
}

fn addx(a: f64, b: f64) -> f64 {
    binop(Add::add, &a, &b)
}

fn main() {
    addx(1.0, 2.0);
}

Using rustc 0.13.0-dev (00cc6d2 2014-10-24 03:22:29 +0000) as well as master from playpen,

$ RUST_BACKTRACE=1 rustc main.rs
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 'assertion failed: `(left == right) && (right == left)` (left: `3`, right: `0`)', /Users/seb/local/src/rust/src/librustc/middle/trans/callee.rs:528

stack backtrace:
   1:        0x10de67369 - rt::backtrace::imp::write::h5cb95caddc8561camlq
   2:        0x10de6a647 - failure::on_fail::h234c06cac3945e8bVBq
   3:        0x10e0cc735 - unwind::begin_unwind_inner::h9105011a78466b9eDud
   4:        0x10e0cc3fc - unwind::begin_unwind_fmt::h07316d219088e3025rd
   5:        0x10aebfc05 - middle::trans::callee::trans_fn_ref_with_substs::h0b4e9d2ee3b6558aAC3
   6:        0x10aebd0d1 - middle::trans::callee::trans_fn_ref::h55761fa4eda1110bqq3
   7:        0x10aedb131 - middle::trans::expr::trans_def::h48c606f79e7dd407VW5
   8:        0x10aed325a - middle::trans::expr::trans_unadjusted::h47409160f1eb6f86tt5
   9:        0x10ae98bc2 - middle::trans::expr::trans::hd44136491cd72162pM4
  10:        0x10aecbf44 - middle::trans::callee::trans_args::h1f6cf1efb791e624oj4
  11:        0x10aea0439 - middle::trans::callee::trans_call_inner::h55cf4dfb2f10e1b9kY3
  12:        0x10aec50d7 - middle::trans::callee::trans_call::h23ec6f0e40508d0fES3
  13:        0x10aed4c01 - middle::trans::expr::trans_rvalue_dps_unadjusted::h5b575c9c069c361eX65
  14:        0x10ae97729 - middle::trans::expr::trans_into::h80c999353edbf98cvI4
  15:        0x10ae97a7e - middle::trans::controlflow::trans_block::h997234ba9aac93d2LY0
  16:        0x10af3eafe - middle::trans::base::trans_closure::hef52fdc374efb614M4g
  17:        0x10ae8a75a - middle::trans::base::trans_fn::h427ae11941f8ecb7agh
  18:        0x10ae87e95 - middle::trans::base::trans_item::h601883efebea6853tzh
  19:        0x10af482c8 - middle::trans::base::trans_crate::hf62c9be45574a5b3kxi
  20:        0x10b382355 - driver::driver::phase_4_translate_to_llvm::hc75cae4187302a30GyA
  21:        0x10b37afe6 - driver::driver::compile_input::h85978a2ffa5320eaA5z
  22:        0x10b3ff60f - driver::run_compiler::h61c720c34640da73LSD
  23:        0x10b3fd796 - driver::run::closure.144840
  24:        0x10ab2d79b - task::TaskBuilder<S>::try_future::closure.103258
  25:        0x10ab2d683 - task::TaskBuilder<S>::spawn_internal::closure.103229
  26:        0x10d4718fd - task::NativeSpawner.Spawner::spawn::closure.8522
  27:        0x10e136bfc - rust_try_inner
  28:        0x10e136be6 - rust_try
  29:        0x10e0c9da7 - unwind::try::h25431bb1593bc97bljd
  30:        0x10e0c9c2c - task::Task::run::h56e3cfd2f55b234ewzc
  31:        0x10d471722 - task::NativeSpawner.Spawner::spawn::closure.8461
  32:        0x10e0cb5ea - thread::thread_start::h023119a990ef057fHTc
  33:     0x7fff86be82fc - _pthread_body
  34:     0x7fff86be8279 - _pthread_body

By the way, it might be nice if playpen was able to automatically display (and/or send) that information when ICEs are found.

@bkoropoff
Copy link
Contributor

Some of these look similar to #18412 #18061, but the fix for that went in recently...

@bkoropoff
Copy link
Contributor

@spaolacci, your issue is #18061, and the fix for it just landed. I think the others still occur.

@bkoropoff
Copy link
Contributor

@s-panferov, your ICE does not appear to be UFCS-related. Can you open a separate issue?

@s-panferov
Copy link

@bkoropoff #18514

@sfackler sfackler added the I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ label Nov 1, 2014
@bkoropoff
Copy link
Contributor

I can confirm that the original example still ICEs even with the fix for #18514, so it is a different issue:

error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. 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' panicked at 'assertion failed: did.krate != ast::LOCAL_CRATE', /home/bkoropoff/Source/rust/src/librustc/middle/ty.rs:4476

stack backtrace:
   1:     0x7f2749e6d600 - rt::backtrace::imp::write::h4bb43e154ca43b21Meq
   2:     0x7f2749e6f650 - failure::on_fail::hfc0fa620cf9857299zq
   3:     0x7f274e0afd00 - unwind::begin_unwind_inner::h67de795556f03740vTd
   4:     0x7f274e6e3bb0 - unwind::begin_unwind::h17429563519022666585
   5:     0x7f274eb10a90 - middle::ty::lookup_trait_def::h445f0408c992da73SsK
   6:     0x7f274e9dc8b0 - util::ppaux::ty..TraitRef.Repr::repr::ha3293d0710a14bb5lhK
   7:     0x7f274ea5db90 - middle::trans::common::fulfill_obligation::hce42b3bbe1630c53QJ8
   8:     0x7f274ea2f260 - middle::trans::meth::trans_static_method_callee::h6e647efcb386aec6kzm
   9:     0x7f274ea47180 - middle::trans::expr::trans_def::h404ea2cc1529cc808V5
  10:     0x7f274ea3f820 - middle::trans::expr::trans_unadjusted::hf278c1faf66daa53Es5
  11:     0x7f274ea0faf0 - middle::trans::expr::trans::h09d0376921b16455AL4
  12:     0x7f274ea39a00 - middle::trans::callee::trans_args::h98e66dc97db9b64dXi4
  13:     0x7f274ea17270 - middle::trans::callee::trans_call_inner::hba2fb74262554e0bMX3
  14:     0x7f274ea34480 - middle::trans::callee::trans_call::hfa1c38f86fbfcf6e6R3
  15:     0x7f274ea40ba0 - middle::trans::expr::trans_rvalue_dps_unadjusted::h03c4a846155b8d5b555
  16:     0x7f274ea0e5c0 - middle::trans::expr::trans_into::h9ec3df557ec4a1d1GH4
  17:     0x7f274ea0db60 - middle::trans::controlflow::trans_stmt_semi::h2bf8c014bba1d5cbyX0
  18:     0x7f274ea0d180 - middle::trans::controlflow::trans_stmt::hfce27964ae879693lT0
  19:     0x7f274ea0e960 - middle::trans::controlflow::trans_block::h195c4a1576e5b6d0rY0
  20:     0x7f274ea9e060 - middle::trans::base::trans_closure::he382fee24a6c8113v5g
  21:     0x7f274ea038d0 - middle::trans::base::trans_fn::h95c9c34a4110b15fqhh
  22:     0x7f274ea01490 - middle::trans::base::trans_item::h080110be2df88ebdEAh
  23:     0x7f274e9fe2b0 - middle::trans::inline::instantiate_inline::h3dee3aa3860540219b0
  24:     0x7f274ea34730 - middle::trans::callee::trans_call::closure.122762
  25:     0x7f274ea17270 - middle::trans::callee::trans_call_inner::hba2fb74262554e0bMX3
  26:     0x7f274ea34480 - middle::trans::callee::trans_call::hfa1c38f86fbfcf6e6R3
  27:     0x7f274ea40ba0 - middle::trans::expr::trans_rvalue_dps_unadjusted::h03c4a846155b8d5b555
  28:     0x7f274ea0e5c0 - middle::trans::expr::trans_into::h9ec3df557ec4a1d1GH4
  29:     0x7f274ea0db60 - middle::trans::controlflow::trans_stmt_semi::h2bf8c014bba1d5cbyX0
  30:     0x7f274ea0d180 - middle::trans::controlflow::trans_stmt::hfce27964ae879693lT0
  31:     0x7f274ea0e960 - middle::trans::controlflow::trans_block::h195c4a1576e5b6d0rY0
  32:     0x7f274ea9e060 - middle::trans::base::trans_closure::he382fee24a6c8113v5g
  33:     0x7f274ea038d0 - middle::trans::base::trans_fn::h95c9c34a4110b15fqhh
  34:     0x7f274ea01490 - middle::trans::base::trans_item::h080110be2df88ebdEAh
  35:     0x7f274eaa1c70 - middle::trans::base::trans_mod::ha859d0821e07a5419Fh
  36:     0x7f274eaa7a80 - middle::trans::base::trans_crate::h0e420231438a080dJyi
  37:     0x7f274ee70250 - driver::driver::phase_4_translate_to_llvm::h5eedb77a0534f86efOA
  38:     0x7f274ee68ef0 - driver::driver::compile_input::h3fb65e4233f7306c9kA
  39:     0x7f274eee6940 - driver::run::closure.145290
  40:     0x7f274e70f6b0 - task::TaskBuilder<S>::try_future::closure.103610
  41:     0x7f274e70f530 - task::TaskBuilder<S>::spawn_internal::closure.103557
  42:     0x7f274e3ede10 - task::NativeSpawner.Spawner::spawn::closure.8409
  43:     0x7f274e107d10 - rust_try_inner
  44:     0x7f274e107d00 - rust_try
  45:     0x7f274e0ada80 - task::Task::run::h42fb1dbb2643b426FNc
  46:     0x7f274e3edbe0 - task::NativeSpawner.Spawner::spawn::closure.8348
  47:     0x7f274e0aee70 - thread::thread_start::ha4aa6f5a9a81876aU8c
  48:     0x7f2749440e20 - start_thread
  49:     0x7f274dd7ab59 - clone
  50:                0x0 - <unknown>

@bkoropoff
Copy link
Contributor

I'm seeing a def with the wrong crate ID. It looks like an AST decoding problem. Hopefully an easy fix.

bkoropoff added a commit to bkoropoff/rust that referenced this issue Nov 2, 2014
This prevents def IDs with the wrong crate ID from showing up
when using UFCS.  Closes rust-lang#18501
bkoropoff added a commit to bkoropoff/rust that referenced this issue Nov 2, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.

5 participants