X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=compiler%2Frustc_traits%2Fsrc%2Fchalk%2Fdb.rs;h=344c8b93c170489dfb726ff7b12eabc1cb47025b;hb=69df0f2c2f665d7f4e38a3579a81d4efc0d81034;hp=07f92299f72b43326f5195dd87fbe87e9ae704de;hpb=1b91bdfda995fa21b3019a85e12a063f32cd62af;p=rust.git diff --git a/compiler/rustc_traits/src/chalk/db.rs b/compiler/rustc_traits/src/chalk/db.rs index 07f92299f72..344c8b93c17 100644 --- a/compiler/rustc_traits/src/chalk/db.rs +++ b/compiler/rustc_traits/src/chalk/db.rs @@ -9,9 +9,9 @@ use rustc_middle::traits::ChalkRustInterner as RustInterner; use rustc_middle::ty::{self, AssocKind, EarlyBinder, Ty, TyCtxt, TypeFoldable, TypeSuperFoldable}; use rustc_middle::ty::{InternalSubsts, SubstsRef}; +use rustc_target::abi::{Integer, IntegerType}; use rustc_ast::ast; -use rustc_attr as attr; use rustc_hir::def_id::DefId; @@ -142,6 +142,8 @@ fn trait_datum( Some(CoerceUnsized) } else if lang_items.dispatch_from_dyn_trait() == Some(def_id) { Some(DispatchFromDyn) + } else if lang_items.tuple_trait() == Some(def_id) { + Some(Tuple) } else { None }; @@ -216,21 +218,21 @@ fn adt_repr( c: adt_def.repr().c(), packed: adt_def.repr().packed(), int: adt_def.repr().int.map(|i| match i { - attr::IntType::SignedInt(ty) => match ty { - ast::IntTy::Isize => int(chalk_ir::IntTy::Isize), - ast::IntTy::I8 => int(chalk_ir::IntTy::I8), - ast::IntTy::I16 => int(chalk_ir::IntTy::I16), - ast::IntTy::I32 => int(chalk_ir::IntTy::I32), - ast::IntTy::I64 => int(chalk_ir::IntTy::I64), - ast::IntTy::I128 => int(chalk_ir::IntTy::I128), + IntegerType::Pointer(true) => int(chalk_ir::IntTy::Isize), + IntegerType::Pointer(false) => uint(chalk_ir::UintTy::Usize), + IntegerType::Fixed(i, true) => match i { + Integer::I8 => int(chalk_ir::IntTy::I8), + Integer::I16 => int(chalk_ir::IntTy::I16), + Integer::I32 => int(chalk_ir::IntTy::I32), + Integer::I64 => int(chalk_ir::IntTy::I64), + Integer::I128 => int(chalk_ir::IntTy::I128), }, - attr::IntType::UnsignedInt(ty) => match ty { - ast::UintTy::Usize => uint(chalk_ir::UintTy::Usize), - ast::UintTy::U8 => uint(chalk_ir::UintTy::U8), - ast::UintTy::U16 => uint(chalk_ir::UintTy::U16), - ast::UintTy::U32 => uint(chalk_ir::UintTy::U32), - ast::UintTy::U64 => uint(chalk_ir::UintTy::U64), - ast::UintTy::U128 => uint(chalk_ir::UintTy::U128), + IntegerType::Fixed(i, false) => match i { + Integer::I8 => uint(chalk_ir::UintTy::U8), + Integer::I16 => uint(chalk_ir::UintTy::U16), + Integer::I32 => uint(chalk_ir::UintTy::U32), + Integer::I64 => uint(chalk_ir::UintTy::U64), + Integer::I128 => uint(chalk_ir::UintTy::U128), }, }), }) @@ -570,6 +572,7 @@ fn well_known_trait_id( CoerceUnsized => lang_items.coerce_unsized_trait(), DiscriminantKind => lang_items.discriminant_kind_trait(), DispatchFromDyn => lang_items.dispatch_from_dyn_trait(), + Tuple => lang_items.tuple_trait(), }; def_id.map(chalk_ir::TraitId) }