File tree Expand file tree Collapse file tree 3 files changed +25
-16
lines changed Expand file tree Collapse file tree 3 files changed +25
-16
lines changed Original file line number Diff line number Diff line change 2
2
refs/heads/master: cd6f24f9d14ac90d167386a56e7a6ac1f0318195
3
3
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4
4
refs/heads/snap-stage3: cd6f24f9d14ac90d167386a56e7a6ac1f0318195
5
- refs/heads/try: a19dce6c162f0dc24c615e8e667f190117126293
5
+ refs/heads/try: a70e37b214407743ba9ac7e688e13d7a9d644ad5
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
8
refs/heads/try2: d0c6ce338884ee21843f4b40bf6bf18d222ce5df
Original file line number Diff line number Diff line change @@ -2826,22 +2826,11 @@ fn impl_traits(cx: ctxt, id: ast::def_id) -> ~[t] {
2826
2826
node_id_to_type( cx, trait_ref. ref_id)
2827
2827
}
2828
2828
}
2829
- Some ( ast_map:: node_item( @{ node: ast:: item_class( * ) ,
2829
+ Some ( ast_map:: node_item( @{ node: ast:: item_class( sd , _ ) ,
2830
2830
_} , _) ) => {
2831
- match cx. def_map. find( id. node) {
2832
- Some ( def_ty( trait_id) ) => {
2833
- // XXX: Doesn't work cross-crate.
2834
- debug!( "(impl_traits) found trait id %?" , trait_id) ;
2835
- ~[ node_id_to_type( cx, trait_id. node) ]
2836
- }
2837
- Some ( x) => {
2838
- cx. sess. bug( fmt!( "impl_traits: trait ref is in trait map \
2839
- but is bound to %?", x) ) ;
2840
- }
2841
- None => {
2842
- ~[ ]
2843
- }
2844
- }
2831
+ do vec:: map( sd. traits) |trait_ref| {
2832
+ node_id_to_type( cx, trait_ref. ref_id)
2833
+ }
2845
2834
}
2846
2835
_ => ~[ ]
2847
2836
}
Original file line number Diff line number Diff line change
1
+ trait bar < T > {
2
+ fn get_bar ( ) -> T ;
3
+ }
4
+
5
+ fn foo < T , U : bar < T > > ( b : U ) -> T {
6
+ b. get_bar ( )
7
+ }
8
+
9
+ struct cbar : bar < int > {
10
+ x : int ;
11
+ new ( x : int ) { self . x = x; }
12
+ fn get_bar ( ) -> int {
13
+ self . x
14
+ }
15
+ }
16
+
17
+ fn main ( ) {
18
+ let x: int = foo :: < int , cbar > ( cbar ( 5 ) ) ;
19
+ assert x == 5 ;
20
+ }
You can’t perform that action at this time.
0 commit comments