1
Fork 0

remove support for rustc_safe_intrinsic attribute; use rustc_intrinsic functions instead

This commit is contained in:
Ralf Jung 2024-11-07 08:59:43 +01:00
parent 78bb5ee79e
commit e3010e84db
42 changed files with 380 additions and 348 deletions

View file

@ -3,13 +3,15 @@ An invalid number of generic parameters was passed to an intrinsic function.
Erroneous code example:
```compile_fail,E0094
#![feature(intrinsics, rustc_attrs)]
#![feature(intrinsics)]
#![allow(internal_features)]
extern "rust-intrinsic" {
#[rustc_safe_intrinsic]
fn size_of<T, U>() -> usize; // error: intrinsic has wrong number
// of type parameters
#[rustc_intrinsic]
#[rustc_intrinsic_must_be_overridden]
fn size_of<T, U>() -> usize // error: intrinsic has wrong number
// of type parameters
{
loop {}
}
```
@ -18,11 +20,13 @@ and verify with the function declaration in the Rust source code.
Example:
```
#![feature(intrinsics, rustc_attrs)]
#![feature(intrinsics)]
#![allow(internal_features)]
extern "rust-intrinsic" {
#[rustc_safe_intrinsic]
fn size_of<T>() -> usize; // ok!
#[rustc_intrinsic]
#[rustc_intrinsic_must_be_overridden]
fn size_of<T>() -> usize // ok!
{
loop {}
}
```

View file

@ -4,12 +4,11 @@ You used a function or type which doesn't fit the requirements for where it was
used. Erroneous code examples:
```compile_fail
#![feature(intrinsics, rustc_attrs)]
#![feature(intrinsics)]
#![allow(internal_features)]
extern "rust-intrinsic" {
#[rustc_safe_intrinsic]
fn size_of<T>(); // error: intrinsic has wrong type
fn unreachable(); // error: intrinsic has wrong type
}
// or:
@ -41,12 +40,11 @@ impl Foo {
For the first code example, please check the function definition. Example:
```
#![feature(intrinsics, rustc_attrs)]
#![feature(intrinsics)]
#![allow(internal_features)]
extern "rust-intrinsic" {
#[rustc_safe_intrinsic]
fn size_of<T>() -> usize; // ok!
fn unreachable() -> !; // ok!
}
```