diff --git a/src/rustc/middle/trans/foreign.rs b/src/rustc/middle/trans/foreign.rs index 45dd30b4e18..34ccdb3d6e5 100644 --- a/src/rustc/middle/trans/foreign.rs +++ b/src/rustc/middle/trans/foreign.rs @@ -794,7 +794,10 @@ fn trans_foreign_mod(ccx: @crate_ctxt, } } } - ast::foreign_item_const(*) => {} + ast::foreign_item_const(*) => { + let ident = ccx.sess.parse_sess.interner.get(foreign_item.ident); + ccx.item_symbols.insert(foreign_item.id, copy *ident); + } } } } diff --git a/src/rustc/middle/typeck/check/method.rs b/src/rustc/middle/typeck/check/method.rs index bb90bcaea01..93bab0f84e5 100644 --- a/src/rustc/middle/typeck/check/method.rs +++ b/src/rustc/middle/typeck/check/method.rs @@ -306,7 +306,10 @@ struct lookup { }; let trt_methods = ty::trait_methods(tcx, trait_id); - match vec::position(*trt_methods, |m| m.ident == self.m_name) { + let match_fn: &fn(m: ty::method) -> bool = |m| { + m.self_ty != ast::sty_static && m.ident == self.m_name + }; + match vec::position(*trt_methods, match_fn) { None => { /* check next bound */ trait_bnd_idx += 1u;