diff --git a/compiler/rustc_ast/src/ast.rs b/compiler/rustc_ast/src/ast.rs index c0fec0cf565..1e4d3ba47f4 100644 --- a/compiler/rustc_ast/src/ast.rs +++ b/compiler/rustc_ast/src/ast.rs @@ -1471,7 +1471,7 @@ pub enum ExprKind { InlineAsm(P), /// Output of the `offset_of!()` macro. - OffsetOf(P, Vec), + OffsetOf(P, P<[Ident]>), /// A macro invocation; pre-expansion. MacCall(P), diff --git a/compiler/rustc_ast/src/mut_visit.rs b/compiler/rustc_ast/src/mut_visit.rs index 7603bebb178..99f1f4bd968 100644 --- a/compiler/rustc_ast/src/mut_visit.rs +++ b/compiler/rustc_ast/src/mut_visit.rs @@ -1458,7 +1458,7 @@ pub fn noop_visit_expr( ExprKind::FormatArgs(fmt) => vis.visit_format_args(fmt), ExprKind::OffsetOf(container, fields) => { vis.visit_ty(container); - for field in fields { + for field in fields.iter_mut() { vis.visit_ident(field); } } diff --git a/compiler/rustc_builtin_macros/src/offset_of.rs b/compiler/rustc_builtin_macros/src/offset_of.rs index f5c04015340..0ef3e000e41 100644 --- a/compiler/rustc_builtin_macros/src/offset_of.rs +++ b/compiler/rustc_builtin_macros/src/offset_of.rs @@ -41,7 +41,7 @@ fn parse_args<'a>( cx: &mut ExtCtxt<'a>, sp: Span, tts: TokenStream, -) -> PResult<'a, (P, Vec)> { +) -> PResult<'a, (P, P<[Ident]>)> { let mut p = cx.new_parser_from_tts(tts); let container = p.parse_ty()?; @@ -71,7 +71,7 @@ fn parse_args<'a>( break; } - Ok((container, fields)) + Ok((container, fields.into())) } pub fn expand_offset_of<'cx>(