about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2021-10-09 14:45:52 +0300
committerAleksey Kladov <aleksey.kladov@gmail.com>2021-10-09 14:45:52 +0300
commit5ecda802f1f34e404082d01d33d0a9e85c035e48 (patch)
tree4f19e0d0952c5d476e477e5253b951ad4e05fa51
parentf4ee0d736c6cc857c0941526452e73f2585f8398 (diff)
downloadrust-5ecda802f1f34e404082d01d33d0a9e85c035e48.tar.gz
rust-5ecda802f1f34e404082d01d33d0a9e85c035e48.zip
move test
-rw-r--r--crates/hir_def/src/macro_expansion_tests.rs23
-rw-r--r--crates/mbe/src/subtree_source.rs21
2 files changed, 23 insertions, 21 deletions
diff --git a/crates/hir_def/src/macro_expansion_tests.rs b/crates/hir_def/src/macro_expansion_tests.rs
index 386bd4f1b56..a5e941454c0 100644
--- a/crates/hir_def/src/macro_expansion_tests.rs
+++ b/crates/hir_def/src/macro_expansion_tests.rs
@@ -180,6 +180,7 @@ macro_rules! m {
         let _ = 1000;
         let _ = 12E+99_f64;
         let _ = "rust1";
+        let _ = -92;
     }
 }
 fn f() {
@@ -193,6 +194,7 @@ macro_rules! m {
         let _ = 1000;
         let _ = 12E+99_f64;
         let _ = "rust1";
+        let _ = -92;
     }
 }
 fn f() {
@@ -200,6 +202,7 @@ fn f() {
     let_ = 1000;
     let_ = 12E+99_f64;
     let_ = "rust1";
+    let_ = -92;
 }
 "#]],
     );
@@ -224,3 +227,23 @@ macro_rules! m2 { ($x:ident) => {} }
 "#]],
     )
 }
+
+#[test]
+fn unary_minus_is_a_literal() {
+    check(
+        r#"
+macro_rules! m { ($x:literal) => (literal!()); ($x:tt) => (not_a_literal!()); }
+m!(92);
+m!(-92);
+m!(-9.2);
+m!(--92);
+"#,
+        expect![[r#"
+macro_rules! m { ($x:literal) => (literal!()); ($x:tt) => (not_a_literal!()); }
+literal!()
+literal!()
+literal!()
+/* error: leftover tokens */not_a_literal!()
+"#]],
+    )
+}
diff --git a/crates/mbe/src/subtree_source.rs b/crates/mbe/src/subtree_source.rs
index ffc2a60172b..0f852d33d5b 100644
--- a/crates/mbe/src/subtree_source.rs
+++ b/crates/mbe/src/subtree_source.rs
@@ -181,24 +181,3 @@ fn convert_leaf(leaf: &tt::Leaf) -> TtToken {
         tt::Leaf::Punct(punct) => convert_punct(*punct),
     }
 }
-
-#[cfg(test)]
-mod tests {
-    use super::{convert_literal, TtToken};
-    use parser::Token;
-    use syntax::{SmolStr, SyntaxKind};
-
-    #[test]
-    fn test_negative_literal() {
-        assert_eq!(
-            convert_literal(&tt::Literal {
-                id: tt::TokenId::unspecified(),
-                text: SmolStr::new("-42.0")
-            }),
-            TtToken {
-                tt: Token { kind: SyntaxKind::FLOAT_NUMBER, is_jointed_to_next: false },
-                text: SmolStr::new("-42.0")
-            }
-        );
-    }
-}