Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-diagnostics/src/handlers/macro_error.rs')
-rw-r--r--crates/ide-diagnostics/src/handlers/macro_error.rs24
1 files changed, 16 insertions, 8 deletions
diff --git a/crates/ide-diagnostics/src/handlers/macro_error.rs b/crates/ide-diagnostics/src/handlers/macro_error.rs
index 2cd6a71c00..e59b63f288 100644
--- a/crates/ide-diagnostics/src/handlers/macro_error.rs
+++ b/crates/ide-diagnostics/src/handlers/macro_error.rs
@@ -7,7 +7,10 @@ pub(crate) fn macro_error(ctx: &DiagnosticsContext<'_>, d: &hir::MacroError) ->
// Use more accurate position if available.
let display_range = ctx.resolve_precise_location(&d.node, d.precise_location);
Diagnostic::new(
- DiagnosticCode::Ra("macro-error", Severity::Error),
+ DiagnosticCode::Ra(
+ "macro-error",
+ if d.error { Severity::Error } else { Severity::WeakWarning },
+ ),
d.message.clone(),
display_range,
)
@@ -45,7 +48,7 @@ macro_rules! include { () => {} }
macro_rules! compile_error { () => {} }
include!("doesntexist");
-//^^^^^^^ error: failed to load file `doesntexist`
+ //^^^^^^^^^^^^^ error: failed to load file `doesntexist`
compile_error!("compile_error macro works");
//^^^^^^^^^^^^^ error: compile_error macro works
@@ -125,7 +128,7 @@ macro_rules! env { () => {} }
macro_rules! concat { () => {} }
include!(concat!(env!("OUT_DIR"), "/out.rs"));
-//^^^^^^^ error: `OUT_DIR` not set, enable "build scripts" to fix
+ //^^^^^^^^^ error: `OUT_DIR` not set, enable "build scripts" to fix
"#,
);
}
@@ -160,20 +163,25 @@ macro_rules! include {}
#[rustc_builtin_macro]
macro_rules! compile_error {}
+#[rustc_builtin_macro]
+macro_rules! concat {}
fn main() {
// Test a handful of built-in (eager) macros:
include!(invalid);
- //^^^^^^^ error: could not convert tokens
+ //^^^^^^^ error: expected string literal
include!("does not exist");
- //^^^^^^^ error: failed to load file `does not exist`
+ //^^^^^^^^^^^^^^^^ error: failed to load file `does not exist`
+
+ include!(concat!("does ", "not ", "exist"));
+ //^^^^^^^^^^^^^^^^^^^^^^^^^^ error: failed to load file `does not exist`
env!(invalid);
- //^^^ error: could not convert tokens
+ //^^^^^^^ error: expected string literal
env!("OUT_DIR");
- //^^^ error: `OUT_DIR` not set, enable "build scripts" to fix
+ //^^^^^^^^^ error: `OUT_DIR` not set, enable "build scripts" to fix
compile_error!("compile_error works");
//^^^^^^^^^^^^^ error: compile_error works
@@ -198,7 +206,7 @@ fn f() {
m!();
m!(hi);
- //^ error: leftover tokens
+ //^ error: leftover tokens
}
"#,
);