From 1d2772c2c7dc0a42d8a9429d24ea41412add61b3 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Mon, 14 Jun 2021 13:15:05 +0300 Subject: internal: move diagnostics to a new crate --- .../ide/src/diagnostics/unresolved_macro_call.rs | 84 ---------------------- 1 file changed, 84 deletions(-) delete mode 100644 crates/ide/src/diagnostics/unresolved_macro_call.rs (limited to 'crates/ide/src/diagnostics/unresolved_macro_call.rs') diff --git a/crates/ide/src/diagnostics/unresolved_macro_call.rs b/crates/ide/src/diagnostics/unresolved_macro_call.rs deleted file mode 100644 index 15b6a2730..000000000 --- a/crates/ide/src/diagnostics/unresolved_macro_call.rs +++ /dev/null @@ -1,84 +0,0 @@ -use hir::{db::AstDatabase, InFile}; -use syntax::{AstNode, SyntaxNodePtr}; - -use crate::diagnostics::{Diagnostic, DiagnosticsContext}; - -// Diagnostic: unresolved-macro-call -// -// This diagnostic is triggered if rust-analyzer is unable to resolve the path -// to a macro in a macro invocation. -pub(super) fn unresolved_macro_call( - ctx: &DiagnosticsContext<'_>, - d: &hir::UnresolvedMacroCall, -) -> Diagnostic { - let last_path_segment = ctx.sema.db.parse_or_expand(d.macro_call.file_id).and_then(|root| { - d.macro_call - .value - .to_node(&root) - .path() - .and_then(|it| it.segment()) - .and_then(|it| it.name_ref()) - .map(|it| InFile::new(d.macro_call.file_id, SyntaxNodePtr::new(it.syntax()))) - }); - let diagnostics = last_path_segment.unwrap_or_else(|| d.macro_call.clone().map(|it| it.into())); - - Diagnostic::new( - "unresolved-macro-call", - format!("unresolved macro `{}!`", d.path), - ctx.sema.diagnostics_display_range(diagnostics).range, - ) - .experimental() -} - -#[cfg(test)] -mod tests { - use crate::diagnostics::tests::check_diagnostics; - - #[test] - fn unresolved_macro_diag() { - check_diagnostics( - r#" -fn f() { - m!(); -} //^ unresolved macro `m!` - -"#, - ); - } - - #[test] - fn test_unresolved_macro_range() { - check_diagnostics( - r#" -foo::bar!(92); - //^^^ unresolved macro `foo::bar!` -"#, - ); - } - - #[test] - fn unresolved_legacy_scope_macro() { - check_diagnostics( - r#" -macro_rules! m { () => {} } - -m!(); m2!(); - //^^ unresolved macro `self::m2!` -"#, - ); - } - - #[test] - fn unresolved_module_scope_macro() { - check_diagnostics( - r#" -mod mac { -#[macro_export] -macro_rules! m { () => {} } } - -self::m!(); self::m2!(); - //^^ unresolved macro `self::m2!` -"#, - ); - } -} -- cgit v1.2.3