about summary refs log tree commit diff
path: root/tests/ui/missing_transmute_annotations.fixed
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/missing_transmute_annotations.fixed')
-rw-r--r--tests/ui/missing_transmute_annotations.fixed56
1 files changed, 24 insertions, 32 deletions
diff --git a/tests/ui/missing_transmute_annotations.fixed b/tests/ui/missing_transmute_annotations.fixed
index 7fe8063f40f..a3c94ab139e 100644
--- a/tests/ui/missing_transmute_annotations.fixed
+++ b/tests/ui/missing_transmute_annotations.fixed
@@ -9,6 +9,7 @@ extern crate macro_rules;
 macro_rules! local_bad_transmute {
     ($e:expr) => {
         std::mem::transmute::<[u16; 2], i32>($e)
+        //~^ ERROR: transmute used without annotations
     };
 }
 
@@ -17,55 +18,46 @@ fn bar(x: i32) -> i32 {
 }
 
 unsafe fn foo1() -> i32 {
-    std::mem::transmute::<[u16; 2], i32>([1u16, 2u16])
-    //~^ ERROR: transmute used without annotations
+    // Should not warn!
+    std::mem::transmute([1u16, 2u16])
 }
 
-unsafe fn foo2() -> i32 {
-    std::mem::transmute::<[u16; 2], i32>([1u16, 2u16])
-    //~^ ERROR: transmute used without annotations
-}
+// Should not warn!
+const _: i32 = unsafe { std::mem::transmute([1u16, 2u16]) };
 
-unsafe fn foo3() -> i32 {
-    std::mem::transmute::<[u16; 2], i32>([1u16, 2u16])
-    //~^ ERROR: transmute used without annotations
+#[repr(i32)]
+enum Foo {
+    A = 0,
 }
 
-unsafe fn foo4() -> i32 {
-    std::mem::transmute::<[u16; 2], i32>([1u16, 2u16])
+unsafe fn foo2() -> i32 {
+    let mut i: i32 = 0;
+    i = std::mem::transmute::<[u16; 2], i32>([1u16, 2u16]);
+    //~^ ERROR: transmute used without annotations
+    i = std::mem::transmute::<[u16; 2], i32>([1u16, 2u16]);
+    //~^ ERROR: transmute used without annotations
+    i = std::mem::transmute::<[u16; 2], i32>([1u16, 2u16]);
+    //~^ ERROR: transmute used without annotations
+    i = std::mem::transmute::<[u16; 2], i32>([1u16, 2u16]);
     //~^ ERROR: transmute used without annotations
-}
 
-unsafe fn foo5() -> i32 {
     let x: i32 = bar(std::mem::transmute::<[u16; 2], i32>([1u16, 2u16]));
     //~^ ERROR: transmute used without annotations
-    bar(std::mem::transmute::<[u16; 2], i32>([1u16, 2u16]))
+    bar(std::mem::transmute::<[u16; 2], i32>([1u16, 2u16]));
     //~^ ERROR: transmute used without annotations
-}
 
-unsafe fn foo6() -> i32 {
-    local_bad_transmute!([1u16, 2u16])
-    //~^ ERROR: transmute used without annotations
-}
+    i = local_bad_transmute!([1u16, 2u16]);
 
-unsafe fn foo7() -> i32 {
     // Should not warn.
-    bad_transmute!([1u16, 2u16])
-}
-
-#[repr(i32)]
-enum Foo {
-    A = 0,
-}
+    i = bad_transmute!([1u16, 2u16]);
 
-unsafe fn foo8() -> Foo {
-    std::mem::transmute::<i32, Foo>(0i32)
+    i = std::mem::transmute::<[i16; 2], i32>([0i16, 0i16]);
     //~^ ERROR: transmute used without annotations
-}
 
-unsafe fn foo9() -> i32 {
-    std::mem::transmute::<Foo, i32>(Foo::A)
+    i = std::mem::transmute::<Foo, i32>(Foo::A);
     //~^ ERROR: transmute used without annotations
+
+    i
 }
 
 fn main() {