@@ -2146,6 +2146,7 @@ impl<'a, 'gcx, 'tcx> AdtDef {
2146
2146
debug ! ( "found non-exhaustive variant list for {:?}" , did) ;
2147
2147
flags = flags | AdtFlags :: IS_VARIANT_LIST_NON_EXHAUSTIVE ;
2148
2148
}
2149
+
2149
2150
flags |= match kind {
2150
2151
AdtKind :: Enum => AdtFlags :: IS_ENUM ,
2151
2152
AdtKind :: Union => AdtFlags :: IS_UNION ,
@@ -2299,21 +2300,25 @@ impl<'a, 'gcx, 'tcx> AdtDef {
2299
2300
self . variants . iter ( ) . all ( |v| v. fields . is_empty ( ) )
2300
2301
}
2301
2302
2303
+ /// Return a `VariantDef` given a variant id.
2302
2304
pub fn variant_with_id ( & self , vid : DefId ) -> & VariantDef {
2303
2305
self . variants . iter ( ) . find ( |v| v. def_id == vid)
2304
2306
. expect ( "variant_with_id: unknown variant" )
2305
2307
}
2306
2308
2309
+ /// Return a `VariantDef` given a constructor id.
2307
2310
pub fn variant_with_ctor_id ( & self , cid : DefId ) -> & VariantDef {
2308
2311
self . variants . iter ( ) . find ( |v| v. ctor_def_id == Some ( cid) )
2309
2312
. expect ( "variant_with_ctor_id: unknown variant" )
2310
2313
}
2311
2314
2315
+ /// Return the index of `VariantDef` given a variant id.
2312
2316
pub fn variant_index_with_id ( & self , vid : DefId ) -> VariantIdx {
2313
2317
self . variants . iter_enumerated ( ) . find ( |( _, v) | v. def_id == vid)
2314
2318
. expect ( "variant_index_with_id: unknown variant" ) . 0
2315
2319
}
2316
2320
2321
+ /// Return the index of `VariantDef` given a constructor id.
2317
2322
pub fn variant_index_with_ctor_id ( & self , cid : DefId ) -> VariantIdx {
2318
2323
self . variants . iter_enumerated ( ) . find ( |( _, v) | v. ctor_def_id == Some ( cid) )
2319
2324
. expect ( "variant_index_with_ctor_id: unknown variant" ) . 0
0 commit comments