Skip to content

Commit

Permalink
semverver: update for rustc and Cargo changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
eddyb committed Jul 6, 2020
1 parent 0527be9 commit be7f4b3
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 28 deletions.
5 changes: 3 additions & 2 deletions src/tools/semverver/src/bin/cargo_semver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ impl<'a> WorkInfo<'a> {
let target = cargo::core::compiler::CompileTarget::new(&target);
if let Ok(target) = target {
let kind = cargo::core::compiler::CompileKind::Target(target);
opts.build_config.requested_kind = kind;
opts.build_config.requested_kinds = vec![kind];
}
}

Expand Down Expand Up @@ -526,7 +526,8 @@ impl<'a> WorkInfo<'a> {
for i in &build_plan.invocations {
if let Some(kind) = i.target_kind.get(0) {
if kind.contains("lib") && i.package_name == name {
return Ok((i.outputs[0].clone(), compilation.deps_output));
// FIXME(eddyb) handle multiple targets.
return Ok((i.outputs[0].clone(), compilation.deps_output.into_iter().next().unwrap().1));
}
}
}
Expand Down
6 changes: 2 additions & 4 deletions src/tools/semverver/src/mapping.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ impl Hash for InherentEntry {
match self.kind {
AssocKind::Const => 0_u8.hash(hasher),
AssocKind::Fn => 1_u8.hash(hasher),
AssocKind::OpaqueTy => 2_u8.hash(hasher),
AssocKind::Type => 3_u8.hash(hasher),
AssocKind::Type => 2_u8.hash(hasher),
}

self.name.hash(hasher);
Expand Down Expand Up @@ -366,8 +365,7 @@ impl NameMapping {
TraitAlias | // TODO: will need some handling later on
AssocTy |
TyParam |
OpaqueTy |
AssocOpaqueTy => Some(&mut self.type_map),
OpaqueTy => Some(&mut self.type_map),
Fn |
Const |
ConstParam |
Expand Down
36 changes: 18 additions & 18 deletions src/tools/semverver/src/mismatch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ impl<'a, 'tcx> MismatchRelation<'a, 'tcx> {
let old_ty = self.tcx.type_of(old_def_id);
let new_ty = self.tcx.type_of(new_def_id);
debug!("relating item pair");
let _ = self.relate(&old_ty, &new_ty);
let _ = self.relate(old_ty, new_ty);
}
}

Expand Down Expand Up @@ -118,13 +118,13 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> {
fn relate_with_variance<T: Relate<'tcx>>(
&mut self,
_: ty::Variance,
a: &T,
b: &T,
a: T,
b: T,
) -> RelateResult<'tcx, T> {
self.relate(a, b)
}

fn relate<T: Relate<'tcx>>(&mut self, a: &T, b: &T) -> RelateResult<'tcx, T> {
fn relate<T: Relate<'tcx>>(&mut self, a: T, b: T) -> RelateResult<'tcx, T> {
debug!("relate: mismatch relation: a: {:?}, b: {:?}", a, b);
Relate::relate(self, a, b)
}
Expand All @@ -135,7 +135,7 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> {
use rustc_middle::ty::TyKind;

if self.current_old_types.contains(a) || self.current_new_types.contains(b) {
return Ok(self.tcx.types.err);
return Ok(self.tcx.ty_error());
}

self.current_old_types.insert(a);
Expand All @@ -161,7 +161,7 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> {
{
let b_field_ty = b_field.ty(self.tcx, b_substs);

let _ = self.relate(&a_field_ty, &b_field_ty)?;
let _ = self.relate(a_field_ty, b_field_ty)?;
}
}

Expand All @@ -188,16 +188,16 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> {
}
(&TyKind::Array(a_t, _), &TyKind::Array(b_t, _))
| (&TyKind::Slice(a_t), &TyKind::Slice(b_t)) => {
let _ = self.relate(&a_t, &b_t)?;
let _ = self.relate(a_t, b_t)?;
None
}
(&TyKind::RawPtr(a_mt), &TyKind::RawPtr(b_mt)) => {
let _ = self.relate(&a_mt, &b_mt)?;
let _ = self.relate(a_mt, b_mt)?;
None
}
(&TyKind::Ref(a_r, a_ty, _), &TyKind::Ref(b_r, b_ty, _)) => {
let _ = self.relate(&a_r, &b_r)?;
let _ = self.relate(&a_ty, &b_ty)?;
let _ = self.relate(a_r, b_r)?;
let _ = self.relate(a_ty, b_ty)?;
None
}
(&TyKind::FnDef(a_def_id, a_substs), &TyKind::FnDef(b_def_id, b_substs)) => {
Expand All @@ -214,17 +214,17 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> {
Some((a, b))
}
(&TyKind::FnPtr(a_fty), &TyKind::FnPtr(b_fty)) => {
let _ = self.relate(&a_fty, &b_fty)?;
let _ = self.relate(a_fty, b_fty)?;
None
}
(&TyKind::Dynamic(a_obj, a_r), &TyKind::Dynamic(b_obj, b_r)) => {
let _ = self.relate(&a_r, &b_r)?;
let _ = self.relate(a_r, b_r)?;
let a = a_obj.principal();
let b = b_obj.principal();

if let (Some(a), Some(b)) = (a, b) {
if self.check_substs(a.skip_binder().substs, b.skip_binder().substs) {
let _ = self.relate(&a.skip_binder().substs, &b.skip_binder().substs)?;
let _ = self.relate(a.skip_binder().substs, b.skip_binder().substs)?;
let a = Res::Def(DefKind::Trait, a.skip_binder().def_id);
let b = Res::Def(DefKind::Trait, b.skip_binder().def_id);
Some((a, b))
Expand All @@ -236,11 +236,11 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> {
}
}
(&TyKind::Tuple(as_), &TyKind::Tuple(bs)) => {
let _ = as_.iter().zip(bs).map(|(a, b)| self.relate(&a, &b));
let _ = as_.iter().zip(bs).map(|(a, b)| self.relate(a, b));
None
}
(&TyKind::Projection(a_data), &TyKind::Projection(b_data)) => {
let _ = self.relate(&a_data, &b_data)?;
let _ = self.relate(a_data, b_data)?;

let a = Res::Def(DefKind::AssocTy, a_data.item_def_id);
let b = Res::Def(DefKind::AssocTy, b_data.item_def_id);
Expand Down Expand Up @@ -279,7 +279,7 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> {
}
}

Ok(self.tcx.types.err)
Ok(self.tcx.ty_error())
}

fn regions(
Expand All @@ -300,8 +300,8 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> {

fn binders<T: Relate<'tcx>>(
&mut self,
a: &ty::Binder<T>,
b: &ty::Binder<T>,
a: ty::Binder<T>,
b: ty::Binder<T>,
) -> RelateResult<'tcx, ty::Binder<T>> {
Ok(ty::Binder::bind(
self.relate(a.skip_binder(), b.skip_binder())?,
Expand Down
8 changes: 4 additions & 4 deletions src/tools/semverver/src/translate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -208,10 +208,10 @@ impl<'a, 'tcx> TranslationContext<'a, 'tcx> {
let res: Vec<_> = preds
.iter()
.map(|p| {
match *p.skip_binder() {
match p.skip_binder() {
Trait(existential_trait_ref) => {
let trait_ref = Binder::bind(existential_trait_ref)
.with_self_ty(self.tcx, self.tcx.types.err);
.with_self_ty(self.tcx, self.tcx.ty_error());
let did = trait_ref.skip_binder().def_id;
let substs = trait_ref.skip_binder().substs;

Expand All @@ -234,7 +234,7 @@ impl<'a, 'tcx> TranslationContext<'a, 'tcx> {
}
Projection(existential_projection) => {
let projection_pred = Binder::bind(existential_projection)
.with_self_ty(self.tcx, self.tcx.types.err);
.with_self_ty(self.tcx, self.tcx.ty_error());
let item_def_id =
projection_pred.skip_binder().projection_ty.item_def_id;
let substs =
Expand Down Expand Up @@ -561,7 +561,7 @@ impl<'a, 'tcx> TypeFolder<'tcx> for InferenceCleanupFolder<'a, 'tcx> {
.tcx
.mk_ref(self.infcx.tcx.lifetimes.re_erased, ty_and_mut)
}
TyKind::Infer(_) => self.infcx.tcx.mk_ty(TyKind::Error),
TyKind::Infer(_) => self.infcx.tcx.ty_error(),
_ => t1,
}
}
Expand Down

0 comments on commit be7f4b3

Please sign in to comment.