Fix rebase fallout

This commit is contained in:
varkor 2018-04-27 23:44:25 +01:00
parent 9f9d4beda6
commit 18f77e25e9
2 changed files with 10 additions and 4 deletions

View file

@ -35,6 +35,7 @@ use mir::{self, Mir, interpret};
use ty::subst::{Kind, Substs, Subst};
use ty::ReprOptions;
use ty::Instance;
use ty::GenericParamDefKind;
use traits;
use traits::{Clause, Clauses, Goal, Goals};
use ty::{self, Ty, TypeAndMut};
@ -2328,9 +2329,14 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
let generics = self.generics_of(def_id);
let mut substs = vec![Kind::from(ty)];
// Add defaults for other generic params if there are some.
for def in generics.types.iter().skip(1) {
assert!(def.has_default);
let ty = self.type_of(def.def_id).subst(self, &substs);
for (def_id, has_default) in generics.params.iter().filter_map(|param| {
match param.kind {
GenericParamDefKind::Type(ty) => Some((param.def_id, ty.has_default)),
GenericParamDefKind::Lifetime(_) => None
}
}).skip(1) {
assert!(has_default);
let ty = self.type_of(def_id).subst(self, &substs);
substs.push(ty.into());
}
let substs = self.mk_substs(substs.into_iter());

View file

@ -675,7 +675,7 @@ fn reject_shadowing_parameters(tcx: TyCtxt, def_id: DefId) {
// local so it should be okay to just unwrap everything.
let trait_def_id = impl_params[&name];
let trait_decl_span = tcx.def_span(trait_def_id);
error_194(tcx, type_span, trait_decl_span, &name[..]);
error_194(tcx, type_span, trait_decl_span, &name.as_str()[..]);
}
}
}