@@ -48,7 +48,11 @@ fn get_fn_sig(srv: astsrv::srv, fn_id: doc::ast_id) -> option<str> {
48
48
alt check ctxt. ast_map . get ( fn_id) {
49
49
ast_map:: node_item ( @{
50
50
ident: ident,
51
- node: ast:: item_fn ( decl, _, blk) , _
51
+ node: ast:: item_fn ( decl, _, _) , _
52
+ } , _) |
53
+ ast_map:: node_native_item ( @{
54
+ ident: ident,
55
+ node: ast:: native_item_fn ( decl, _) , _
52
56
} , _) {
53
57
some ( pprust:: fun_to_str ( decl, ident, [ ] ) )
54
58
}
@@ -62,6 +66,12 @@ fn should_add_fn_sig() {
62
66
assert doc. topmod . fns ( ) [ 0 ] . sig == some ( "fn a() -> int" ) ;
63
67
}
64
68
69
+ #[ test]
70
+ fn should_add_native_fn_sig ( ) {
71
+ let doc = test:: mk_doc ( "native mod a { fn a() -> int; }" ) ;
72
+ assert doc. topmod . nmods ( ) [ 0 ] . fns [ 0 ] . sig == some ( "fn a() -> int" ) ;
73
+ }
74
+
65
75
fn merge_ret_ty (
66
76
srv : astsrv:: srv ,
67
77
fn_id : doc:: ast_id ,
@@ -83,6 +93,9 @@ fn get_ret_ty(srv: astsrv::srv, fn_id: doc::ast_id) -> option<str> {
83
93
alt check ctxt. ast_map . get ( fn_id) {
84
94
ast_map:: node_item ( @{
85
95
node: ast:: item_fn ( decl, _, _) , _
96
+ } , _) |
97
+ ast_map:: node_native_item ( @{
98
+ node: ast:: native_item_fn ( decl, _) , _
86
99
} , _) {
87
100
ret_ty_to_str ( decl)
88
101
}
@@ -111,6 +124,12 @@ fn should_not_add_nil_ret_type() {
111
124
assert doc. topmod . fns ( ) [ 0 ] . return . ty == none;
112
125
}
113
126
127
+ #[ test]
128
+ fn should_add_native_fn_ret_types ( ) {
129
+ let doc = test:: mk_doc ( "native mod a { fn a() -> int; }" ) ;
130
+ assert doc. topmod . nmods ( ) [ 0 ] . fns [ 0 ] . return . ty == some ( "int" ) ;
131
+ }
132
+
114
133
fn merge_arg_tys (
115
134
srv : astsrv:: srv ,
116
135
fn_id : doc:: ast_id ,
@@ -135,6 +154,9 @@ fn get_arg_tys(srv: astsrv::srv, fn_id: doc::ast_id) -> [(str, str)] {
135
154
} , _) |
136
155
ast_map:: node_item ( @{
137
156
node: ast:: item_res ( decl, _, _, _, _) , _
157
+ } , _) |
158
+ ast_map:: node_native_item ( @{
159
+ node: ast:: native_item_fn ( decl, _) , _
138
160
} , _) {
139
161
decl_arg_tys ( decl)
140
162
}
@@ -156,6 +178,12 @@ fn should_add_arg_types() {
156
178
assert fn_. args [ 1 ] . ty == some ( "bool" ) ;
157
179
}
158
180
181
+ #[ test]
182
+ fn should_add_native_fn_arg_types ( ) {
183
+ let doc = test:: mk_doc ( "native mod a { fn a(b: int); }" ) ;
184
+ assert doc. topmod . nmods ( ) [ 0 ] . fns [ 0 ] . args [ 0 ] . ty == some ( "int" ) ;
185
+ }
186
+
159
187
fn fold_const (
160
188
fold : fold:: fold < astsrv:: srv > ,
161
189
doc : doc:: constdoc
0 commit comments