mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 12:29:21 +00:00
Add fix for incorrect case diagnostic
This commit is contained in:
parent
17f1026c46
commit
e24e22f288
8 changed files with 112 additions and 30 deletions
|
@ -257,34 +257,22 @@ impl ModuleDef {
|
|||
}
|
||||
|
||||
pub fn diagnostics(self, db: &dyn HirDatabase, sink: &mut DiagnosticSink) {
|
||||
match self {
|
||||
let id = match self {
|
||||
ModuleDef::Adt(it) => match it {
|
||||
Adt::Struct(it) => {
|
||||
hir_ty::diagnostics::validate_module_item(db, it.id.into(), sink)
|
||||
}
|
||||
Adt::Enum(it) => hir_ty::diagnostics::validate_module_item(db, it.id.into(), sink),
|
||||
Adt::Union(it) => hir_ty::diagnostics::validate_module_item(db, it.id.into(), sink),
|
||||
Adt::Struct(it) => it.id.into(),
|
||||
Adt::Enum(it) => it.id.into(),
|
||||
Adt::Union(it) => it.id.into(),
|
||||
},
|
||||
ModuleDef::Trait(it) => {
|
||||
hir_ty::diagnostics::validate_module_item(db, it.id.into(), sink)
|
||||
}
|
||||
ModuleDef::Function(it) => {
|
||||
hir_ty::diagnostics::validate_module_item(db, it.id.into(), sink)
|
||||
}
|
||||
ModuleDef::TypeAlias(it) => {
|
||||
hir_ty::diagnostics::validate_module_item(db, it.id.into(), sink)
|
||||
}
|
||||
ModuleDef::Module(it) => {
|
||||
hir_ty::diagnostics::validate_module_item(db, it.id.into(), sink)
|
||||
}
|
||||
ModuleDef::Const(it) => {
|
||||
hir_ty::diagnostics::validate_module_item(db, it.id.into(), sink)
|
||||
}
|
||||
ModuleDef::Static(it) => {
|
||||
hir_ty::diagnostics::validate_module_item(db, it.id.into(), sink)
|
||||
}
|
||||
ModuleDef::Trait(it) => it.id.into(),
|
||||
ModuleDef::Function(it) => it.id.into(),
|
||||
ModuleDef::TypeAlias(it) => it.id.into(),
|
||||
ModuleDef::Module(it) => it.id.into(),
|
||||
ModuleDef::Const(it) => it.id.into(),
|
||||
ModuleDef::Static(it) => it.id.into(),
|
||||
_ => return,
|
||||
}
|
||||
};
|
||||
|
||||
hir_ty::diagnostics::validate_module_item(db, id, sink)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -389,6 +377,8 @@ impl Module {
|
|||
let crate_def_map = db.crate_def_map(self.id.krate);
|
||||
crate_def_map.add_diagnostics(db.upcast(), self.id.local_id, sink);
|
||||
for decl in self.declarations(db) {
|
||||
decl.diagnostics(db, sink);
|
||||
|
||||
match decl {
|
||||
crate::ModuleDef::Function(f) => f.diagnostics(db, sink),
|
||||
crate::ModuleDef::Module(m) => {
|
||||
|
|
|
@ -2,5 +2,6 @@
|
|||
pub use hir_def::diagnostics::UnresolvedModule;
|
||||
pub use hir_expand::diagnostics::{Diagnostic, DiagnosticSink, DiagnosticSinkBuilder};
|
||||
pub use hir_ty::diagnostics::{
|
||||
MismatchedArgCount, MissingFields, MissingMatchArms, MissingOkInTailExpr, NoSuchField,
|
||||
IncorrectCase, MismatchedArgCount, MissingFields, MissingMatchArms, MissingOkInTailExpr,
|
||||
NoSuchField,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue