Skip to content

Commit b827952

Browse files
committed
Associate multiple with a crate too.
1 parent e9035f7 commit b827952

File tree

17 files changed

+28
-27
lines changed

17 files changed

+28
-27
lines changed

compiler/rustc_ast/src/ast.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ pub struct WhereEqPredicate {
510510
pub struct Crate {
511511
pub attrs: Vec<Attribute>,
512512
pub items: Vec<P<Item>>,
513-
pub span: Span,
513+
pub spans: ModSpans,
514514
/// Must be equal to `CRATE_NODE_ID` after the crate root is expanded, but may hold
515515
/// expansion placeholders or an unassigned value (`DUMMY_NODE_ID`) before that.
516516
pub id: NodeId,

compiler/rustc_ast/src/mut_visit.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1108,11 +1108,12 @@ pub fn noop_visit_fn_header<T: MutVisitor>(header: &mut FnHeader, vis: &mut T) {
11081108
}
11091109

11101110
pub fn noop_visit_crate<T: MutVisitor>(krate: &mut Crate, vis: &mut T) {
1111-
let Crate { attrs, items, span, id, is_placeholder: _ } = krate;
1111+
let Crate { attrs, items, spans, id, is_placeholder: _ } = krate;
11121112
vis.visit_id(id);
11131113
visit_attrs(attrs, vis);
11141114
items.flat_map_in_place(|item| vis.flat_map_item(item));
1115-
vis.visit_span(span);
1115+
let ModSpans { inner_span } = spans;
1116+
vis.visit_span(inner_span);
11161117
}
11171118

11181119
// Mutates one item into possibly many items.
@@ -1536,7 +1537,7 @@ impl DummyAstNode for Crate {
15361537
Crate {
15371538
attrs: Default::default(),
15381539
items: Default::default(),
1539-
span: Default::default(),
1540+
spans: Default::default(),
15401541
id: DUMMY_NODE_ID,
15411542
is_placeholder: Default::default(),
15421543
}

compiler/rustc_ast_lowering/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
456456
visit::walk_crate(&mut item::ItemLowerer { lctx: &mut self }, c);
457457

458458
self.with_hir_id_owner(CRATE_NODE_ID, |lctx| {
459-
let module = lctx.lower_mod(&c.items, c.span);
459+
let module = lctx.lower_mod(&c.items, c.spans.inner_span);
460460
lctx.lower_attrs(hir::CRATE_HIR_ID, &c.attrs);
461461
hir::OwnerNode::Crate(lctx.arena.alloc(module))
462462
});

compiler/rustc_builtin_macros/src/test_harness.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ impl<'a> MutVisitor for TestHarnessGenerator<'a> {
112112
fn visit_crate(&mut self, c: &mut ast::Crate) {
113113
let prev_tests = mem::take(&mut self.tests);
114114
noop_visit_crate(c, self);
115-
self.add_test_cases(ast::CRATE_NODE_ID, c.span, prev_tests);
115+
self.add_test_cases(ast::CRATE_NODE_ID, c.spans.inner_span, prev_tests);
116116

117117
// Create a main function to run our tests
118118
c.items.push(mk_main(&mut self.cx));

compiler/rustc_expand/src/base.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ impl Annotatable {
6767
Annotatable::Param(ref p) => p.span,
6868
Annotatable::FieldDef(ref sf) => sf.span,
6969
Annotatable::Variant(ref v) => v.span,
70-
Annotatable::Crate(ref c) => c.span,
70+
Annotatable::Crate(ref c) => c.spans.inner_span,
7171
}
7272
}
7373

compiler/rustc_expand/src/expand.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use rustc_ast::token;
1212
use rustc_ast::tokenstream::TokenStream;
1313
use rustc_ast::visit::{self, AssocCtxt, Visitor};
1414
use rustc_ast::{AssocItemKind, AstLike, AstLikeWrapper, AttrStyle, ExprKind, ForeignItemKind};
15-
use rustc_ast::{Inline, ItemKind, MacArgs, MacStmtStyle, MetaItemKind, ModKind, ModSpans};
15+
use rustc_ast::{Inline, ItemKind, MacArgs, MacStmtStyle, MetaItemKind, ModKind};
1616
use rustc_ast::{NestedMetaItem, NodeId, PatKind, StmtKind, TyKind};
1717
use rustc_ast_pretty::pprust;
1818
use rustc_data_structures::map_in_place::MapInPlace;
@@ -364,7 +364,7 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
364364
}
365365

366366
pub fn expand_crate(&mut self, krate: ast::Crate) -> ast::Crate {
367-
let file_path = match self.cx.source_map().span_to_filename(krate.span) {
367+
let file_path = match self.cx.source_map().span_to_filename(krate.spans.inner_span) {
368368
FileName::Real(name) => name
369369
.into_local_path()
370370
.expect("attempting to resolve a file path in an external file"),
@@ -1091,7 +1091,7 @@ impl InvocationCollectorNode for P<ast::Item> {
10911091
ModKind::Unloaded => {
10921092
// We have an outline `mod foo;` so we need to parse the file.
10931093
let old_attrs_len = attrs.len();
1094-
let ParsedExternalMod { items, inner_span, file_path, dir_path, dir_ownership } =
1094+
let ParsedExternalMod { items, spans, file_path, dir_path, dir_ownership } =
10951095
parse_external_mod(
10961096
&ecx.sess,
10971097
ident,
@@ -1112,7 +1112,7 @@ impl InvocationCollectorNode for P<ast::Item> {
11121112
);
11131113
}
11141114

1115-
*mod_kind = ModKind::Loaded(items, Inline::No, ModSpans { inner_span });
1115+
*mod_kind = ModKind::Loaded(items, Inline::No, spans);
11161116
node.attrs = attrs;
11171117
if node.attrs.len() > old_attrs_len {
11181118
// If we loaded an out-of-line module and added some inner attributes,

compiler/rustc_expand/src/module.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub struct ModulePathSuccess {
2828

2929
crate struct ParsedExternalMod {
3030
pub items: Vec<P<Item>>,
31-
pub inner_span: Span,
31+
pub spans: ModSpans,
3232
pub file_path: PathBuf,
3333
pub dir_path: PathBuf,
3434
pub dir_ownership: DirOwnership,
@@ -69,13 +69,13 @@ crate fn parse_external_mod(
6969
(items, inner_span, mp.file_path)
7070
};
7171
// (1) ...instead, we return a dummy module.
72-
let (items, ModSpans { inner_span }, file_path) =
72+
let (items, spans, file_path) =
7373
result.map_err(|err| err.report(sess, span)).unwrap_or_default();
7474

7575
// Extract the directory path for submodules of the module.
7676
let dir_path = file_path.parent().unwrap_or(&file_path).to_owned();
7777

78-
ParsedExternalMod { items, inner_span, file_path, dir_path, dir_ownership }
78+
ParsedExternalMod { items, spans, file_path, dir_path, dir_ownership }
7979
}
8080

8181
crate fn mod_dir_path(

compiler/rustc_expand/src/placeholders.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pub fn placeholder(
4949
AstFragmentKind::Crate => AstFragment::Crate(ast::Crate {
5050
attrs: Default::default(),
5151
items: Default::default(),
52-
span,
52+
spans: ast::ModSpans { inner_span: span, ..Default::default() },
5353
id,
5454
is_placeholder: true,
5555
}),

compiler/rustc_metadata/src/creader.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -899,7 +899,7 @@ impl<'a> CrateLoader<'a> {
899899

900900
fn report_unused_deps(&mut self, krate: &ast::Crate) {
901901
// Make a point span rather than covering the whole file
902-
let span = krate.span.shrink_to_lo();
902+
let span = krate.spans.inner_span.shrink_to_lo();
903903
// Complain about anything left over
904904
for (name, entry) in self.sess.opts.externs.iter() {
905905
if let ExternLocation::FoundInLibrarySearchDirectories = entry.location {

compiler/rustc_parse/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ pub fn fake_token_stream(sess: &ParseSess, nt: &Nonterminal) -> TokenStream {
331331
pub fn fake_token_stream_for_crate(sess: &ParseSess, krate: &ast::Crate) -> TokenStream {
332332
let source = pprust::crate_to_string_for_macros(krate);
333333
let filename = FileName::macro_expansion_source_code(&source);
334-
parse_stream_from_source_str(filename, source, sess, Some(krate.span))
334+
parse_stream_from_source_str(filename, source, sess, Some(krate.spans.inner_span))
335335
}
336336

337337
pub fn parse_cfg_attr(

compiler/rustc_parse/src/parser/item.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ impl<'a> Parser<'a> {
2727
/// Parses a source module as a crate. This is the main entry point for the parser.
2828
pub fn parse_crate_mod(&mut self) -> PResult<'a, ast::Crate> {
2929
let (attrs, items, spans) = self.parse_mod(&token::Eof)?;
30-
let span = spans.inner_span;
31-
Ok(ast::Crate { attrs, items, span, id: DUMMY_NODE_ID, is_placeholder: false })
30+
Ok(ast::Crate { attrs, items, spans, id: DUMMY_NODE_ID, is_placeholder: false })
3231
}
3332

3433
/// Parses a `mod <foo> { ... }` or `mod <foo>;` item.

compiler/rustc_resolve/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1282,7 +1282,7 @@ impl<'a> Resolver<'a> {
12821282
None,
12831283
ModuleKind::Def(DefKind::Mod, root_def_id, kw::Empty),
12841284
ExpnId::root(),
1285-
krate.span,
1285+
krate.spans.inner_span,
12861286
session.contains_name(&krate.attrs, sym::no_implicit_prelude),
12871287
&mut module_map,
12881288
);
@@ -1295,7 +1295,7 @@ impl<'a> Resolver<'a> {
12951295
&mut FxHashMap::default(),
12961296
);
12971297

1298-
let definitions = Definitions::new(session.local_stable_crate_id(), krate.span);
1298+
let definitions = Definitions::new(session.local_stable_crate_id(), krate.spans.inner_span);
12991299
let root = definitions.get_root_def();
13001300

13011301
let mut visibilities = FxHashMap::default();

src/librustdoc/passes/collect_intra_doc_links/early.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ crate fn early_resolve_intra_doc_links(
3939

4040
// Overridden `visit_item` below doesn't apply to the crate root,
4141
// so we have to visit its attributes and reexports separately.
42-
loader.load_links_in_attrs(&krate.attrs, krate.span);
42+
loader.load_links_in_attrs(&krate.attrs, krate.spans.inner_span);
4343
loader.process_module_children_or_reexports(CRATE_DEF_ID.to_def_id());
4444
visit::walk_crate(&mut loader, krate);
4545
loader.add_foreign_traits_in_scope();
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"crate_type","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":{"variant":"Eq","fields":[{"lo":0,"hi":0},{"kind":{"variant":"Interpolated","fields":[{"variant":"NtExpr","fields":[{"id":0,"kind":{"variant":"Lit","fields":[{"token":{"kind":"Str","symbol":"lib","suffix":null},"kind":{"variant":"Str","fields":["lib","Cooked"]},"span":{"lo":0,"hi":0}}]},"span":{"lo":0,"hi":0},"attrs":{"0":null},"tokens":{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}}]}]},"span":{"lo":0,"hi":0}}]},"tokens":null},{"0":[[{"variant":"Token","fields":[{"kind":"Pound","span":{"lo":0,"hi":0}}]},"Joint"],[{"variant":"Token","fields":[{"kind":"Not","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Delimited","fields":[{"open":{"lo":0,"hi":0},"close":{"lo":0,"hi":0}},"Bracket",{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["crate_type",false]},"span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":"Eq","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}]},"Alone"]]}]},"id":null,"style":"Inner","span":{"lo":0,"hi":0}}],"items":[{"attrs":[],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"core","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null}],"span":{"lo":0,"hi":0},"id":0,"is_placeholder":false}
1+
{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"crate_type","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":{"variant":"Eq","fields":[{"lo":0,"hi":0},{"kind":{"variant":"Interpolated","fields":[{"variant":"NtExpr","fields":[{"id":0,"kind":{"variant":"Lit","fields":[{"token":{"kind":"Str","symbol":"lib","suffix":null},"kind":{"variant":"Str","fields":["lib","Cooked"]},"span":{"lo":0,"hi":0}}]},"span":{"lo":0,"hi":0},"attrs":{"0":null},"tokens":{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}}]}]},"span":{"lo":0,"hi":0}}]},"tokens":null},{"0":[[{"variant":"Token","fields":[{"kind":"Pound","span":{"lo":0,"hi":0}}]},"Joint"],[{"variant":"Token","fields":[{"kind":"Not","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Delimited","fields":[{"open":{"lo":0,"hi":0},"close":{"lo":0,"hi":0}},"Bracket",{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["crate_type",false]},"span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":"Eq","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}]},"Alone"]]}]},"id":null,"style":"Inner","span":{"lo":0,"hi":0}}],"items":[{"attrs":[],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"core","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null}],"spans":{"inner_span":{"lo":0,"hi":0}},"id":0,"is_placeholder":false}
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"crate_type","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":{"variant":"Eq","fields":[{"lo":0,"hi":0},{"kind":{"variant":"Interpolated","fields":[{"variant":"NtExpr","fields":[{"id":0,"kind":{"variant":"Lit","fields":[{"token":{"kind":"Str","symbol":"lib","suffix":null},"kind":{"variant":"Str","fields":["lib","Cooked"]},"span":{"lo":0,"hi":0}}]},"span":{"lo":0,"hi":0},"attrs":{"0":null},"tokens":{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}}]}]},"span":{"lo":0,"hi":0}}]},"tokens":null},{"0":[[{"variant":"Token","fields":[{"kind":"Pound","span":{"lo":0,"hi":0}}]},"Joint"],[{"variant":"Token","fields":[{"kind":"Not","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Delimited","fields":[{"open":{"lo":0,"hi":0},"close":{"lo":0,"hi":0}},"Bracket",{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["crate_type",false]},"span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":"Eq","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}]},"Alone"]]}]},"id":null,"style":"Inner","span":{"lo":0,"hi":0}}],"items":[{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"prelude_import","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":"Empty","tokens":null},null]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"","span":{"lo":0,"hi":0}},"kind":{"variant":"Use","fields":[{"prefix":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"{{root}}","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"std","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"prelude","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"rust_2015","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"kind":"Glob","span":{"lo":0,"hi":0}}]},"tokens":null},{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"macro_use","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":"Empty","tokens":null},null]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"std","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null},{"attrs":[],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"core","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null}],"span":{"lo":0,"hi":0},"id":0,"is_placeholder":false}
1+
{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"crate_type","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":{"variant":"Eq","fields":[{"lo":0,"hi":0},{"kind":{"variant":"Interpolated","fields":[{"variant":"NtExpr","fields":[{"id":0,"kind":{"variant":"Lit","fields":[{"token":{"kind":"Str","symbol":"lib","suffix":null},"kind":{"variant":"Str","fields":["lib","Cooked"]},"span":{"lo":0,"hi":0}}]},"span":{"lo":0,"hi":0},"attrs":{"0":null},"tokens":{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}}]}]},"span":{"lo":0,"hi":0}}]},"tokens":null},{"0":[[{"variant":"Token","fields":[{"kind":"Pound","span":{"lo":0,"hi":0}}]},"Joint"],[{"variant":"Token","fields":[{"kind":"Not","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Delimited","fields":[{"open":{"lo":0,"hi":0},"close":{"lo":0,"hi":0}},"Bracket",{"0":[[{"variant":"Token","fields":[{"kind":{"variant":"Ident","fields":["crate_type",false]},"span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":"Eq","span":{"lo":0,"hi":0}}]},"Alone"],[{"variant":"Token","fields":[{"kind":{"variant":"Literal","fields":[{"kind":"Str","symbol":"lib","suffix":null}]},"span":{"lo":0,"hi":0}}]},"Alone"]]}]},"Alone"]]}]},"id":null,"style":"Inner","span":{"lo":0,"hi":0}}],"items":[{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"prelude_import","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":"Empty","tokens":null},null]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"","span":{"lo":0,"hi":0}},"kind":{"variant":"Use","fields":[{"prefix":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"{{root}}","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"std","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"prelude","span":{"lo":0,"hi":0}},"id":0,"args":null},{"ident":{"name":"rust_2015","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"kind":"Glob","span":{"lo":0,"hi":0}}]},"tokens":null},{"attrs":[{"kind":{"variant":"Normal","fields":[{"path":{"span":{"lo":0,"hi":0},"segments":[{"ident":{"name":"macro_use","span":{"lo":0,"hi":0}},"id":0,"args":null}],"tokens":null},"args":"Empty","tokens":null},null]},"id":null,"style":"Outer","span":{"lo":0,"hi":0}}],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"std","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null},{"attrs":[],"id":0,"span":{"lo":0,"hi":0},"vis":{"kind":"Inherited","span":{"lo":0,"hi":0},"tokens":null},"ident":{"name":"core","span":{"lo":0,"hi":0}},"kind":{"variant":"ExternCrate","fields":[null]},"tokens":null}],"spans":{"inner_span":{"lo":0,"hi":0}},"id":0,"is_placeholder":false}

src/tools/rustfmt/src/modules.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
124124
mut self,
125125
krate: &'ast ast::Crate,
126126
) -> Result<FileModMap<'ast>, ModuleResolutionError> {
127-
let root_filename = self.parse_sess.span_to_filename(krate.span);
127+
let root_filename = self.parse_sess.span_to_filename(krate.spans.inner_span);
128128
self.directory.path = match root_filename {
129129
FileName::Real(ref p) => p.parent().unwrap_or(Path::new("")).to_path_buf(),
130130
_ => PathBuf::new(),
@@ -135,7 +135,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
135135
self.visit_mod_from_ast(&krate.items)?;
136136
}
137137

138-
let snippet_provider = self.parse_sess.snippet_provider(krate.span);
138+
let snippet_provider = self.parse_sess.snippet_provider(krate.spans.inner_span);
139139

140140
self.file_map.insert(
141141
root_filename,

src/tools/rustfmt/src/visitor.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -915,7 +915,8 @@ impl<'b, 'a: 'b> FmtVisitor<'a> {
915915
let ident_str = rewrite_ident(&self.get_context(), ident).to_owned();
916916
self.push_str(&ident_str);
917917

918-
if let ast::ModKind::Loaded(ref items, ast::Inline::Yes, ast::ModSpans{ inner_span }) = mod_kind {
918+
if let ast::ModKind::Loaded(ref items, ast::Inline::Yes, ref spans) = mod_kind {
919+
let ast::ModSpans { inner_span } = *spans;
919920
match self.config.brace_style() {
920921
BraceStyle::AlwaysNextLine => {
921922
let indent_str = self.block_indent.to_string_with_newline(self.config);

0 commit comments

Comments
 (0)