]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/default_type_parameter_struct_and_type_alias.rs
Remove defaults table and attach defaults directly to tyvars
[rust.git] / src / test / run-pass / default_type_parameter_struct_and_type_alias.rs
1 use std::marker::PhantomData;
2
3 trait TypeEq<A> {}
4 impl<A> TypeEq<A> for A {}
5
6 struct DeterministicHasher;
7 struct RandomHasher;
8
9
10 struct MyHashMap<K, V, H=DeterministicHasher> {
11     data: PhantomData<(K, V, H)>
12 }
13
14 impl<K, V, H> MyHashMap<K, V, H> {
15     fn new() -> MyHashMap<K, V, H> {
16         MyHashMap { data: PhantomData }
17     }
18 }
19
20 mod mystd {
21     use super::{MyHashMap, RandomHasher};
22     pub type HashMap<K, V, H=RandomHasher> = MyHashMap<K, V, H>;
23 }
24
25 fn try_me<H>(hash_map: mystd::HashMap<i32, i32, H>) {}
26
27 fn main() {
28     let hash_map = mystd::HashMap::new();
29     try_me(hash_map);
30 }