]> git.lizzy.rs Git - rust.git/commitdiff
`u128` truncation and sign extension are not just interpreter related
authoroli <github35764891676564198441@oli-obk.de>
Wed, 4 Nov 2020 13:41:58 +0000 (13:41 +0000)
committeroli <github35764891676564198441@oli-obk.de>
Wed, 4 Nov 2020 13:41:58 +0000 (13:41 +0000)
src/base.rs

index 2097f9d288705b822a4eab86fd7bb33cd3269859..bfe5514b6d3eab4a096f4007c00cbbc269c89166 100644 (file)
@@ -585,10 +585,7 @@ fn is_fat_ptr<'tcx>(
                                     .discriminant_for_variant(fx.tcx, *index)
                                     .unwrap();
                                 let discr = if discr.ty.is_signed() {
-                                    rustc_middle::mir::interpret::sign_extend(
-                                        discr.val,
-                                        fx.layout_of(discr.ty).size,
-                                    )
+                                    fx.layout_of(discr.ty).size.sign_extend(discr.val)
                                 } else {
                                     discr.val
                                 };