aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/diagnostics.rs
diff options
context:
space:
mode:
authorJosh Mcguigan <[email protected]>2020-03-24 11:40:58 +0000
committerJosh Mcguigan <[email protected]>2020-04-07 13:12:08 +0100
commit8c378af72117e92bc894fd4a79e978ef0d1c0cc7 (patch)
tree6c011c93de19d4bca21de349b5c050459a6aaf6d /crates/ra_hir_ty/src/diagnostics.rs
parentb7e5d94bda362ffc21174a79aa0be113c3288e1e (diff)
missing match arms diagnostic
Diffstat (limited to 'crates/ra_hir_ty/src/diagnostics.rs')
-rw-r--r--crates/ra_hir_ty/src/diagnostics.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/crates/ra_hir_ty/src/diagnostics.rs b/crates/ra_hir_ty/src/diagnostics.rs
index 0f8522021..3457905e2 100644
--- a/crates/ra_hir_ty/src/diagnostics.rs
+++ b/crates/ra_hir_ty/src/diagnostics.rs
@@ -6,7 +6,7 @@ use hir_expand::{db::AstDatabase, name::Name, HirFileId, InFile};
6use ra_syntax::{ast, AstNode, AstPtr, SyntaxNodePtr}; 6use ra_syntax::{ast, AstNode, AstPtr, SyntaxNodePtr};
7use stdx::format_to; 7use stdx::format_to;
8 8
9pub use hir_def::diagnostics::UnresolvedModule; 9pub use hir_def::{diagnostics::UnresolvedModule, expr::MatchArm};
10pub use hir_expand::diagnostics::{AstDiagnostic, Diagnostic, DiagnosticSink}; 10pub use hir_expand::diagnostics::{AstDiagnostic, Diagnostic, DiagnosticSink};
11 11
12#[derive(Debug)] 12#[derive(Debug)]
@@ -63,6 +63,24 @@ impl AstDiagnostic for MissingFields {
63} 63}
64 64
65#[derive(Debug)] 65#[derive(Debug)]
66pub struct MissingMatchArms {
67 pub file: HirFileId,
68 pub arms: AstPtr<ast::MatchArmList>,
69}
70
71impl Diagnostic for MissingMatchArms {
72 fn message(&self) -> String {
73 String::from("Missing match arm")
74 }
75 fn source(&self) -> InFile<SyntaxNodePtr> {
76 InFile { file_id: self.file, value: self.arms.into() }
77 }
78 fn as_any(&self) -> &(dyn Any + Send + 'static) {
79 self
80 }
81}
82
83#[derive(Debug)]
66pub struct MissingOkInTailExpr { 84pub struct MissingOkInTailExpr {
67 pub file: HirFileId, 85 pub file: HirFileId,
68 pub expr: AstPtr<ast::Expr>, 86 pub expr: AstPtr<ast::Expr>,