diff --git a/src/comp/metadata/encoder.rs b/src/comp/metadata/encoder.rs index 60994d3b17ce..4776b8af34d3 100644 --- a/src/comp/metadata/encoder.rs +++ b/src/comp/metadata/encoder.rs @@ -190,7 +190,7 @@ fn encode_type_param_bounds(ebml_w: ebml::writer, ecx: @encode_ctxt, abbrevs: tyencode::ac_use_abbrevs(ecx.type_abbrevs)}; for param in params { ebml::start_tag(ebml_w, tag_items_data_item_ty_param_bounds); - let bs = ecx.ccx.tcx.ty_param_bounds.get(local_def(param.id)); + let bs = ecx.ccx.tcx.ty_param_bounds.get(param.id); tyencode::enc_bounds(io::new_writer(ebml_w.writer), ty_str_ctxt, bs); ebml::end_tag(ebml_w); } diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 4c385d56ac31..c0204028abf0 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -5093,7 +5093,7 @@ fn register_fn(ccx: @crate_ctxt, sp: span, path: [str], flav: str, } fn param_bounds(ccx: @crate_ctxt, tp: ast::ty_param) -> ty::param_bounds { - ccx.tcx.ty_param_bounds.get(ast_util::local_def(tp.id)) + ccx.tcx.ty_param_bounds.get(tp.id) } fn register_fn_full(ccx: @crate_ctxt, sp: span, path: [str], _flav: str, diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs index ac612dda5fb9..dd20be610577 100644 --- a/src/comp/middle/ty.rs +++ b/src/comp/middle/ty.rs @@ -222,7 +222,7 @@ type ctxt = ast_ty_to_ty_cache: hashmap<@ast::ty, option::t>, tag_var_cache: hashmap, iface_method_cache: hashmap, - ty_param_bounds: hashmap}; + ty_param_bounds: hashmap}; type ty_ctxt = ctxt; @@ -441,7 +441,7 @@ fn mk_ctxt(s: session::session, dm: resolve::def_map, amap: ast_map::map, map::mk_hashmap(ast_util::hash_ty, ast_util::eq_ty), tag_var_cache: new_def_hash(), iface_method_cache: new_def_hash(), - ty_param_bounds: new_def_hash()}; + ty_param_bounds: map::new_int_hash()}; populate_type_store(cx); ret cx; } @@ -1085,7 +1085,9 @@ fn type_kind(cx: ctxt, ty: t) -> kind { } // Resources are always noncopyable. ty_res(did, inner, tps) { kind_noncopyable } - ty_param(_, did) { param_bounds_to_kind(cx.ty_param_bounds.get(did)) } + ty_param(_, did) { + param_bounds_to_kind(cx.ty_param_bounds.get(did.node)) + } ty_constr(t, _) { type_kind(cx, t) } }; diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index a679659b3c76..db177b54bbbd 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -507,7 +507,7 @@ fn ty_param_bounds(tcx: ty::ctxt, mode: mode, params: [ast::ty_param]) -> @[ty::param_bounds] { let result = []; for param in params { - result += [alt tcx.ty_param_bounds.find(local_def(param.id)) { + result += [alt tcx.ty_param_bounds.find(param.id) { some(bs) { bs } none. { let bounds = []; @@ -521,7 +521,7 @@ fn ty_param_bounds(tcx: ty::ctxt, mode: mode, params: [ast::ty_param]) }]; } let boxed = @bounds; - tcx.ty_param_bounds.insert(local_def(param.id), boxed); + tcx.ty_param_bounds.insert(param.id, boxed); boxed } }]; @@ -1493,7 +1493,7 @@ fn lookup_method(fcx: @fn_ctxt, isc: resolve::iscopes, // First, see whether this is an interface-bounded parameter alt ty::struct(tcx, ty) { ty::ty_param(n, did) { - for bound in *tcx.ty_param_bounds.get(did) { + for bound in *tcx.ty_param_bounds.get(did.node) { alt bound { ty::bound_iface(t) { let (iid, _tps) = alt ty::struct(tcx, t) { @@ -2789,7 +2789,7 @@ fn check_ty_params(ccx: @crate_ctxt, tps: [ast::ty_param]) { for bound in *tp.bounds { alt bound { ast::bound_iface(at) { - let tbound = ccx.tcx.ty_param_bounds.get(local_def(tp.id))[i]; + let tbound = ccx.tcx.ty_param_bounds.get(tp.id)[i]; let bound_ty = alt tbound { ty::bound_iface(t) { t } }; alt ty::struct(ccx.tcx, bound_ty) { ty::ty_iface(_, _) {}