File tree Expand file tree Collapse file tree 4 files changed +25
-5
lines changed
branches/try2/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 @@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
5
5
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
- refs/heads/try2: dee21a67b802ba9d8a0fac11369cbcd53552a216
8
+ refs/heads/try2: c8a29c4c595e76b71372a2e40d359ac1ddd8aec8
9
9
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
10
10
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
11
11
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
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