Simplify and remove unnecessary use of ast_map
This commit is contained in:
parent
aa67deff33
commit
2c17ff7dbc
2 changed files with 1 additions and 40 deletions
|
@ -1064,44 +1064,7 @@ pub fn impl_self_ty(vcx: &VtableContext,
|
||||||
-> ty_param_substs_and_ty {
|
-> ty_param_substs_and_ty {
|
||||||
let tcx = vcx.tcx();
|
let tcx = vcx.tcx();
|
||||||
|
|
||||||
let (n_tps, region_param, raw_ty) = if did.crate == ast::local_crate {
|
let (n_tps, region_param, raw_ty) = {
|
||||||
let region_param = tcx.region_paramd_items.find(&did.node).
|
|
||||||
map_consume(|x| *x);
|
|
||||||
match tcx.items.find(&did.node) {
|
|
||||||
Some(&ast_map::node_item(@ast::item {
|
|
||||||
node: ast::item_impl(ref ts, _, st, _),
|
|
||||||
_
|
|
||||||
}, _)) => {
|
|
||||||
let region_parameterization =
|
|
||||||
RegionParameterization::from_variance_and_generics(
|
|
||||||
region_param,
|
|
||||||
ts);
|
|
||||||
(ts.ty_params.len(),
|
|
||||||
region_param,
|
|
||||||
vcx.ccx.to_ty(&rscope::type_rscope(region_parameterization), st))
|
|
||||||
}
|
|
||||||
Some(&ast_map::node_item(@ast::item {
|
|
||||||
node: ast::item_struct(_, ref ts),
|
|
||||||
id: class_id,
|
|
||||||
_
|
|
||||||
},_)) => {
|
|
||||||
/* If the impl is a class, the self ty is just the class ty
|
|
||||||
(doing a no-op subst for the ty params; in the next step,
|
|
||||||
we substitute in fresh vars for them)
|
|
||||||
*/
|
|
||||||
(ts.ty_params.len(),
|
|
||||||
region_param,
|
|
||||||
ty::mk_struct(tcx, local_def(class_id),
|
|
||||||
substs {
|
|
||||||
self_r: rscope::bound_self_region(region_param),
|
|
||||||
self_ty: None,
|
|
||||||
tps: ty::ty_params_to_tys(tcx, ts)
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
_ => { tcx.sess.bug(~"impl_self_ty: unbound item or item that \
|
|
||||||
doesn't have a self_ty"); }
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
let ity = ty::lookup_item_type(tcx, did);
|
let ity = ty::lookup_item_type(tcx, did);
|
||||||
(vec::len(*ity.bounds), ity.region_param, ity.ty)
|
(vec::len(*ity.bounds), ity.region_param, ity.ty)
|
||||||
};
|
};
|
||||||
|
|
|
@ -3050,8 +3050,6 @@ pub impl Parser {
|
||||||
let attrs = self.parse_outer_attributes();
|
let attrs = self.parse_outer_attributes();
|
||||||
let lo = self.span.lo;
|
let lo = self.span.lo;
|
||||||
|
|
||||||
let static_sty = spanned(lo, self.span.hi, sty_static);
|
|
||||||
|
|
||||||
let visa = self.parse_visibility();
|
let visa = self.parse_visibility();
|
||||||
let pur = self.parse_fn_purity();
|
let pur = self.parse_fn_purity();
|
||||||
let ident = self.parse_ident();
|
let ident = self.parse_ident();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue