From be7f4b35b53fe65f5a9e5b2af9fde3e45fa33044 Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Tue, 30 Jun 2020 23:19:57 +0300 Subject: [PATCH] semverver: update for rustc and Cargo changes. --- src/tools/semverver/src/bin/cargo_semver.rs | 5 +-- src/tools/semverver/src/mapping.rs | 6 ++-- src/tools/semverver/src/mismatch.rs | 36 ++++++++++----------- src/tools/semverver/src/translate.rs | 8 ++--- 4 files changed, 27 insertions(+), 28 deletions(-) diff --git a/src/tools/semverver/src/bin/cargo_semver.rs b/src/tools/semverver/src/bin/cargo_semver.rs index 3b3672d57b391..600af2aafb6ed 100644 --- a/src/tools/semverver/src/bin/cargo_semver.rs +++ b/src/tools/semverver/src/bin/cargo_semver.rs @@ -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]; } } @@ -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)); } } } diff --git a/src/tools/semverver/src/mapping.rs b/src/tools/semverver/src/mapping.rs index f7aaffda7941d..9de89d1dd7682 100644 --- a/src/tools/semverver/src/mapping.rs +++ b/src/tools/semverver/src/mapping.rs @@ -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); @@ -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 | diff --git a/src/tools/semverver/src/mismatch.rs b/src/tools/semverver/src/mismatch.rs index 98ee0e60f931f..9b83e30dc1c01 100644 --- a/src/tools/semverver/src/mismatch.rs +++ b/src/tools/semverver/src/mismatch.rs @@ -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); } } @@ -118,13 +118,13 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> { fn relate_with_variance>( &mut self, _: ty::Variance, - a: &T, - b: &T, + a: T, + b: T, ) -> RelateResult<'tcx, T> { self.relate(a, b) } - fn relate>(&mut self, a: &T, b: &T) -> RelateResult<'tcx, T> { + fn relate>(&mut self, a: T, b: T) -> RelateResult<'tcx, T> { debug!("relate: mismatch relation: a: {:?}, b: {:?}", a, b); Relate::relate(self, a, b) } @@ -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); @@ -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)?; } } @@ -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)) => { @@ -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)) @@ -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); @@ -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( @@ -300,8 +300,8 @@ impl<'a, 'tcx> TypeRelation<'tcx> for MismatchRelation<'a, 'tcx> { fn binders>( &mut self, - a: &ty::Binder, - b: &ty::Binder, + a: ty::Binder, + b: ty::Binder, ) -> RelateResult<'tcx, ty::Binder> { Ok(ty::Binder::bind( self.relate(a.skip_binder(), b.skip_binder())?, diff --git a/src/tools/semverver/src/translate.rs b/src/tools/semverver/src/translate.rs index e5be434c70888..944ed0acbdea3 100644 --- a/src/tools/semverver/src/translate.rs +++ b/src/tools/semverver/src/translate.rs @@ -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; @@ -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 = @@ -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, } }