]> git.lizzy.rs Git - rust.git/commitdiff
Test macro diagnostics in body lowering
authorJonas Schievink <jonasschievink@gmail.com>
Wed, 2 Dec 2020 13:54:25 +0000 (14:54 +0100)
committerJonas Schievink <jonasschievink@gmail.com>
Wed, 2 Dec 2020 14:03:21 +0000 (15:03 +0100)
crates/hir_def/src/body/tests.rs

index f07df5cee551f4bf9fde45ee0aee9de0a6914dae..baf1179f1f4cbc329c8547d2bee5828cc869a3b7 100644 (file)
@@ -73,3 +73,44 @@ fn f() {
     ",
     );
 }
+
+#[test]
+fn macro_diag_builtin() {
+    check_diagnostics(
+        r#"
+fn f() {
+    // Test a handful of built-in (eager) macros:
+
+    include!(invalid);
+  //^^^^^^^^^^^^^^^^^ failed to parse or resolve macro invocation
+    include!("does not exist");
+  //^^^^^^^^^^^^^^^^^^^^^^^^^^ failed to parse or resolve macro invocation
+
+    env!(invalid);
+  //^^^^^^^^^^^^^ failed to parse or resolve macro invocation
+
+    // Lazy:
+
+    format_args!();
+  //^^^^^^^^^^^^^^ failed to parse or resolve macro invocation
+}
+        "#,
+    );
+}
+
+#[test]
+fn macro_rules_diag() {
+    check_diagnostics(
+        r#"
+macro_rules! m {
+    () => {};
+}
+fn f() {
+    m!();
+
+    m!(hi);
+  //^^^^^^ leftover tokens
+}
+      "#,
+    );
+}