Unnamed repository; edit this file 'description' to name the repository.
Change comparsion for checking if number is negative to include 128
Reason: The last byte in Little Endian representation of negative integers start at 128 (Ox80) till 255 (OxFF). The comparison before the fix didn't check for 128 which made is_negative variable as false.
dfireBird 2023-06-22
parent 85493df · commit b801792
-rw-r--r--crates/hir-ty/src/mir/eval.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/crates/hir-ty/src/mir/eval.rs b/crates/hir-ty/src/mir/eval.rs
index 9acf9d39e5..28b6066c19 100644
--- a/crates/hir-ty/src/mir/eval.rs
+++ b/crates/hir-ty/src/mir/eval.rs
@@ -2122,7 +2122,7 @@ impl Evaluator<'_> {
}
pub fn pad16(x: &[u8], is_signed: bool) -> [u8; 16] {
- let is_negative = is_signed && x.last().unwrap_or(&0) > &128;
+ let is_negative = is_signed && x.last().unwrap_or(&0) > &127;
let fill_with = if is_negative { 255 } else { 0 };
x.iter()
.copied()