Add ParseMode::Diagnostic unit tests
This commit is contained in:
@@ -553,3 +553,45 @@ fn asm_concat() {
|
||||
assert_eq!(parser.by_ref().collect::<Vec<Piece<'static>>>(), &[Lit(asm)]);
|
||||
assert_eq!(parser.line_spans, &[]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn diagnostic_format_flags() {
|
||||
let lit = "{thing:blah}";
|
||||
let mut parser = Parser::new(lit, None, None, false, ParseMode::Diagnostic);
|
||||
assert!(!parser.is_source_literal);
|
||||
|
||||
let [NextArgument(arg)] = &*parser.by_ref().collect::<Vec<Piece<'static>>>() else { panic!() };
|
||||
|
||||
assert_eq!(
|
||||
**arg,
|
||||
Argument {
|
||||
position: ArgumentNamed("thing"),
|
||||
position_span: 2..7,
|
||||
format: FormatSpec { ty: ":blah", ty_span: Some(7..12), ..Default::default() },
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(parser.line_spans, &[]);
|
||||
assert!(parser.errors.is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn diagnostic_format_mod() {
|
||||
let lit = "{thing:+}";
|
||||
let mut parser = Parser::new(lit, None, None, false, ParseMode::Diagnostic);
|
||||
assert!(!parser.is_source_literal);
|
||||
|
||||
let [NextArgument(arg)] = &*parser.by_ref().collect::<Vec<Piece<'static>>>() else { panic!() };
|
||||
|
||||
assert_eq!(
|
||||
**arg,
|
||||
Argument {
|
||||
position: ArgumentNamed("thing"),
|
||||
position_span: 2..7,
|
||||
format: FormatSpec { ty: ":+", ty_span: Some(7..9), ..Default::default() },
|
||||
}
|
||||
);
|
||||
|
||||
assert_eq!(parser.line_spans, &[]);
|
||||
assert!(parser.errors.is_empty());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user