@@ -282,7 +282,7 @@ pub type SelectionResult<'tcx, T> = Result<Option<T>, SelectionError<'tcx>>;
282
282
/// ### The type parameter `N`
283
283
///
284
284
/// See explanation on `VtableImplData`.
285
- #[ derive( Clone ) ]
285
+ #[ derive( Clone , RustcEncodable , RustcDecodable ) ]
286
286
pub enum Vtable < ' tcx , N > {
287
287
/// Vtable identifying a particular impl.
288
288
VtableImpl ( VtableImplData < ' tcx , N > ) ,
@@ -327,14 +327,14 @@ pub enum Vtable<'tcx, N> {
327
327
/// is `Obligation`, as one might expect. During trans, however, this
328
328
/// is `()`, because trans only requires a shallow resolution of an
329
329
/// impl, and nested obligations are satisfied later.
330
- #[ derive( Clone , PartialEq , Eq ) ]
330
+ #[ derive( Clone , PartialEq , Eq , RustcEncodable , RustcDecodable ) ]
331
331
pub struct VtableImplData < ' tcx , N > {
332
332
pub impl_def_id : DefId ,
333
333
pub substs : & ' tcx Substs < ' tcx > ,
334
334
pub nested : Vec < N >
335
335
}
336
336
337
- #[ derive( Clone , PartialEq , Eq ) ]
337
+ #[ derive( Clone , PartialEq , Eq , RustcEncodable , RustcDecodable ) ]
338
338
pub struct VtableGeneratorData < ' tcx , N > {
339
339
pub closure_def_id : DefId ,
340
340
pub substs : ty:: ClosureSubsts < ' tcx > ,
@@ -343,7 +343,7 @@ pub struct VtableGeneratorData<'tcx, N> {
343
343
pub nested : Vec < N >
344
344
}
345
345
346
- #[ derive( Clone , PartialEq , Eq ) ]
346
+ #[ derive( Clone , PartialEq , Eq , RustcEncodable , RustcDecodable ) ]
347
347
pub struct VtableClosureData < ' tcx , N > {
348
348
pub closure_def_id : DefId ,
349
349
pub substs : ty:: ClosureSubsts < ' tcx > ,
@@ -352,20 +352,20 @@ pub struct VtableClosureData<'tcx, N> {
352
352
pub nested : Vec < N >
353
353
}
354
354
355
- #[ derive( Clone ) ]
355
+ #[ derive( Clone , RustcEncodable , RustcDecodable ) ]
356
356
pub struct VtableAutoImplData < N > {
357
357
pub trait_def_id : DefId ,
358
358
pub nested : Vec < N >
359
359
}
360
360
361
- #[ derive( Clone ) ]
361
+ #[ derive( Clone , RustcEncodable , RustcDecodable ) ]
362
362
pub struct VtableBuiltinData < N > {
363
363
pub nested : Vec < N >
364
364
}
365
365
366
366
/// A vtable for some object-safe trait `Foo` automatically derived
367
367
/// for the object type `Foo`.
368
- #[ derive( PartialEq , Eq , Clone ) ]
368
+ #[ derive( PartialEq , Eq , Clone , RustcEncodable , RustcDecodable ) ]
369
369
pub struct VtableObjectData < ' tcx , N > {
370
370
/// `Foo` upcast to the obligation trait. This will be some supertrait of `Foo`.
371
371
pub upcast_trait_ref : ty:: PolyTraitRef < ' tcx > ,
@@ -378,7 +378,7 @@ pub struct VtableObjectData<'tcx, N> {
378
378
pub nested : Vec < N > ,
379
379
}
380
380
381
- #[ derive( Clone , PartialEq , Eq ) ]
381
+ #[ derive( Clone , PartialEq , Eq , RustcEncodable , RustcDecodable ) ]
382
382
pub struct VtableFnPointerData < ' tcx , N > {
383
383
pub fn_ty : Ty < ' tcx > ,
384
384
pub nested : Vec < N >
0 commit comments