about summary refs log tree commit diff
path: root/example
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2019-06-12 20:54:38 +0200
committerbjorn3 <bjorn3@users.noreply.github.com>2019-07-26 11:28:04 +0200
commitde32ddad23abbc831ae60d5efefab0df84e8910b (patch)
tree1c71f8ade410be7506733fdff2a254768e0955ca /example
parentbf3ec3be3e595780d842ac3069bb07f3c50f54b8 (diff)
downloadrust-de32ddad23abbc831ae60d5efefab0df84e8910b.tar.gz
rust-de32ddad23abbc831ae60d5efefab0df84e8910b.zip
[WIP] Basic i128 support
Diffstat (limited to 'example')
-rw-r--r--example/mini_core.rs8
-rw-r--r--example/mini_core_hello_world.rs136
2 files changed, 9 insertions, 135 deletions
diff --git a/example/mini_core.rs b/example/mini_core.rs
index 8c372450abd..745e86de485 100644
--- a/example/mini_core.rs
+++ b/example/mini_core.rs
@@ -144,6 +144,14 @@ impl Add for usize {
     }
 }
 
+impl Add for u128 {
+    type Output = Self;
+
+    fn add(self, rhs: Self) -> Self {
+        self + rhs
+    }
+}
+
 #[lang = "sub"]
 pub trait Sub<RHS = Self> {
     type Output;
diff --git a/example/mini_core_hello_world.rs b/example/mini_core_hello_world.rs
index 15f0442b624..23a92c73780 100644
--- a/example/mini_core_hello_world.rs
+++ b/example/mini_core_hello_world.rs
@@ -118,139 +118,5 @@ fn take_f32(_f: f32) {}
 fn take_unique(_u: Unique<()>) {}
 
 fn main() {
-    take_unique(Unique {
-        pointer: 0 as *const (),
-        _marker: PhantomData,
-    });
-    take_f32(0.1);
-
-    //return;
-
-    unsafe {
-        printf("Hello %s\n\0" as *const str as *const i8, "printf\0" as *const str as *const i8);
-
-        let hello: &[u8] = b"Hello\0" as &[u8; 6];
-        let ptr: *const u8 = hello as *const [u8] as *const u8;
-        puts(ptr);
-
-        let world: Box<&str> = box "World!\0";
-        puts(*world as *const str as *const u8);
-        world as Box<SomeTrait>;
-
-        assert_eq!(intrinsics::bitreverse(0b10101000u8), 0b00010101u8);
-
-        assert_eq!(intrinsics::bswap(0xabu8), 0xabu8);
-        assert_eq!(intrinsics::bswap(0xddccu16), 0xccddu16);
-        assert_eq!(intrinsics::bswap(0xffee_ddccu32), 0xccdd_eeffu32);
-        assert_eq!(intrinsics::bswap(0x1234_5678_ffee_ddccu64), 0xccdd_eeff_7856_3412u64);
-
-        assert_eq!(intrinsics::size_of_val(hello) as u8, 6);
-
-        let chars = &['C', 'h', 'a', 'r', 's'];
-        let chars = chars as &[char];
-        assert_eq!(intrinsics::size_of_val(chars) as u8, 4 * 5);
-
-        let a: &dyn SomeTrait = &"abc\0";
-        a.object_safe();
-
-        assert_eq!(intrinsics::size_of_val(a) as u8, 16);
-        assert_eq!(intrinsics::size_of_val(&0u32) as u8, 4);
-
-        assert_eq!(intrinsics::min_align_of::<u16>() as u8, 2);
-        assert_eq!(intrinsics::min_align_of_val(&a) as u8, intrinsics::min_align_of::<&str>() as u8);
-
-        assert!(!intrinsics::needs_drop::<u8>());
-        assert!(intrinsics::needs_drop::<NoisyDrop>());
-
-        Unique {
-            pointer: 0 as *const &str,
-            _marker: PhantomData,
-        } as Unique<dyn SomeTrait>;
-
-        struct MyDst<T: ?Sized>(T);
-
-        intrinsics::size_of_val(&MyDst([0u8; 4]) as &MyDst<[u8]>);
-
-        struct Foo {
-            x: u8,
-            y: !,
-        }
-
-        unsafe fn zeroed<T>() -> T {
-            intrinsics::init::<T>()
-        }
-
-        unsafe fn uninitialized<T>() -> T {
-            MaybeUninit { uninit: () }.value
-        }
-
-        zeroed::<(u8, u8)>();
-        #[allow(unreachable_code)]
-        {
-            if false {
-                zeroed::<!>();
-                zeroed::<Foo>();
-                uninitialized::<Foo>();
-            }
-        }
-    }
-
-    let _ = box NoisyDrop {
-        text: "Boxed outer got dropped!\0",
-        inner: NoisyDropInner,
-    } as Box<SomeTrait>;
-
-    const FUNC_REF: Option<fn()> = Some(main);
-    match FUNC_REF {
-        Some(_) => {},
-        None => assert!(false),
-    }
-
-    match Ordering::Less {
-        Ordering::Less => {},
-        _ => assert!(false),
-    }
-
-    [NoisyDropInner, NoisyDropInner];
-
-    let x = &[0u32, 42u32] as &[u32];
-    match x {
-        [] => assert_eq!(0u32, 1),
-        [_, ref y..] => assert_eq!(&x[1] as *const u32 as usize, &y[0] as *const u32 as usize),
-    }
-
-    assert_eq!(((|()| 42u8) as fn(()) -> u8)(()), 42);
-
-    extern {
-        #[linkage = "weak"]
-        static ABC: *const u8;
-    }
-
-    {
-        extern {
-            #[linkage = "weak"]
-            static ABC: *const u8;
-        }
-    }
-
-    unsafe { assert_eq!(ABC as usize, 0); }
-
-    &mut (|| Some(0 as *const ())) as &mut FnMut() -> Option<*const ()>;
-
-    // checked binops
-    let zeroi8 = 0i8;
-    let oneu8 = 1u8;
-    let onei8 = 1i8;
-    zeroi8 - 1;
-    oneu8 - 1;
-    zeroi8 - -2i8;
-    #[allow(unreachable_code)]
-    {
-        if false {
-            let minustwoi8 = -2i8;
-            oneu8 + 255;
-            onei8 + 127;
-            minustwoi8 - 127;
-        }
-    }
+    assert_eq!((1u128 + 2) as u16, 3);
 }