Skip to content

Commit d665e9c

Browse files
committed
Box the ForeignMod in ItemKind::ForeignMod.
1 parent 5c7b4e7 commit d665e9c

File tree

4 files changed

+8
-9
lines changed

4 files changed

+8
-9
lines changed

compiler/rustc_ast/src/ast.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2839,7 +2839,7 @@ pub enum ItemKind {
28392839
/// An external module (`extern`).
28402840
///
28412841
/// E.g., `extern {}` or `extern "C" {}`.
2842-
ForeignMod(ForeignMod),
2842+
ForeignMod(P<ForeignMod>),
28432843
/// Module-level inline assembly (from `global_asm!()`).
28442844
GlobalAsm(Box<InlineAsm>),
28452845
/// A type alias (`type`).

compiler/rustc_ast_passes/src/ast_validation.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1234,16 +1234,16 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
12341234
walk_list!(self, visit_attribute, &item.attrs);
12351235
return; // Avoid visiting again.
12361236
}
1237-
ItemKind::ForeignMod(ForeignMod { abi, unsafety, .. }) => {
1237+
ItemKind::ForeignMod(ref foreign_mod) => {
12381238
let old_item = mem::replace(&mut self.extern_mod, Some(item));
12391239
self.invalid_visibility(
12401240
&item.vis,
12411241
Some("place qualifiers on individual foreign items instead"),
12421242
);
1243-
if let Unsafe::Yes(span) = unsafety {
1243+
if let Unsafe::Yes(span) = foreign_mod.unsafety {
12441244
self.err_handler().span_err(span, "extern block cannot be declared unsafe");
12451245
}
1246-
if abi.is_none() {
1246+
if foreign_mod.abi.is_none() {
12471247
self.maybe_lint_missing_abi(item.span, item.id);
12481248
}
12491249
visit::walk_item(self, item);

compiler/rustc_parse/src/parser/item.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1039,11 +1039,11 @@ impl<'a> Parser<'a> {
10391039
unsafety = Unsafe::Yes(self.token.span);
10401040
self.eat_keyword(kw::Unsafe);
10411041
}
1042-
let module = ast::ForeignMod {
1042+
let module = P(ast::ForeignMod {
10431043
unsafety,
10441044
abi,
10451045
items: self.parse_item_list(attrs, |p| p.parse_foreign_item(ForceCollect::No))?,
1046-
};
1046+
});
10471047
Ok((Ident::empty(), ItemKind::ForeignMod(module)))
10481048
}
10491049

compiler/rustc_resolve/src/access_levels.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use rustc_ast::visit;
33
use rustc_ast::visit::Visitor;
44
use rustc_ast::Crate;
55
use rustc_ast::EnumDef;
6-
use rustc_ast::ForeignMod;
76
use rustc_ast::NodeId;
87
use rustc_hir::def_id::LocalDefId;
98
use rustc_hir::def_id::CRATE_DEF_ID;
@@ -184,8 +183,8 @@ impl<'r, 'ast> Visitor<'ast> for AccessLevelsVisitor<'ast, 'r> {
184183
self.prev_level = orig_level;
185184
}
186185

187-
ast::ItemKind::ForeignMod(ForeignMod { ref items, .. }) => {
188-
for nested in items {
186+
ast::ItemKind::ForeignMod(ref foreign_mod) => {
187+
for nested in foreign_mod.items.iter() {
189188
if nested.vis.kind.is_pub() {
190189
self.set_access_level(nested.id, access_level);
191190
}

0 commit comments

Comments
 (0)