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 @@ -6,7 +6,7 @@ refs/heads/try: d324a424d8f84b1eb049b12cf34182bda91b0024
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
8
refs/heads/try2: d0c6ce338884ee21843f4b40bf6bf18d222ce5df
9
- refs/heads/incoming: a19dce6c162f0dc24c615e8e667f190117126293
9
+ refs/heads/incoming: a70e37b214407743ba9ac7e688e13d7a9d644ad5
10
10
refs/heads/dist-snap: 2f32a1581f522e524009138b33b1c7049ced668d
11
11
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
12
12
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
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