]> git.lizzy.rs Git - rust.git/blob - src/test/ui/feature-gates/feature-gate-abi.rs
Auto merge of #85166 - mbhall88:file-prefix, r=dtolnay
[rust.git] / src / test / ui / feature-gates / feature-gate-abi.rs
1 // gate-test-intrinsics
2 // gate-test-platform_intrinsics
3 // gate-test-abi_efiapi
4 // compile-flags: --crate-type=rlib
5
6 #![feature(no_core, lang_items)]
7 #![no_core]
8
9 #[lang="sized"]
10 trait Sized { }
11
12 // Functions
13 extern "rust-intrinsic" fn f1() {} //~ ERROR intrinsics are subject to change
14                                    //~^ ERROR intrinsic must be in
15 extern "platform-intrinsic" fn f2() {} //~ ERROR platform intrinsics are experimental
16                                        //~^ ERROR intrinsic must be in
17 extern "rust-call" fn f4(_: ()) {} //~ ERROR rust-call ABI is subject to change
18 extern "efiapi" fn f10() {} //~ ERROR efiapi ABI is experimental and subject to change
19
20 // Methods in trait definition
21 trait Tr {
22     extern "rust-intrinsic" fn m1(); //~ ERROR intrinsics are subject to change
23                                      //~^ ERROR intrinsic must be in
24     extern "platform-intrinsic" fn m2(); //~ ERROR platform intrinsics are experimental
25                                          //~^ ERROR intrinsic must be in
26     extern "rust-call" fn m4(_: ()); //~ ERROR rust-call ABI is subject to change
27     extern "efiapi" fn m10(); //~ ERROR efiapi ABI is experimental and subject to change
28
29     extern "rust-call" fn dm4(_: ()) {} //~ ERROR rust-call ABI is subject to change
30     extern "efiapi" fn dm10() {} //~ ERROR efiapi ABI is experimental and subject to change
31 }
32
33 struct S;
34
35 // Methods in trait impl
36 impl Tr for S {
37     extern "rust-intrinsic" fn m1() {} //~ ERROR intrinsics are subject to change
38                                        //~^ ERROR intrinsic must be in
39     extern "platform-intrinsic" fn m2() {} //~ ERROR platform intrinsics are experimental
40                                            //~^ ERROR intrinsic must be in
41     extern "rust-call" fn m4(_: ()) {} //~ ERROR rust-call ABI is subject to change
42     extern "efiapi" fn m10() {} //~ ERROR efiapi ABI is experimental and subject to change
43 }
44
45 // Methods in inherent impl
46 impl S {
47     extern "rust-intrinsic" fn im1() {} //~ ERROR intrinsics are subject to change
48                                         //~^ ERROR intrinsic must be in
49     extern "platform-intrinsic" fn im2() {} //~ ERROR platform intrinsics are experimental
50                                             //~^ ERROR intrinsic must be in
51     extern "rust-call" fn im4(_: ()) {} //~ ERROR rust-call ABI is subject to change
52     extern "efiapi" fn im10() {} //~ ERROR efiapi ABI is experimental and subject to change
53 }
54
55 // Function pointer types
56 type A1 = extern "rust-intrinsic" fn(); //~ ERROR intrinsics are subject to change
57 type A2 = extern "platform-intrinsic" fn(); //~ ERROR platform intrinsics are experimental
58 type A4 = extern "rust-call" fn(_: ()); //~ ERROR rust-call ABI is subject to change
59 type A10 = extern "efiapi" fn(); //~ ERROR efiapi ABI is experimental and subject to change
60
61 // Foreign modules
62 extern "rust-intrinsic" {} //~ ERROR intrinsics are subject to change
63 extern "platform-intrinsic" {} //~ ERROR platform intrinsics are experimental
64 extern "rust-call" {} //~ ERROR rust-call ABI is subject to change
65 extern "efiapi" {} //~ ERROR efiapi ABI is experimental and subject to change