Skip to content

Commit 2e506c7

Browse files
committed
add a few more impls and things
1 parent a3c9d52 commit 2e506c7

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

libstd.chalk

+20-2
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,36 @@
55
// ?- load libstd.chalk
66
// ?- Vec<Box<i32>>: Clone
77

8+
trait Borrow<T> { }
89
trait Clone { }
910
trait Copy where Self: Clone { }
11+
trait Sized { }
1012

1113
struct i32 { }
1214
impl Copy for i32 { }
1315
impl Clone for i32 { }
16+
impl Sized for i32 { }
17+
18+
struct u32 { }
19+
impl Copy for u32 { }
20+
impl Clone for u32 { }
21+
impl Sized for u32 { }
1422

1523
struct Rc<T> { }
1624
impl<T> Clone for Rc<T> { }
25+
impl<T> Sized for Rc<T> { }
1726

1827
struct Box<T> { }
1928
impl<T> Clone for Box<T> where T: Clone { }
29+
impl<T> Sized for Rc<T> { }
30+
31+
// Meant to be [T]
32+
struct Slice<T> where T: Sized { }
33+
impl<T> Sized for Slice<T> { }
34+
35+
struct Vec<T> where T: Sized { }
36+
impl<T> Borrow<Slice<T>> for Vec<T> where T: Sized { }
37+
impl<T> Clone for Vec<T> where T: Clone, T: Sized { }
38+
impl<T> Sized for Vec<T> where T: Sized { }
2039

21-
struct Vec<T> { }
22-
impl<T> Clone for Vec<T> where T: Clone { }
40+
impl<T> Borrow<T> for T { }

0 commit comments

Comments
 (0)