mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-11-03 22:49:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			771 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			771 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
//@ run-pass
 | 
						|
 | 
						|
//@ aux-build:cross_crates_defaults.rs
 | 
						|
 | 
						|
#![feature(specialization)] //~ WARN the feature `specialization` is incomplete
 | 
						|
 | 
						|
extern crate cross_crates_defaults;
 | 
						|
 | 
						|
use cross_crates_defaults::*;
 | 
						|
 | 
						|
struct LocalDefault;
 | 
						|
struct LocalOverride;
 | 
						|
 | 
						|
impl Foo for LocalDefault {}
 | 
						|
 | 
						|
impl Foo for LocalOverride {
 | 
						|
    fn foo(&self) -> bool { true }
 | 
						|
}
 | 
						|
 | 
						|
fn test_foo() {
 | 
						|
    assert!(!0i8.foo());
 | 
						|
    assert!(!0i32.foo());
 | 
						|
    assert!(0i64.foo());
 | 
						|
 | 
						|
    assert!(!LocalDefault.foo());
 | 
						|
    assert!(LocalOverride.foo());
 | 
						|
}
 | 
						|
 | 
						|
fn test_bar() {
 | 
						|
    assert!(0u8.bar() == 0);
 | 
						|
    assert!(0i32.bar() == 1);
 | 
						|
    assert!("hello".bar() == 0);
 | 
						|
    assert!(vec![()].bar() == 2);
 | 
						|
    assert!(vec![0i32].bar() == 2);
 | 
						|
    assert!(vec![0i64].bar() == 3);
 | 
						|
}
 | 
						|
 | 
						|
fn main() {
 | 
						|
    test_foo();
 | 
						|
    test_bar();
 | 
						|
}
 |