File tree Expand file tree Collapse file tree 4 files changed +25
-5
lines changed
branches/snap-stage3/src/librustdoc Expand file tree Collapse file tree 4 files changed +25
-5
lines changed Original file line number Diff line number Diff line change 1
1
---
2
2
refs/heads/master: 30e373390f1a2f74e78bf9ca9c8ca68451f3511a
3
3
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4
- refs/heads/snap-stage3: dee21a67b802ba9d8a0fac11369cbcd53552a216
4
+ refs/heads/snap-stage3: c8a29c4c595e76b71372a2e40d359ac1ddd8aec8
5
5
refs/heads/try: fa3000fae833e0869b11da51cabb2a2598ba86d1
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
Original file line number Diff line number Diff line change @@ -223,10 +223,27 @@ impl Clean<Item> for doctree::Module {
223
223
self . view_items. clean( ) . move_iter( ) . collect( ) ,
224
224
self . macros. clean( ) . move_iter( ) . collect( )
225
225
) ;
226
+
227
+ // determine if we should display the inner contents or
228
+ // the outer `mod` item for the source code.
229
+ let where = {
230
+ let ctxt = local_data:: get ( super :: ctxtkey, |x| * x. unwrap ( ) ) ;
231
+ let cm = ctxt. sess ( ) . codemap ( ) ;
232
+ let outer = cm. lookup_char_pos ( self . where_outer . lo ) ;
233
+ let inner = cm. lookup_char_pos ( self . where_inner . lo ) ;
234
+ if outer. file . start_pos == inner. file . start_pos {
235
+ // mod foo { ... }
236
+ self . where_outer
237
+ } else {
238
+ // mod foo; (and a separate FileMap for the contents)
239
+ self . where_inner
240
+ }
241
+ } ;
242
+
226
243
Item {
227
244
name : Some ( name) ,
228
245
attrs : self . attrs . clean ( ) ,
229
- source : self . where . clean ( ) ,
246
+ source : where. clean ( ) ,
230
247
visibility : self . vis . clean ( ) ,
231
248
id : self . id ,
232
249
inner : ModuleItem ( Module {
Original file line number Diff line number Diff line change @@ -19,7 +19,8 @@ use syntax::ast::{Ident, NodeId};
19
19
pub struct Module {
20
20
pub name : Option < Ident > ,
21
21
pub attrs : Vec < ast:: Attribute > ,
22
- pub where : Span ,
22
+ pub where_outer : Span ,
23
+ pub where_inner : Span ,
23
24
pub structs : Vec < Struct > ,
24
25
pub enums : Vec < Enum > ,
25
26
pub fns : Vec < Function > ,
@@ -42,7 +43,8 @@ impl Module {
42
43
name : name,
43
44
id : 0 ,
44
45
vis : ast:: Inherited ,
45
- where : syntax:: codemap:: DUMMY_SP ,
46
+ where_outer : syntax:: codemap:: DUMMY_SP ,
47
+ where_inner : syntax:: codemap:: DUMMY_SP ,
46
48
attrs : Vec :: new ( ) ,
47
49
structs : Vec :: new ( ) ,
48
50
enums : Vec :: new ( ) ,
Original file line number Diff line number Diff line change @@ -118,7 +118,8 @@ impl<'a> RustdocVisitor<'a> {
118
118
for item in m. view_items . iter ( ) {
119
119
self . visit_view_item ( item, & mut om) ;
120
120
}
121
- om. where = span;
121
+ om. where_outer = span;
122
+ om. where_inner = m. inner ;
122
123
om. attrs = attrs;
123
124
om. vis = vis;
124
125
om. id = id;
You can’t perform that action at this time.
0 commit comments