Skip to content

Commit 3316632

Browse files
committed
attempt to have rustfmt use the new logic
apparently it doesn't really use the asm parsing at present, so this may work?
1 parent 7935e87 commit 3316632

File tree

2 files changed

+10
-16
lines changed
  • compiler/rustc_builtin_macros/src
  • src/tools/rustfmt/src/parse/macros

2 files changed

+10
-16
lines changed

compiler/rustc_builtin_macros/src/asm.rs

+4-13
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ fn parse_asm_operand<'a>(
144144
}))
145145
}
146146

147+
// Public for rustfmt
147148
pub fn parse_raw_asm_args<'a>(
148149
p: &mut Parser<'a>,
149150
sp: Span,
@@ -259,21 +260,11 @@ fn parse_args<'a>(
259260
asm_macro: AsmMacro,
260261
) -> PResult<'a, AsmArgs> {
261262
let mut p = ecx.new_parser_from_tts(tts);
262-
parse_asm_args(&mut p, sp, asm_macro)
263+
let raw_args = parse_raw_asm_args(&mut p, sp, asm_macro)?;
264+
validate_raw_asm_args(ecx.dcx(), asm_macro, raw_args)
263265
}
264266

265-
// public for use in rustfmt
266-
// FIXME: use `RawAsmArg` in the formatting code instead.
267-
pub fn parse_asm_args<'a>(
268-
p: &mut Parser<'a>,
269-
sp: Span,
270-
asm_macro: AsmMacro,
271-
) -> PResult<'a, AsmArgs> {
272-
let raw_args = parse_raw_asm_args(p, sp, asm_macro)?;
273-
validate_raw_asm_args(p.dcx(), asm_macro, raw_args)
274-
}
275-
276-
pub fn validate_raw_asm_args<'a>(
267+
fn validate_raw_asm_args<'a>(
277268
dcx: DiagCtxtHandle<'a>,
278269
asm_macro: AsmMacro,
279270
raw_args: Vec<RawAsmArg>,
+6-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
use rustc_ast::ast;
2-
use rustc_builtin_macros::asm::{AsmArgs, parse_asm_args};
2+
use rustc_builtin_macros::asm::{RawAsmArg, parse_raw_asm_args};
33

44
use crate::rewrite::RewriteContext;
55

66
#[allow(dead_code)]
7-
pub(crate) fn parse_asm(context: &RewriteContext<'_>, mac: &ast::MacCall) -> Option<AsmArgs> {
7+
pub(crate) fn parse_asm(
8+
context: &RewriteContext<'_>,
9+
mac: &ast::MacCall,
10+
) -> Option<Vec<RawAsmArgs>> {
811
let ts = mac.args.tokens.clone();
912
let mut parser = super::build_parser(context, ts);
10-
parse_asm_args(&mut parser, mac.span(), ast::AsmMacro::Asm).ok()
13+
parse_raw_asm_args(&mut parser, mac.span(), ast::AsmMacro::Asm).ok()
1114
}

0 commit comments

Comments
 (0)