Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/nameres/diagnostics.rs')
-rw-r--r--crates/hir-def/src/nameres/diagnostics.rs55
1 files changed, 41 insertions, 14 deletions
diff --git a/crates/hir-def/src/nameres/diagnostics.rs b/crates/hir-def/src/nameres/diagnostics.rs
index 523a4c107b..4ab53d20b5 100644
--- a/crates/hir-def/src/nameres/diagnostics.rs
+++ b/crates/hir-def/src/nameres/diagnostics.rs
@@ -17,16 +17,47 @@ use crate::{
#[derive(Debug, PartialEq, Eq)]
pub enum DefDiagnosticKind {
- UnresolvedModule { ast: AstId<ast::Module>, candidates: Box<[String]> },
- UnresolvedExternCrate { ast: AstId<ast::ExternCrate> },
- UnresolvedImport { id: ItemTreeId<item_tree::Use>, index: Idx<ast::UseTree> },
- UnconfiguredCode { ast: ErasedAstId, cfg: CfgExpr, opts: CfgOptions },
- UnresolvedProcMacro { ast: MacroCallKind, krate: CrateId },
- UnresolvedMacroCall { ast: MacroCallKind, path: ModPath },
- UnimplementedBuiltinMacro { ast: AstId<ast::Macro> },
- InvalidDeriveTarget { ast: AstId<ast::Item>, id: usize },
- MalformedDerive { ast: AstId<ast::Adt>, id: usize },
- MacroDefError { ast: AstId<ast::Macro>, message: String },
+ UnresolvedModule {
+ ast: AstId<ast::Module>,
+ candidates: Box<[String]>,
+ },
+ UnresolvedExternCrate {
+ ast: AstId<ast::ExternCrate>,
+ },
+ UnresolvedImport {
+ id: ItemTreeId<item_tree::Use>,
+ index: Idx<ast::UseTree>,
+ },
+ UnconfiguredCode {
+ ast: ErasedAstId,
+ cfg: CfgExpr,
+ opts: CfgOptions,
+ },
+ /// A proc-macro that is lacking an expander, this might be due to build scripts not yet having
+ /// run or proc-macro expansion being disabled.
+ UnresolvedProcMacro {
+ ast: MacroCallKind,
+ krate: CrateId,
+ },
+ UnresolvedMacroCall {
+ ast: MacroCallKind,
+ path: ModPath,
+ },
+ UnimplementedBuiltinMacro {
+ ast: AstId<ast::Macro>,
+ },
+ InvalidDeriveTarget {
+ ast: AstId<ast::Item>,
+ id: usize,
+ },
+ MalformedDerive {
+ ast: AstId<ast::Adt>,
+ id: usize,
+ },
+ MacroDefError {
+ ast: AstId<ast::Macro>,
+ message: String,
+ },
}
#[derive(Clone, Debug, PartialEq, Eq)]
@@ -92,10 +123,6 @@ impl DefDiagnostic {
Self { in_module: container, kind: DefDiagnosticKind::UnconfiguredCode { ast, cfg, opts } }
}
- // FIXME: Whats the difference between this and unresolved_macro_call
- // FIXME: This is used for a lot of things, unresolved proc macros, disabled proc macros, etc
- // yet the diagnostic handler in ide-diagnostics has to figure out what happened because this
- // struct loses all that information!
pub fn unresolved_proc_macro(
container: LocalModuleId,
ast: MacroCallKind,