@@ -17,6 +17,9 @@ pub trait Sized {}
17
17
#[ lang = "destruct" ]
18
18
pub trait Destruct { }
19
19
20
+ #[ lang = "tuple_trait" ]
21
+ pub trait Tuple { }
22
+
20
23
#[ lang = "unsize" ]
21
24
pub trait Unsize < T : ?Sized > { }
22
25
@@ -396,7 +399,7 @@ pub struct PhantomData<T: ?Sized>;
396
399
397
400
#[ lang = "fn_once" ]
398
401
#[ rustc_paren_sugar]
399
- pub trait FnOnce < Args > {
402
+ pub trait FnOnce < Args : Tuple > {
400
403
#[ lang = "fn_once_output" ]
401
404
type Output ;
402
405
@@ -405,7 +408,7 @@ pub trait FnOnce<Args> {
405
408
406
409
#[ lang = "fn_mut" ]
407
410
#[ rustc_paren_sugar]
408
- pub trait FnMut < Args > : FnOnce < Args > {
411
+ pub trait FnMut < Args : Tuple > : FnOnce < Args > {
409
412
extern "rust-call" fn call_mut ( & mut self , args : Args ) -> Self :: Output ;
410
413
}
411
414
@@ -418,8 +421,8 @@ pub fn panic(_msg: &'static str) -> ! {
418
421
}
419
422
}
420
423
421
- #[ lang = "panic_no_unwind " ]
422
- fn panic_no_unwind ( ) -> ! {
424
+ #[ lang = "panic_cannot_unwind " ]
425
+ fn panic_cannot_unwind ( ) -> ! {
423
426
unsafe {
424
427
libc:: puts ( "Panicking\n \0 " as * const str as * const u8 ) ;
425
428
intrinsics:: abort ( ) ;
@@ -531,16 +534,22 @@ pub mod intrinsics {
531
534
use crate :: Sized ;
532
535
533
536
extern "rust-intrinsic" {
537
+ #[ rustc_safe_intrinsic]
534
538
pub fn abort ( ) -> !;
539
+ #[ rustc_safe_intrinsic]
535
540
pub fn size_of < T > ( ) -> usize ;
536
541
pub fn size_of_val < T : ?Sized > ( val : * const T ) -> usize ;
542
+ #[ rustc_safe_intrinsic]
537
543
pub fn min_align_of < T > ( ) -> usize ;
538
544
pub fn min_align_of_val < T : ?Sized > ( val : * const T ) -> usize ;
539
545
pub fn copy < T > ( src : * const T , dst : * mut T , count : usize ) ;
540
546
pub fn transmute < T , U > ( e : T ) -> U ;
541
547
pub fn ctlz_nonzero < T > ( x : T ) -> T ;
548
+ #[ rustc_safe_intrinsic]
542
549
pub fn needs_drop < T : ?Sized > ( ) -> bool ;
550
+ #[ rustc_safe_intrinsic]
543
551
pub fn bitreverse < T > ( x : T ) -> T ;
552
+ #[ rustc_safe_intrinsic]
544
553
pub fn bswap < T > ( x : T ) -> T ;
545
554
pub fn write_bytes < T > ( dst : * mut T , val : u8 , count : usize ) ;
546
555
pub fn unreachable ( ) -> !;
0 commit comments