@@ -2228,18 +2228,15 @@ impl ClashingExternDeclarations {
2228
2228
} ;
2229
2229
2230
2230
match ( a_kind, b_kind) {
2231
- ( Adt ( _ , a_substs) , Adt ( _ , b_substs) ) => {
2231
+ ( Adt ( a_def , a_substs) , Adt ( b_def , b_substs) ) => {
2232
2232
let a = a. subst ( cx. tcx , a_substs) ;
2233
2233
let b = b. subst ( cx. tcx , b_substs) ;
2234
2234
debug ! ( "Comparing {:?} and {:?}" , a, b) ;
2235
2235
2236
- if let ( Adt ( a_def, ..) , Adt ( b_def, ..) ) = ( & a. kind , & b. kind ) {
2237
- // Grab a flattened representation of all fields.
2238
- let a_fields =
2239
- a_def. variants . iter ( ) . flat_map ( |v| v. fields . iter ( ) ) ;
2240
- let b_fields =
2241
- b_def. variants . iter ( ) . flat_map ( |v| v. fields . iter ( ) ) ;
2242
- compare_layouts ( a, b)
2236
+ // Grab a flattened representation of all fields.
2237
+ let a_fields = a_def. variants . iter ( ) . flat_map ( |v| v. fields . iter ( ) ) ;
2238
+ let b_fields = b_def. variants . iter ( ) . flat_map ( |v| v. fields . iter ( ) ) ;
2239
+ compare_layouts ( a, b)
2243
2240
&& a_fields. eq_by (
2244
2241
b_fields,
2245
2242
|& ty:: FieldDef { did : a_did, .. } ,
@@ -2253,9 +2250,6 @@ impl ClashingExternDeclarations {
2253
2250
)
2254
2251
} ,
2255
2252
)
2256
- } else {
2257
- unreachable ! ( )
2258
- }
2259
2253
}
2260
2254
( Array ( a_ty, a_const) , Array ( b_ty, b_const) ) => {
2261
2255
// For arrays, we also check the constness of the type.
0 commit comments