@@ -56,8 +56,13 @@ impl<'a> chalk_solve::RustIrDatabase<Interner> for ChalkContext<'a> {
5656 fn adt_datum ( & self , struct_id : AdtId ) -> Arc < StructDatum > {
5757 self . db . struct_datum ( self . krate , struct_id)
5858 }
59- fn adt_repr ( & self , _struct_id : AdtId ) -> rust_ir:: AdtRepr {
60- rust_ir:: AdtRepr { repr_c : false , repr_packed : false }
59+ fn adt_repr ( & self , _struct_id : AdtId ) -> Arc < rust_ir:: AdtRepr < Interner > > {
60+ // FIXME: keep track of these
61+ Arc :: new ( rust_ir:: AdtRepr { c : false , packed : false , int : None } )
62+ }
63+ fn discriminant_type ( & self , _ty : chalk_ir:: Ty < Interner > ) -> chalk_ir:: Ty < Interner > {
64+ // FIXME: keep track of this
65+ chalk_ir:: TyKind :: Scalar ( chalk_ir:: Scalar :: Uint ( chalk_ir:: UintTy :: U32 ) ) . intern ( & Interner )
6166 }
6267 fn impl_datum ( & self , impl_id : ImplId ) -> Arc < ImplDatum > {
6368 self . db . impl_datum ( self . krate , impl_id)
@@ -457,6 +462,7 @@ fn well_known_trait_from_lang_attr(name: &str) -> Option<WellKnownTrait> {
457462 "fn" => WellKnownTrait :: Fn ,
458463 "unsize" => WellKnownTrait :: Unsize ,
459464 "coerce_unsized" => WellKnownTrait :: CoerceUnsized ,
465+ "discriminant_kind" => WellKnownTrait :: DiscriminantKind ,
460466 _ => return None ,
461467 } )
462468}
@@ -473,6 +479,7 @@ fn lang_attr_from_well_known_trait(attr: WellKnownTrait) -> &'static str {
473479 WellKnownTrait :: Unsize => "unsize" ,
474480 WellKnownTrait :: Unpin => "unpin" ,
475481 WellKnownTrait :: CoerceUnsized => "coerce_unsized" ,
482+ WellKnownTrait :: DiscriminantKind => "discriminant_kind" ,
476483 }
477484}
478485
0 commit comments