rust/tests/ui/borrowck/issue-92157.rs
Eduardo Sánchez Muñoz c599761140 rustc_hir_analysis: add a helper to check function the signature mismatches
This function is now used to check `#[panic_handler]`, `start` lang item, `main`, `#[start]` and intrinsic functions.

The diagnosis produced are now closer to the ones produced by trait/impl method signature mismatch.
2023-09-19 18:15:23 +02:00

41 lines
751 B
Rust

#![feature(no_core)]
#![feature(lang_items)]
#![no_core]
#[cfg(target_os = "linux")]
#[link(name = "c")]
extern {}
#[lang = "start"]
fn start<T>(_main: fn() -> T, _argc: isize, _argv: *const *const u8) -> isize {
//~^ ERROR lang item `start` function has wrong type [E0308]
40+2
}
#[lang = "sized"]
pub trait Sized {}
#[lang = "copy"]
pub trait Copy {}
#[lang = "drop_in_place"]
#[allow(unconditional_recursion)]
pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
drop_in_place(to_drop)
}
#[lang = "add"]
trait Add<RHS> {
type Output;
fn add(self, other: RHS) -> Self::Output;
}
impl Add<isize> for isize {
type Output = isize;
fn add(self, other: isize) -> isize {
self + other
}
}
fn main() {}