Skip to content

Commit d3ff9ac

Browse files
authored
2 parents c7ca540 + 84b056d commit d3ff9ac

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

compiler/rustc_middle/src/ty/codec.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ use rustc_data_structures::fx::FxHashMap;
1818
use rustc_hir::def_id::{CrateNum, DefId};
1919
use rustc_serialize::{Decodable, Decoder, Encodable, Encoder};
2020
use rustc_span::Span;
21-
use std::convert::{TryFrom, TryInto};
2221
use std::hash::Hash;
2322
use std::intrinsics;
2423
use std::marker::DiscriminantKind;
@@ -81,7 +80,8 @@ where
8180
E: TyEncoder<'tcx>,
8281
M: for<'b> Fn(&'b mut E) -> &'b mut FxHashMap<T, usize>,
8382
T: EncodableWithShorthand<'tcx, E>,
84-
<T::Variant as DiscriminantKind>::Discriminant: Ord + TryFrom<usize>,
83+
// The discriminant and shorthand must have the same size.
84+
T::Variant: DiscriminantKind<Discriminant = isize>,
8585
{
8686
let existing_shorthand = cache(encoder).get(value).copied();
8787
if let Some(shorthand) = existing_shorthand {
@@ -97,7 +97,7 @@ where
9797
// The shorthand encoding uses the same usize as the
9898
// discriminant, with an offset so they can't conflict.
9999
let discriminant = intrinsics::discriminant_value(variant);
100-
assert!(discriminant < SHORTHAND_OFFSET.try_into().ok().unwrap());
100+
assert!(SHORTHAND_OFFSET > discriminant as usize);
101101

102102
let shorthand = start + SHORTHAND_OFFSET;
103103

0 commit comments

Comments
 (0)