Files
rust/tests/ui
bors 4f1be92153 Auto merge of #129753 - folkertdev:stabilize-const-extern-fn, r=RalfJung
stabilize `const_extern_fn`

closes https://github.com/rust-lang/rust/issues/64926

tracking issue: https://github.com/rust-lang/rust/issues/64926
reference PR: https://github.com/rust-lang/reference/pull/1596

## Stabilizaton Report

### Summary

Using `const extern "Rust"` and `const extern "C"` was already stabilized (since version 1.62.0, see https://github.com/rust-lang/rust/pull/95346). This PR stabilizes the other calling conventions: it is now possible to write  `const unsafe extern "calling-convention" fn` and `const extern "calling-convention" fn` for any supported calling convention:

```rust
const extern "C-unwind" fn foo1(val: u8) -> u8 { val + 1}
const extern "stdcall" fn foo2(val: u8) -> u8 { val + 1}
const unsafe extern "C-unwind" fn bar1(val: bool) -> bool { !val }
const unsafe extern "stdcall" fn bar2(val: bool) -> bool { !val }
```

This can be used to const-ify an `extern fn`, or conversely, to make a `const fn` callable from external code.

r? T-lang

cc `@RalfJung`
2024-09-14 23:47:59 +00:00
..
2024-07-28 03:11:54 +08:00
2024-07-29 21:47:19 -04:00
2024-05-02 19:42:31 -04:00
2024-07-18 00:00:04 +00:00
2024-08-28 23:32:40 +01:00
2024-09-03 09:19:29 +02:00
2024-07-19 23:27:42 +03:00
2024-08-10 12:07:17 +02:00
2024-04-21 15:43:43 -03:00
2024-08-09 22:02:23 -04:00
2024-09-13 02:43:49 +08:00
2024-08-10 12:07:17 +02:00
2024-08-28 23:32:40 +01:00
2024-08-02 11:34:54 +00:00
2024-09-05 06:37:38 -04:00
2024-06-01 09:40:46 +08:00
2024-06-21 19:00:18 -04:00
2024-09-09 19:39:43 -07:00
2024-07-12 03:22:32 +00:00
2024-09-06 10:32:48 -04:00
2024-04-29 14:53:38 +02:00
2024-08-18 19:46:53 +02:00
2024-05-20 11:13:10 -04:00
2024-08-10 12:07:17 +02:00
2024-08-18 19:46:53 +02:00
2024-05-28 12:31:12 +02:00
2024-08-02 11:34:54 +00:00
2024-09-14 18:07:06 +02:00
2024-08-02 11:34:54 +00:00
2024-08-03 07:57:31 -04:00
2024-08-18 19:46:53 +02:00
2024-09-09 19:39:43 -07:00
2024-09-09 19:39:43 -07:00
2024-08-31 23:56:45 +02:00
2024-09-03 14:36:21 +02:00
2024-07-22 22:51:53 +00:00
2024-08-18 19:46:53 +02:00
2024-05-21 20:16:39 +00:00
2024-06-25 18:06:22 +02:00

UI Tests

This folder contains rustc's UI tests.

Test Directives (Headers)

Typically, a UI test will have some test directives / headers which are special comments that tell compiletest how to build and intepret a test.

As part of an on-going effort to rewrite compiletest (see https://github.com/rust-lang/compiler-team/issues/536), a major change proposal to change legacy compiletest-style headers // <directive> to ui_test-style headers //@ <directive> was accepted (see https://github.com/rust-lang/compiler-team/issues/512.

An example directive is ignore-test. In legacy compiletest style, the header would be written as

// ignore-test

but in ui_test style, the header would be written as

//@ ignore-test

compiletest is changed to accept only //@ directives for UI tests (currently), and will reject and report an error if it encounters any comments // <content> that may be parsed as an legacy compiletest-style test header. To fix this, you should migrate to the ui_test-style header //@ <content>.