Do not ignore uninhabited types for function-call ABI purposes. (Remove BackendRepr::Uninhabited) Accepted MCP: https://github.com/rust-lang/compiler-team/issues/832 Fixes #135802 Do not consider the inhabitedness of a type for function call ABI purposes. * Remove the [`rustc_abi::BackendRepr::Uninhabited`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_abi/enum.BackendRepr.html) variant * Instead calculate the `BackendRepr` of uninhabited types "normally" (as though they were not uninhabited "at the top level", but still considering inhabitedness of variants to determine enum layout, etc) * Add an `uninhabited: bool` field to [`rustc_abi::LayoutData`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_abi/struct.LayoutData.html) so inhabitedness of a `LayoutData` can still be queried when necessary (e.g. when determining if an enum variant needs a tag value allocated to it). This should not affect type layouts (size/align/field offset); this should only affect function call ABI, and only of uninhabited types. cc ``@RalfJung``
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 interpret a test.
As part of an ongoing 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 a legacy compiletest-style
test header. To fix this, you should migrate to the ui_test-style header
//@ <content>.