diff --git a/crates/oxc_linter/src/rules/eslint/no_plusplus.rs b/crates/oxc_linter/src/rules/eslint/no_plusplus.rs index aaf0c91f6..60b66c94e 100644 --- a/crates/oxc_linter/src/rules/eslint/no_plusplus.rs +++ b/crates/oxc_linter/src/rules/eslint/no_plusplus.rs @@ -1,21 +1,25 @@ -use oxc_ast::AstKind; +use oxc_ast::{ast::UpdateOperator, AstKind}; use oxc_diagnostics::OxcDiagnostic; use oxc_macros::declare_oxc_lint; use oxc_span::Span; use crate::{context::LintContext, rule::Rule, AstNode}; -fn no_plusplus_diagnostic(span: Span, operator: &str) -> OxcDiagnostic { - let diagnostic = - OxcDiagnostic::warn(format!("Unary operator '{operator}' used.")).with_label(span); +fn no_plusplus_diagnostic(span: Span, operator: UpdateOperator) -> OxcDiagnostic { + let diagnostic = OxcDiagnostic::warn(format!( + "Unary operator '{operator}' used.", + operator = operator.as_str() + )) + .with_label(span); - if operator == "++" { - return diagnostic.with_help("Use the assignment operator `+=` instead."); - } else if operator == "--" { - return diagnostic.with_help("Use the assignment operator `-=` instead."); + match operator { + UpdateOperator::Increment => { + diagnostic.with_help("Use the assignment operator `+=` instead.") + } + UpdateOperator::Decrement => { + diagnostic.with_help("Use the assignment operator `-=` instead.") + } } - - diagnostic } #[derive(Debug, Default, Clone)] @@ -98,7 +102,7 @@ impl Rule for NoPlusplus { return; } - ctx.diagnostic(no_plusplus_diagnostic(expr.span, expr.operator.as_str())); + ctx.diagnostic(no_plusplus_diagnostic(expr.span, expr.operator)); } }