rust-lang / rust

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

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

Closed japaric closed 9 years ago

japaric commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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 (00cc6d240 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 commented 9 years ago

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

bkoropoff commented 9 years ago

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

bkoropoff commented 9 years ago

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

s-panferov commented 9 years ago

@bkoropoff #18514

bkoropoff commented 9 years ago

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 commented 9 years ago

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