mv compiler to compiler/
This commit is contained in:
parent
db534b3ac2
commit
9e5f7d5631
1686 changed files with 941 additions and 1051 deletions
296
compiler/rustc_parse_format/src/tests.rs
Normal file
296
compiler/rustc_parse_format/src/tests.rs
Normal file
|
@ -0,0 +1,296 @@
|
|||
use super::*;
|
||||
|
||||
fn same(fmt: &'static str, p: &[Piece<'static>]) {
|
||||
let parser = Parser::new(fmt, None, None, false, ParseMode::Format);
|
||||
assert_eq!(parser.collect::<Vec<Piece<'static>>>(), p);
|
||||
}
|
||||
|
||||
fn fmtdflt() -> FormatSpec<'static> {
|
||||
return FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: 0,
|
||||
precision: CountImplied,
|
||||
width: CountImplied,
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "",
|
||||
ty_span: None,
|
||||
};
|
||||
}
|
||||
|
||||
fn musterr(s: &str) {
|
||||
let mut p = Parser::new(s, None, None, false, ParseMode::Format);
|
||||
p.next();
|
||||
assert!(!p.errors.is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn simple() {
|
||||
same("asdf", &[String("asdf")]);
|
||||
same("a{{b", &[String("a"), String("{b")]);
|
||||
same("a}}b", &[String("a"), String("}b")]);
|
||||
same("a}}", &[String("a"), String("}")]);
|
||||
same("}}", &[String("}")]);
|
||||
same("\\}}", &[String("\\"), String("}")]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn invalid01() {
|
||||
musterr("{")
|
||||
}
|
||||
#[test]
|
||||
fn invalid02() {
|
||||
musterr("}")
|
||||
}
|
||||
#[test]
|
||||
fn invalid04() {
|
||||
musterr("{3a}")
|
||||
}
|
||||
#[test]
|
||||
fn invalid05() {
|
||||
musterr("{:|}")
|
||||
}
|
||||
#[test]
|
||||
fn invalid06() {
|
||||
musterr("{:>>>}")
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn format_nothing() {
|
||||
same("{}", &[NextArgument(Argument { position: ArgumentImplicitlyIs(0), format: fmtdflt() })]);
|
||||
}
|
||||
#[test]
|
||||
fn format_position() {
|
||||
same("{3}", &[NextArgument(Argument { position: ArgumentIs(3), format: fmtdflt() })]);
|
||||
}
|
||||
#[test]
|
||||
fn format_position_nothing_else() {
|
||||
same("{3:}", &[NextArgument(Argument { position: ArgumentIs(3), format: fmtdflt() })]);
|
||||
}
|
||||
#[test]
|
||||
fn format_type() {
|
||||
same(
|
||||
"{3:x}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentIs(3),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: 0,
|
||||
precision: CountImplied,
|
||||
width: CountImplied,
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "x",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
}
|
||||
#[test]
|
||||
fn format_align_fill() {
|
||||
same(
|
||||
"{3:>}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentIs(3),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignRight,
|
||||
flags: 0,
|
||||
precision: CountImplied,
|
||||
width: CountImplied,
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
same(
|
||||
"{3:0<}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentIs(3),
|
||||
format: FormatSpec {
|
||||
fill: Some('0'),
|
||||
align: AlignLeft,
|
||||
flags: 0,
|
||||
precision: CountImplied,
|
||||
width: CountImplied,
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
same(
|
||||
"{3:*<abcd}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentIs(3),
|
||||
format: FormatSpec {
|
||||
fill: Some('*'),
|
||||
align: AlignLeft,
|
||||
flags: 0,
|
||||
precision: CountImplied,
|
||||
width: CountImplied,
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "abcd",
|
||||
ty_span: Some(InnerSpan::new(6, 10)),
|
||||
},
|
||||
})],
|
||||
);
|
||||
}
|
||||
#[test]
|
||||
fn format_counts() {
|
||||
use rustc_span::{edition, SessionGlobals, SESSION_GLOBALS};
|
||||
SESSION_GLOBALS.set(&SessionGlobals::new(edition::DEFAULT_EDITION), || {
|
||||
same(
|
||||
"{:10x}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentImplicitlyIs(0),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: 0,
|
||||
precision: CountImplied,
|
||||
width: CountIs(10),
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "x",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
same(
|
||||
"{:10$.10x}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentImplicitlyIs(0),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: 0,
|
||||
precision: CountIs(10),
|
||||
width: CountIsParam(10),
|
||||
precision_span: None,
|
||||
width_span: Some(InnerSpan::new(3, 6)),
|
||||
ty: "x",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
same(
|
||||
"{:.*x}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentImplicitlyIs(1),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: 0,
|
||||
precision: CountIsParam(0),
|
||||
width: CountImplied,
|
||||
precision_span: Some(InnerSpan::new(3, 5)),
|
||||
width_span: None,
|
||||
ty: "x",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
same(
|
||||
"{:.10$x}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentImplicitlyIs(0),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: 0,
|
||||
precision: CountIsParam(10),
|
||||
width: CountImplied,
|
||||
precision_span: Some(InnerSpan::new(3, 7)),
|
||||
width_span: None,
|
||||
ty: "x",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
same(
|
||||
"{:a$.b$?}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentImplicitlyIs(0),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: 0,
|
||||
precision: CountIsName(Symbol::intern("b")),
|
||||
width: CountIsName(Symbol::intern("a")),
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "?",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
});
|
||||
}
|
||||
#[test]
|
||||
fn format_flags() {
|
||||
same(
|
||||
"{:-}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentImplicitlyIs(0),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: (1 << FlagSignMinus as u32),
|
||||
precision: CountImplied,
|
||||
width: CountImplied,
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
same(
|
||||
"{:+#}",
|
||||
&[NextArgument(Argument {
|
||||
position: ArgumentImplicitlyIs(0),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: (1 << FlagSignPlus as u32) | (1 << FlagAlternate as u32),
|
||||
precision: CountImplied,
|
||||
width: CountImplied,
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "",
|
||||
ty_span: None,
|
||||
},
|
||||
})],
|
||||
);
|
||||
}
|
||||
#[test]
|
||||
fn format_mixture() {
|
||||
same(
|
||||
"abcd {3:x} efg",
|
||||
&[
|
||||
String("abcd "),
|
||||
NextArgument(Argument {
|
||||
position: ArgumentIs(3),
|
||||
format: FormatSpec {
|
||||
fill: None,
|
||||
align: AlignUnknown,
|
||||
flags: 0,
|
||||
precision: CountImplied,
|
||||
width: CountImplied,
|
||||
precision_span: None,
|
||||
width_span: None,
|
||||
ty: "x",
|
||||
ty_span: None,
|
||||
},
|
||||
}),
|
||||
String(" efg"),
|
||||
],
|
||||
);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue