diff options
| author | Felix S. Klock II <pnkfelix@pnkfx.org> | 2022-01-20 11:06:45 -0500 |
|---|---|---|
| committer | Felix S. Klock II <pnkfelix@pnkfx.org> | 2022-03-03 14:38:50 -0500 |
| commit | e9035f7bef47c21b575af517dce309d96df4eb51 (patch) | |
| tree | 80f987621f14399c7966823d918f29fd767428bd /compiler/rustc_ast/src | |
| parent | 45660949132222ba7ec0905649b2affd68e0e13c (diff) | |
| download | rust-e9035f7bef47c21b575af517dce309d96df4eb51.tar.gz rust-e9035f7bef47c21b575af517dce309d96df4eb51.zip | |
refactor: prepare to associate multiple spans with a module.
Diffstat (limited to 'compiler/rustc_ast/src')
| -rw-r--r-- | compiler/rustc_ast/src/ast.rs | 15 | ||||
| -rw-r--r-- | compiler/rustc_ast/src/mut_visit.rs | 2 |
2 files changed, 15 insertions, 2 deletions
diff --git a/compiler/rustc_ast/src/ast.rs b/compiler/rustc_ast/src/ast.rs index 725499e5c78..517d16cd526 100644 --- a/compiler/rustc_ast/src/ast.rs +++ b/compiler/rustc_ast/src/ast.rs @@ -2317,11 +2317,24 @@ pub enum ModKind { /// or with definition outlined to a separate file `mod foo;` and already loaded from it. /// The inner span is from the first token past `{` to the last token until `}`, /// or from the first to the last token in the loaded file. - Loaded(Vec<P<Item>>, Inline, Span), + Loaded(Vec<P<Item>>, Inline, ModSpans), /// Module with definition outlined to a separate file `mod foo;` but not yet loaded from it. Unloaded, } +#[derive(Clone, Encodable, Decodable, Debug)] +pub struct ModSpans { + /// `inner_span` covers the body of the module; for a file module, its the whole file. + /// For an inline module, its the span inside the `{ ... }`, not including the curly braces. + pub inner_span: Span, +} + +impl Default for ModSpans { + fn default() -> ModSpans { + ModSpans { inner_span: Default::default() } + } +} + /// Foreign module declaration. /// /// E.g., `extern { .. }` or `extern "C" { .. }`. diff --git a/compiler/rustc_ast/src/mut_visit.rs b/compiler/rustc_ast/src/mut_visit.rs index a81a2276295..8bc3afc500a 100644 --- a/compiler/rustc_ast/src/mut_visit.rs +++ b/compiler/rustc_ast/src/mut_visit.rs @@ -1009,7 +1009,7 @@ pub fn noop_visit_item_kind<T: MutVisitor>(kind: &mut ItemKind, vis: &mut T) { ItemKind::Mod(unsafety, mod_kind) => { visit_unsafety(unsafety, vis); match mod_kind { - ModKind::Loaded(items, _inline, inner_span) => { + ModKind::Loaded(items, _inline, ModSpans { inner_span }) => { vis.visit_span(inner_span); items.flat_map_in_place(|item| vis.flat_map_item(item)); } |
