diff --git a/src/librustc_codegen_llvm/debuginfo/metadata.rs b/src/librustc_codegen_llvm/debuginfo/metadata.rs index 19ada960db3fa2c4ca3d419a31fa59bf1b02fe52..ba1e3f5960c8596b0d4c484aff8f703fd986d8ef 100644 --- a/src/librustc_codegen_llvm/debuginfo/metadata.rs +++ b/src/librustc_codegen_llvm/debuginfo/metadata.rs @@ -1361,8 +1361,11 @@ fn compute_field_path<'a, 'tcx>(cx: &CodegenCx<'a, 'tcx>, let niche_value = if i == dataful_variant { None } else { - Some((i.wrapping_sub(*niche_variants.start()) as u128) - .wrapping_add(niche_start) as u64) + let niche = (i as u128) + .wrapping_sub(*niche_variants.start() as u128) + .wrapping_add(niche_start); + assert_eq!(niche as u64 as u128, niche); + Some(niche as u64) }; MemberDescription {