@@ -154,14 +154,16 @@ pub trait CrateStore<'tcx> {
154154 fn item_variances ( & self , def : DefId ) -> ty:: ItemVariances ;
155155 fn repr_attrs ( & self , def : DefId ) -> Vec < attr:: ReprAttr > ;
156156 fn item_type < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId )
157- -> ty :: TypeScheme < ' tcx > ;
157+ -> Ty < ' tcx > ;
158158 fn visible_parent_map < ' a > ( & ' a self ) -> :: std:: cell:: RefMut < ' a , DefIdMap < DefId > > ;
159159 fn item_name ( & self , def : DefId ) -> ast:: Name ;
160160 fn opt_item_name ( & self , def : DefId ) -> Option < ast:: Name > ;
161161 fn item_predicates < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId )
162162 -> ty:: GenericPredicates < ' tcx > ;
163163 fn item_super_predicates < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId )
164164 -> ty:: GenericPredicates < ' tcx > ;
165+ fn item_generics < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId )
166+ -> & ' tcx ty:: Generics < ' tcx > ;
165167 fn item_attrs ( & self , def_id : DefId ) -> Vec < ast:: Attribute > ;
166168 fn trait_def < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId ) -> ty:: TraitDef < ' tcx > ;
167169 fn adt_def < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId ) -> ty:: AdtDefMaster < ' tcx > ;
@@ -187,8 +189,7 @@ pub trait CrateStore<'tcx> {
187189 fn impl_parent ( & self , impl_def_id : DefId ) -> Option < DefId > ;
188190
189191 // trait/impl-item info
190- fn trait_of_item < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def_id : DefId )
191- -> Option < DefId > ;
192+ fn trait_of_item ( & self , def_id : DefId ) -> Option < DefId > ;
192193 fn impl_or_trait_item < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId )
193194 -> Option < ty:: ImplOrTraitItem < ' tcx > > ;
194195
@@ -334,7 +335,7 @@ impl<'tcx> CrateStore<'tcx> for DummyCrateStore {
334335 fn item_variances ( & self , def : DefId ) -> ty:: ItemVariances { bug ! ( "item_variances" ) }
335336 fn repr_attrs ( & self , def : DefId ) -> Vec < attr:: ReprAttr > { bug ! ( "repr_attrs" ) }
336337 fn item_type < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId )
337- -> ty :: TypeScheme < ' tcx > { bug ! ( "item_type" ) }
338+ -> Ty < ' tcx > { bug ! ( "item_type" ) }
338339 fn visible_parent_map < ' a > ( & ' a self ) -> :: std:: cell:: RefMut < ' a , DefIdMap < DefId > > {
339340 bug ! ( "visible_parent_map" )
340341 }
@@ -344,6 +345,8 @@ impl<'tcx> CrateStore<'tcx> for DummyCrateStore {
344345 -> ty:: GenericPredicates < ' tcx > { bug ! ( "item_predicates" ) }
345346 fn item_super_predicates < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId )
346347 -> ty:: GenericPredicates < ' tcx > { bug ! ( "item_super_predicates" ) }
348+ fn item_generics < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId )
349+ -> & ' tcx ty:: Generics < ' tcx > { bug ! ( "item_generics" ) }
347350 fn item_attrs ( & self , def_id : DefId ) -> Vec < ast:: Attribute > { bug ! ( "item_attrs" ) }
348351 fn trait_def < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId ) -> ty:: TraitDef < ' tcx >
349352 { bug ! ( "trait_def" ) }
@@ -379,8 +382,7 @@ impl<'tcx> CrateStore<'tcx> for DummyCrateStore {
379382 fn impl_parent ( & self , def : DefId ) -> Option < DefId > { bug ! ( "impl_parent" ) }
380383
381384 // trait/impl-item info
382- fn trait_of_item < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def_id : DefId )
383- -> Option < DefId > { bug ! ( "trait_of_item" ) }
385+ fn trait_of_item ( & self , def_id : DefId ) -> Option < DefId > { bug ! ( "trait_of_item" ) }
384386 fn impl_or_trait_item < ' a > ( & self , tcx : TyCtxt < ' a , ' tcx , ' tcx > , def : DefId )
385387 -> Option < ty:: ImplOrTraitItem < ' tcx > > { bug ! ( "impl_or_trait_item" ) }
386388
@@ -583,7 +585,7 @@ pub mod tls {
583585 pub trait DecodingContext < ' tcx > {
584586 fn tcx < ' a > ( & ' a self ) -> TyCtxt < ' a , ' tcx , ' tcx > ;
585587 fn decode_ty ( & self , decoder : & mut OpaqueDecoder ) -> ty:: Ty < ' tcx > ;
586- fn decode_substs ( & self , decoder : & mut OpaqueDecoder ) -> Substs < ' tcx > ;
588+ fn decode_substs ( & self , decoder : & mut OpaqueDecoder ) -> & ' tcx Substs < ' tcx > ;
587589 fn translate_def_id ( & self , def_id : DefId ) -> DefId ;
588590 }
589591
0 commit comments