@@ -33,49 +33,49 @@ fn fold_fn(
33
33
) -> doc:: fndoc {
34
34
35
35
let srv = fold. ctxt ;
36
+ let ret_ty = get_ret_ty ( srv, doc. id ) ;
36
37
37
- fn add_ret_ty (
38
- doc : option < doc:: retdoc > ,
39
- tystr : str
40
- ) -> option < doc:: retdoc > {
41
- alt doc {
42
- some( doc) {
43
- fail "unimplemented" ;
44
- }
45
- none. {
46
- some ( {
47
- desc: none,
48
- ty: some ( tystr)
49
- } )
50
- }
51
- }
38
+ ~{
39
+ return : merge_ret_ty ( doc. return , ret_ty)
40
+ with * doc
52
41
}
42
+ }
53
43
54
- let retty = astsrv:: exec ( srv) { |ctxt|
55
- alt ctxt. map . get ( doc. id ) {
44
+ fn get_ret_ty ( srv : astsrv:: srv , id : doc:: ast_id ) -> str {
45
+ astsrv:: exec ( srv) { |ctxt|
46
+ alt ctxt. map . get ( id) {
56
47
ast_map:: node_item ( @{
57
48
node: ast:: item_fn ( decl, _, _) , _
58
49
} ) {
59
50
pprust:: ty_to_str ( decl. output )
60
51
}
61
52
}
62
- } ;
63
-
64
- ~{
65
- return : add_ret_ty ( doc. return , retty)
66
- with * doc
67
53
}
68
54
}
69
55
70
- #[ cfg( test) ]
71
- mod tests {
72
-
73
- #[ test]
74
- fn should_add_fn_ret_types ( ) {
75
- let source = "fn a() -> int { }" ;
76
- let srv = astsrv:: mk_srv_from_str ( source) ;
77
- let doc = extract:: from_srv ( srv, "" ) ;
78
- let doc = run ( srv, doc) ;
79
- assert option:: get ( doc. topmod . fns [ 0 ] . return ) . ty == some ( "int" ) ;
56
+ fn merge_ret_ty (
57
+ doc : option < doc:: retdoc > ,
58
+ tystr : str
59
+ ) -> option < doc:: retdoc > {
60
+ alt doc {
61
+ some( doc) {
62
+ fail "unimplemented" ;
63
+ }
64
+ none. {
65
+ some ( {
66
+ desc: none,
67
+ ty: some ( tystr)
68
+ } )
69
+ }
80
70
}
81
71
}
72
+
73
+ #[ test]
74
+ fn should_add_fn_ret_types ( ) {
75
+ let source = "fn a() -> int { }" ;
76
+ let srv = astsrv:: mk_srv_from_str ( source) ;
77
+ let doc = extract:: from_srv ( srv, "" ) ;
78
+ let doc = run ( srv, doc) ;
79
+ assert option:: get ( doc. topmod . fns [ 0 ] . return ) . ty == some ( "int" ) ;
80
+ }
81
+
0 commit comments