]> git.lizzy.rs Git - rust.git/blob - src/test/ui/specialization/cross-crate-defaults.rs
warn against 'specialization' feature
[rust.git] / src / test / ui / specialization / cross-crate-defaults.rs
1 // run-pass
2
3 // aux-build:cross_crates_defaults.rs
4
5 #![feature(specialization)] //~ WARN the feature `specialization` is incomplete
6
7 extern crate cross_crates_defaults;
8
9 use cross_crates_defaults::*;
10
11 struct LocalDefault;
12 struct LocalOverride;
13
14 impl Foo for LocalDefault {}
15
16 impl Foo for LocalOverride {
17     fn foo(&self) -> bool { true }
18 }
19
20 fn test_foo() {
21     assert!(!0i8.foo());
22     assert!(!0i32.foo());
23     assert!(0i64.foo());
24
25     assert!(!LocalDefault.foo());
26     assert!(LocalOverride.foo());
27 }
28
29 fn test_bar() {
30     assert!(0u8.bar() == 0);
31     assert!(0i32.bar() == 1);
32     assert!("hello".bar() == 0);
33     assert!(vec![()].bar() == 2);
34     assert!(vec![0i32].bar() == 2);
35     assert!(vec![0i64].bar() == 3);
36 }
37
38 fn main() {
39     test_foo();
40     test_bar();
41 }