about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authoryanglsh <yanglsh@shanghaitech.edu.cn>2025-08-25 08:20:01 +0800
committeryanglsh <yanglsh@shanghaitech.edu.cn>2025-09-12 09:09:44 +0800
commit066a9794dff5d2976f77cd54bac8d6ee8aaa6c6b (patch)
treefddcd2eb628c77916100133d237ddb62a407026c /tests
parent368b2355797b13511776f0a35ec4864468b87ece (diff)
downloadrust-066a9794dff5d2976f77cd54bac8d6ee8aaa6c6b.tar.gz
rust-066a9794dff5d2976f77cd54bac8d6ee8aaa6c6b.zip
fix: `invalid_upcast_comparisons` wrongly unmangled macros
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/invalid_upcast_comparisons.rs12
-rw-r--r--tests/ui/invalid_upcast_comparisons.stderr8
2 files changed, 19 insertions, 1 deletions
diff --git a/tests/ui/invalid_upcast_comparisons.rs b/tests/ui/invalid_upcast_comparisons.rs
index 4f3194869f4..88ecca65e15 100644
--- a/tests/ui/invalid_upcast_comparisons.rs
+++ b/tests/ui/invalid_upcast_comparisons.rs
@@ -133,3 +133,15 @@ fn main() {
 
     -5 == (u32 as i32);
 }
+
+fn issue15662() {
+    macro_rules! add_one {
+        ($x:expr) => {
+            $x + 1
+        };
+    }
+
+    let x: u8 = 1;
+    (add_one!(x) as u32) > 300;
+    //~^ invalid_upcast_comparisons
+}
diff --git a/tests/ui/invalid_upcast_comparisons.stderr b/tests/ui/invalid_upcast_comparisons.stderr
index ef36f18eabc..cc042a7c4b0 100644
--- a/tests/ui/invalid_upcast_comparisons.stderr
+++ b/tests/ui/invalid_upcast_comparisons.stderr
@@ -163,5 +163,11 @@ error: because of the numeric bounds on `u8` prior to casting, this expression i
 LL |     -5 >= (u8 as i32);
    |     ^^^^^^^^^^^^^^^^^
 
-error: aborting due to 27 previous errors
+error: because of the numeric bounds on `add_one!(x)` prior to casting, this expression is always false
+  --> tests/ui/invalid_upcast_comparisons.rs:145:5
+   |
+LL |     (add_one!(x) as u32) > 300;
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 28 previous errors