aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorJonas Schievink <[email protected]>2020-12-02 13:54:25 +0000
committerJonas Schievink <[email protected]>2020-12-02 14:03:21 +0000
commitf4866bb05cca51b4c50ae8fdcd07dc71543d56c7 (patch)
treed24e5b50266d80394153eaa9bd3b4dcbdd47120b /crates
parent3e1fb112af3968110704125301646d6a3fc20c8c (diff)
Test macro diagnostics in body lowering
Diffstat (limited to 'crates')
-rw-r--r--crates/hir_def/src/body/tests.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/crates/hir_def/src/body/tests.rs b/crates/hir_def/src/body/tests.rs
index f07df5cee..baf1179f1 100644
--- a/crates/hir_def/src/body/tests.rs
+++ b/crates/hir_def/src/body/tests.rs
@@ -73,3 +73,44 @@ fn f() {
73 ", 73 ",
74 ); 74 );
75} 75}
76
77#[test]
78fn macro_diag_builtin() {
79 check_diagnostics(
80 r#"
81fn f() {
82 // Test a handful of built-in (eager) macros:
83
84 include!(invalid);
85 //^^^^^^^^^^^^^^^^^ failed to parse or resolve macro invocation
86 include!("does not exist");
87 //^^^^^^^^^^^^^^^^^^^^^^^^^^ failed to parse or resolve macro invocation
88
89 env!(invalid);
90 //^^^^^^^^^^^^^ failed to parse or resolve macro invocation
91
92 // Lazy:
93
94 format_args!();
95 //^^^^^^^^^^^^^^ failed to parse or resolve macro invocation
96}
97 "#,
98 );
99}
100
101#[test]
102fn macro_rules_diag() {
103 check_diagnostics(
104 r#"
105macro_rules! m {
106 () => {};
107}
108fn f() {
109 m!();
110
111 m!(hi);
112 //^^^^^^ leftover tokens
113}
114 "#,
115 );
116}