From b404b91da68556141ad39fffcef2865f073dd3d1 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 13 Jun 2021 22:11:33 +0300 Subject: minor: dead code --- crates/ide/src/diagnostics.rs | 61 +++++++++------------------ crates/ide/src/diagnostics/field_shorthand.rs | 23 +++++----- 2 files changed, 34 insertions(+), 50 deletions(-) diff --git a/crates/ide/src/diagnostics.rs b/crates/ide/src/diagnostics.rs index c024e3e1e..253c360bb 100644 --- a/crates/ide/src/diagnostics.rs +++ b/crates/ide/src/diagnostics.rs @@ -86,36 +86,14 @@ impl Diagnostic { self } - fn error(range: TextRange, message: String) -> Self { - Self { - message, - range, - severity: Severity::Error, - fixes: None, - unused: false, - code: None, - experimental: false, - } - } - - fn hint(range: TextRange, message: String) -> Self { - Self { - message, - range, - severity: Severity::WeakWarning, - fixes: None, - unused: false, - code: None, - experimental: false, - } - } - - fn with_fixes(self, fixes: Option>) -> Self { - Self { fixes, ..self } + fn with_fixes(mut self, fixes: Option>) -> Diagnostic { + self.fixes = fixes; + self } - fn with_unused(self, unused: bool) -> Self { - Self { unused, ..self } + fn with_unused(mut self, unused: bool) -> Diagnostic { + self.unused = unused; + self } } @@ -150,11 +128,9 @@ pub(crate) fn diagnostics( // [#34344] Only take first 128 errors to prevent slowing down editor/ide, the number 128 is chosen arbitrarily. res.extend( - parse - .errors() - .iter() - .take(128) - .map(|err| Diagnostic::error(err.range(), format!("Syntax Error: {}", err))), + parse.errors().iter().take(128).map(|err| { + Diagnostic::new("syntax-error", format!("Syntax Error: {}", err), err.range()) + }), ); for node in parse.tree().syntax().descendants() { @@ -244,13 +220,18 @@ fn check_unnecessary_braces_in_use_statement( }); acc.push( - Diagnostic::hint(use_range, "Unnecessary braces in use statement".to_string()) - .with_fixes(Some(vec![fix( - "remove_braces", - "Remove unnecessary braces", - SourceChange::from_text_edit(file_id, edit), - use_range, - )])), + Diagnostic::new( + "unnecessary-braces", + "Unnecessary braces in use statement".to_string(), + use_range, + ) + .severity(Severity::WeakWarning) + .with_fixes(Some(vec![fix( + "remove_braces", + "Remove unnecessary braces", + SourceChange::from_text_edit(file_id, edit), + use_range, + )])), ); } diff --git a/crates/ide/src/diagnostics/field_shorthand.rs b/crates/ide/src/diagnostics/field_shorthand.rs index e885a398e..c7f4dab8e 100644 --- a/crates/ide/src/diagnostics/field_shorthand.rs +++ b/crates/ide/src/diagnostics/field_shorthand.rs @@ -5,7 +5,7 @@ use ide_db::{base_db::FileId, source_change::SourceChange}; use syntax::{ast, match_ast, AstNode, SyntaxNode}; use text_edit::TextEdit; -use crate::{diagnostics::fix, Diagnostic}; +use crate::{diagnostics::fix, Diagnostic, Severity}; pub(super) fn check(acc: &mut Vec, file_id: FileId, node: &SyntaxNode) { match_ast! { @@ -46,7 +46,8 @@ fn check_expr_field_shorthand( let field_range = record_field.syntax().text_range(); acc.push( - Diagnostic::hint(field_range, "Shorthand struct initialization".to_string()) + Diagnostic::new("use-field-shorthand", "Shorthand struct initialization", field_range) + .severity(Severity::WeakWarning) .with_fixes(Some(vec![fix( "use_expr_field_shorthand", "Use struct shorthand initialization", @@ -85,14 +86,16 @@ fn check_pat_field_shorthand( let edit = edit_builder.finish(); let field_range = record_pat_field.syntax().text_range(); - acc.push(Diagnostic::hint(field_range, "Shorthand struct pattern".to_string()).with_fixes( - Some(vec![fix( - "use_pat_field_shorthand", - "Use struct field shorthand", - SourceChange::from_text_edit(file_id, edit), - field_range, - )]), - )); + acc.push( + Diagnostic::new("use-field-shorthand", "Shorthand struct pattern", field_range) + .severity(Severity::WeakWarning) + .with_fixes(Some(vec![fix( + "use_pat_field_shorthand", + "Use struct field shorthand", + SourceChange::from_text_edit(file_id, edit), + field_range, + )])), + ); } } -- cgit v1.2.3 From 500c909c76a5165e3e3c6ff2eacc009c90f08bbe Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 13 Jun 2021 22:17:05 +0300 Subject: internal: diagnostic code is mandatory --- crates/ide/src/diagnostics.rs | 23 +++++++---------------- crates/ide/src/diagnostics/unresolved_module.rs | 12 +++++------- crates/rust-analyzer/src/handlers.rs | 11 +++++------ 3 files changed, 17 insertions(+), 29 deletions(-) diff --git a/crates/ide/src/diagnostics.rs b/crates/ide/src/diagnostics.rs index 253c360bb..815a633e5 100644 --- a/crates/ide/src/diagnostics.rs +++ b/crates/ide/src/diagnostics.rs @@ -51,28 +51,26 @@ impl DiagnosticCode { #[derive(Debug)] pub struct Diagnostic { - // pub name: Option, + pub code: DiagnosticCode, pub message: String, pub range: TextRange, pub severity: Severity, - pub fixes: Option>, pub unused: bool, - pub code: Option, pub experimental: bool, + pub fixes: Option>, } impl Diagnostic { fn new(code: &'static str, message: impl Into, range: TextRange) -> Diagnostic { let message = message.into(); - let code = Some(DiagnosticCode(code)); - Self { + Diagnostic { + code: DiagnosticCode(code), message, range, severity: Severity::Error, - fixes: None, unused: false, - code, experimental: false, + fixes: None, } } @@ -181,15 +179,8 @@ pub(crate) fn diagnostics( } res.retain(|d| { - if let Some(code) = d.code { - if ctx.config.disabled.contains(code.as_str()) { - return false; - } - } - if ctx.config.disable_experimental && d.experimental { - return false; - } - true + !ctx.config.disabled.contains(d.code.as_str()) + && !(ctx.config.disable_experimental && d.experimental) }); res diff --git a/crates/ide/src/diagnostics/unresolved_module.rs b/crates/ide/src/diagnostics/unresolved_module.rs index b1da8f0e1..977b46414 100644 --- a/crates/ide/src/diagnostics/unresolved_module.rs +++ b/crates/ide/src/diagnostics/unresolved_module.rs @@ -65,9 +65,14 @@ mod baz {} expect![[r#" [ Diagnostic { + code: DiagnosticCode( + "unresolved-module", + ), message: "unresolved module", range: 0..8, severity: Error, + unused: false, + experimental: false, fixes: Some( [ Assist { @@ -98,13 +103,6 @@ mod baz {} }, ], ), - unused: false, - code: Some( - DiagnosticCode( - "unresolved-module", - ), - ), - experimental: false, }, ] "#]], diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs index a81e398c4..ccf66294f 100644 --- a/crates/rust-analyzer/src/handlers.rs +++ b/crates/rust-analyzer/src/handlers.rs @@ -1229,14 +1229,13 @@ pub(crate) fn publish_diagnostics( .map(|d| Diagnostic { range: to_proto::range(&line_index, d.range), severity: Some(to_proto::diagnostic_severity(d.severity)), - code: d.code.map(|d| d.as_str().to_owned()).map(NumberOrString::String), - code_description: d.code.and_then(|code| { - lsp_types::Url::parse(&format!( + code: Some(NumberOrString::String(d.code.as_str().to_string())), + code_description: Some(lsp_types::CodeDescription { + href: lsp_types::Url::parse(&format!( "https://rust-analyzer.github.io/manual.html#{}", - code.as_str() + d.code.as_str() )) - .ok() - .map(|href| lsp_types::CodeDescription { href }) + .unwrap(), }), source: Some("rust-analyzer".to_string()), message: d.message, -- cgit v1.2.3