| #![allow(incomplete_features)] | |
| #![feature(specialization)] | |
| trait IsUnit { | |
| fn is_unit() -> bool; | |
| } | |
| impl<T> IsUnit for T { | |
| default fn is_unit() -> bool { | |
| false | |
| } | |
| } | |
| impl IsUnit for () { | |
| fn is_unit() -> bool { | |
| true | |
| } | |
| } | |
| fn specialization() -> (bool, bool) { | |
| (i32::is_unit(), <()>::is_unit()) | |
| } | |
| fn main() { | |
| assert_eq!(specialization(), (false, true)); | |
| } |