|
2 | 2 | #![no_core]
|
3 | 3 | #![allow(internal_features)]
|
4 | 4 |
|
| 5 | +#[lang = "pointee_sized"] |
| 6 | +pub trait PointeeSized {} |
| 7 | + |
| 8 | +#[lang = "meta_sized"] |
| 9 | +pub trait MetaSized: PointeeSized {} |
| 10 | + |
5 | 11 | #[lang = "sized"]
|
6 |
| -pub trait Sized {} |
| 12 | +pub trait Sized: MetaSized {} |
7 | 13 |
|
8 | 14 | #[lang = "copy"]
|
9 |
| -pub unsafe trait Copy {} |
| 15 | +pub trait Copy {} |
10 | 16 |
|
11 |
| -unsafe impl Copy for bool {} |
12 |
| -unsafe impl Copy for u8 {} |
13 |
| -unsafe impl Copy for u16 {} |
14 |
| -unsafe impl Copy for u32 {} |
15 |
| -unsafe impl Copy for u64 {} |
16 |
| -unsafe impl Copy for usize {} |
17 |
| -unsafe impl Copy for i8 {} |
18 |
| -unsafe impl Copy for i16 {} |
19 |
| -unsafe impl Copy for i32 {} |
20 |
| -unsafe impl Copy for isize {} |
21 |
| -unsafe impl Copy for f32 {} |
22 |
| -unsafe impl Copy for f64 {} |
23 |
| -unsafe impl Copy for char {} |
24 |
| -unsafe impl<'a, T: ?Sized> Copy for &'a T {} |
25 |
| -unsafe impl<T: ?Sized> Copy for *const T {} |
26 |
| -unsafe impl<T: ?Sized> Copy for *mut T {} |
| 17 | +impl Copy for bool {} |
| 18 | +impl Copy for u8 {} |
| 19 | +impl Copy for u16 {} |
| 20 | +impl Copy for u32 {} |
| 21 | +impl Copy for u64 {} |
| 22 | +impl Copy for usize {} |
| 23 | +impl Copy for i8 {} |
| 24 | +impl Copy for i16 {} |
| 25 | +impl Copy for i32 {} |
| 26 | +impl Copy for isize {} |
| 27 | +impl Copy for f32 {} |
| 28 | +impl Copy for f64 {} |
| 29 | +impl Copy for char {} |
| 30 | +impl<'a, T: ?Sized> Copy for &'a T {} |
| 31 | +impl<T: ?Sized> Copy for *const T {} |
| 32 | +impl<T: ?Sized> Copy for *mut T {} |
27 | 33 |
|
28 | 34 | pub mod libc {
|
29 | 35 | #[link(name = "c")]
|
30 |
| - extern "C" { |
| 36 | + unsafe extern "C" { |
31 | 37 | pub fn puts(s: *const u8) -> i32;
|
32 | 38 | pub fn printf(format: *const i8, ...) -> i32;
|
33 | 39 | pub fn malloc(size: usize) -> *mut u8;
|
|
0 commit comments