@@ -22,7 +22,8 @@ fn run(
22
22
fold_const: fold_const,
23
23
fold_fn: fold_fn,
24
24
fold_enum: fold_enum,
25
- fold_res: fold_res
25
+ fold_res: fold_res,
26
+ fold_iface: fold_iface
26
27
with * fold:: default_seq_fold ( ( ) )
27
28
} ) ;
28
29
fold. fold_crate ( fold, doc)
@@ -83,6 +84,26 @@ fn fold_res(fold: fold::fold<()>, doc: doc::resdoc) -> doc::resdoc {
83
84
}
84
85
}
85
86
87
+ fn fold_iface ( fold : fold:: fold < ( ) > , doc : doc:: ifacedoc ) -> doc:: ifacedoc {
88
+ let doc =fold:: default_seq_fold_iface ( fold, doc) ;
89
+ let ( brief, desc) = modify ( doc. brief , doc. desc ) ;
90
+
91
+ {
92
+ brief: brief,
93
+ desc: desc,
94
+ methods: vec:: map ( doc. methods ) { |doc|
95
+ let ( brief, desc) = modify ( doc. brief , doc. desc ) ;
96
+
97
+ {
98
+ brief: brief,
99
+ desc: desc
100
+ with doc
101
+ }
102
+ }
103
+ with doc
104
+ }
105
+ }
106
+
86
107
#[ test]
87
108
fn should_promote_mod_desc ( ) {
88
109
let source = "#[doc(desc = \" desc\" )] mod m { }" ;
@@ -138,6 +159,28 @@ fn should_promote_resource_desc() {
138
159
assert doc. topmod . resources ( ) [ 0 ] . desc == none;
139
160
}
140
161
162
+ #[ test]
163
+ fn should_promote_iface_desc ( ) {
164
+ let source = "#[doc(desc = \" desc\" )] iface i { fn a(); }" ;
165
+ let srv = astsrv:: mk_srv_from_str ( source) ;
166
+ let doc = extract:: from_srv ( srv, "" ) ;
167
+ let doc = attr_pass:: mk_pass ( ) ( srv, doc) ;
168
+ let doc = run ( srv, doc) ;
169
+ assert doc. topmod . ifaces ( ) [ 0 ] . brief == some ( "desc" ) ;
170
+ assert doc. topmod . ifaces ( ) [ 0 ] . desc == none;
171
+ }
172
+
173
+ #[ test]
174
+ fn should_promote_iface_method_desc ( ) {
175
+ let source = "iface i { #[doc(desc = \" desc\" )] fn a(); }" ;
176
+ let srv = astsrv:: mk_srv_from_str ( source) ;
177
+ let doc = extract:: from_srv ( srv, "" ) ;
178
+ let doc = attr_pass:: mk_pass ( ) ( srv, doc) ;
179
+ let doc = run ( srv, doc) ;
180
+ assert doc. topmod . ifaces ( ) [ 0 ] . methods [ 0 ] . brief == some ( "desc" ) ;
181
+ assert doc. topmod . ifaces ( ) [ 0 ] . methods [ 0 ] . desc == none;
182
+ }
183
+
141
184
fn modify (
142
185
brief : option < str > ,
143
186
desc : option < str >
0 commit comments