about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLaurențiu Nicola <lnicola@dend.ro>2023-10-02 10:47:18 +0300
committerLaurențiu Nicola <lnicola@dend.ro>2023-10-02 10:47:18 +0300
commit084ee934b8fe9bcec5a05c724805e48875e09d2b (patch)
treef7f5df3b5e4860d2d8dff57da8ab74f8ba8406b7
parent0840038f02daec6ba3238f05d8caa037d28701a0 (diff)
downloadrust-084ee934b8fe9bcec5a05c724805e48875e09d2b.tar.gz
rust-084ee934b8fe9bcec5a05c724805e48875e09d2b.zip
Strip base prefix in layout_scalar_valid_range
-rw-r--r--crates/hir-ty/src/layout/adt.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/crates/hir-ty/src/layout/adt.rs b/crates/hir-ty/src/layout/adt.rs
index 457b227427e..c2778b9a8ea 100644
--- a/crates/hir-ty/src/layout/adt.rs
+++ b/crates/hir-ty/src/layout/adt.rs
@@ -120,14 +120,14 @@ fn layout_scalar_valid_range(db: &dyn HirDatabase, def: AdtId) -> (Bound<u128>,
         for tree in attr {
             if let Some(it) = tree.token_trees.first() {
                 let text = it.to_string().replace('_', "");
-                let base = match text.as_bytes() {
-                    [b'0', b'x', ..] => 16,
-                    [b'0', b'o', ..] => 8,
-                    [b'0', b'b', ..] => 2,
-                    _ => 10,
+                let (text, base) = match text.as_bytes() {
+                    [b'0', b'x', ..] => (&text[2..], 16),
+                    [b'0', b'o', ..] => (&text[2..], 8),
+                    [b'0', b'b', ..] => (&text[2..], 2),
+                    _ => (&*text, 10),
                 };
 
-                if let Ok(it) = u128::from_str_radix(&text, base) {
+                if let Ok(it) = u128::from_str_radix(text, base) {
                     return Bound::Included(it);
                 }
             }