From 808e039d401bfa4a5f22484086409e3861511940 Mon Sep 17 00:00:00 2001 From: Piotr Czarnecki Date: Sat, 6 Sep 2014 01:46:05 +0100 Subject: [PATCH] Fix ICE with trans of calls to foreign fns It was failing occasionally. --- src/librustc/middle/trans/callee.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/librustc/middle/trans/callee.rs b/src/librustc/middle/trans/callee.rs index 8909527f0c499..794e42563a9f0 100644 --- a/src/librustc/middle/trans/callee.rs +++ b/src/librustc/middle/trans/callee.rs @@ -141,8 +141,10 @@ fn trans<'a>(bcx: &'a Block<'a>, expr: &ast::Expr) -> Callee<'a> { let expr_ty = node_id_type(bcx, ref_expr.id); match def { def::DefFn(did, _) if { - let def_id = inline::maybe_instantiate_inline(bcx.ccx(), did); - match bcx.tcx().map.find(def_id.node) { + let maybe_def_id = inline::get_local_instance(bcx.ccx(), did); + let maybe_ast_node = maybe_def_id.and_then(|def_id| bcx.tcx().map + .find(def_id.node)); + match maybe_ast_node { Some(ast_map::NodeStructCtor(_)) => true, _ => false }