add expr tests

This commit is contained in:
Aleksey Kladov 2021-12-30 15:09:37 +03:00
parent 58fa7ce782
commit 287e748aa9
2 changed files with 29 additions and 1 deletions

View file

@ -103,3 +103,22 @@ macro_rules! m {
"#]],
);
}
#[test]
fn range_patterns() {
// FIXME: rustc thinks there are three patterns here, not one.
check(
r#"
macro_rules! m {
($($p:pat)*) => (stringify!($($p |)*);)
}
m!(.. .. ..);
"#,
expect![[r#"
macro_rules! m {
($($p:pat)*) => (stringify!($($p |)*);)
}
stringify!(.. .. ..|);
"#]],
);
}

View file

@ -33,7 +33,7 @@ fn stmt() {
fn pat() {
check_prefix(PrefixEntryPoint::Pat, "x y", "x");
check_prefix(PrefixEntryPoint::Pat, "fn f() {}", "fn");
// FIXME: this one is wrong
// FIXME: This one is wrong, we should consume only one pattern.
check_prefix(PrefixEntryPoint::Pat, ".. ..", ".. ..");
}
@ -44,6 +44,15 @@ fn ty() {
check_prefix(PrefixEntryPoint::Ty, "struct f", "struct");
}
#[test]
fn expr() {
check_prefix(PrefixEntryPoint::Expr, "92 92", "92");
check_prefix(PrefixEntryPoint::Expr, "+1", "+");
check_prefix(PrefixEntryPoint::Expr, "-1", "-1");
check_prefix(PrefixEntryPoint::Expr, "fn foo() {}", "fn");
check_prefix(PrefixEntryPoint::Expr, "#[attr] ()", "#[attr] ()");
}
fn check_prefix(entry: PrefixEntryPoint, input: &str, prefix: &str) {
let lexed = LexedStr::new(input);
let input = lexed.to_input();