Closed
Description
The following snippet tries to put a generic function into a non-generic function vector.
fn foo<T>(_x: &T) {}
static FOOS: &'static [fn(&uint)] = &[foo];
fn main() {}
When I try to compile this with the current upstream master (a1b25f2), I get:
% ./rustc -L. datasets/rust3.rs
error: internal compiler error: type_of with ty_param
note: the compiler hit an unexpected failure path. this is a bug.
note: we would appreciate a bug report: http://static.rust-lang.org/doc/master/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
task 'rustc' failed at '~Any', /Users/rustbuild/src/rust-buildbot/slave/nightly-mac/build/src/libsyntax/diagnostic.rs:155
stack backtrace:
1: 0x10c5dcb74 - rt::backtrace::imp::write::hacf7ed738bbd3a43WEa::v0.11.pre
2: 0x10c53111e - rt::unwind::begin_unwind_inner::h556f68d691cc50912ea::v0.11.pre
3: 0x10bc67aa5 - rt::unwind::begin_unwind::h7101720994769804464::v0.11.pre
4: 0x10bc68afa - diagnostic::Handler::bug::h8fe91a431cd0d4bbBYb::v0.11.pre
5: 0x1098c59f8 - driver::session::Session::bug::h854d2d1ae83369e71Yg::v0.11.pre
6: 0x1099098f2 - middle::trans::type_of::type_of::h9e9bd456dee4c7c7uwk::v0.11.pre
7: 0x109909272 - middle::trans::type_of::type_of::h9e9bd456dee4c7c7uwk::v0.11.pre
8: 0x109908bfa - middle::trans::type_of::type_of::h9e9bd456dee4c7c7uwk::v0.11.pre
9: 0x109988c3c - middle::trans::type_of::type_of_rust_fn::h652025f5c45740c9Hok::v0.11.pre
10: 0x1099a1cd7 - middle::trans::base::decl_rust_fn::h7fcff06991ec4dfa2yn::v0.11.pre
11: 0x1099b4c77 - middle::trans::base::register_fn::he516f08159ccf4520rp::v0.11.pre
12: 0x1098c330e - middle::trans::base::get_item_val::hc072751c32542e62aFp::v0.11.pre
13: 0x109980fb5 - middle::trans::consts::const_expr_unadjusted::hf182b51642cbb79bBOj::v0.11.pre
14: 0x10997d559 - middle::trans::consts::const_expr::h3b03bdc3423a84b6Lyj::v0.11.pre
15: 0x10997cafe - middle::trans::consts::const_vec::h8dd03edee92d91bcomj::v0.11.pre
16: 0x1099817ff - middle::trans::consts::const_expr_unadjusted::hf182b51642cbb79bBOj::v0.11.pre
17: 0x10997d559 - middle::trans::consts::const_expr::h3b03bdc3423a84b6Lyj::v0.11.pre
18: 0x1098c346a - middle::trans::base::get_item_val::hc072751c32542e62aFp::v0.11.pre
19: 0x10997f5ab - middle::trans::consts::trans_const::h943a0d0f09546997mmk::v0.11.pre
20: 0x1098c191c - middle::trans::base::trans_item::hc7d767359a0a6854alp::v0.11.pre
21: 0x1099b27d1 - middle::trans::base::trans_mod::h8117792907f7df90gqp::v0.11.pre
22: 0x1099bbcde - middle::trans::base::trans_crate::h2327afe0ee1ba3fcB5p::v0.11.pre
23: 0x10a0c12c8 - driver::driver::phase_4_translate_to_llvm::hdf0bb46be69d2d70qjf::v0.11.pre
24: 0x10a0c4a3f - driver::driver::compile_input::h14a3bf94d25e191eHAf::v0.11.pre
25: 0x10a0ead87 - run_compiler::hc95fb7c1be5fbe20l4m::v0.11.pre
26: 0x10a102cdd - main_args::closure.91009
27: 0x10a101072 - monitor::closure.90884
28: 0x10a0fbc5b - task::TaskBuilder::try::closure.90650
29: 0x10987ad6c - task::spawn_opts::closure.7136
30: 0x10c5d2b78 - rt::task::Task::run::closure.40346
31: 0x10c5e1d5c - rust_try
32: 0x10c5d29f7 - rt::task::Task::run::h3856271866f0131dC57::v0.11.pre
33: 0x10987abef - task::spawn_opts::closure.7108
34: 0x10c5db546 - rt::thread::thread_start::h83a23077bc99beefPK8::v0.11.pre
35: 0x7fff92309899 - _pthread_body
36: 0x7fff9230972a - _pthread_struct_init