From 3b40fbdbac3105d7ea1ec1cd9d8d46e5cbbcbd5c Mon Sep 17 00:00:00 2001 From: Boshen Date: Mon, 15 Jan 2024 14:36:48 +0800 Subject: [PATCH] fix(linter): false positive for filename_case where filename doesn't have a proper casing (#2032) --- crates/oxc_linter/src/rules/unicorn/filename_case.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/crates/oxc_linter/src/rules/unicorn/filename_case.rs b/crates/oxc_linter/src/rules/unicorn/filename_case.rs index 89cb897ee..098ce8439 100644 --- a/crates/oxc_linter/src/rules/unicorn/filename_case.rs +++ b/crates/oxc_linter/src/rules/unicorn/filename_case.rs @@ -98,7 +98,7 @@ impl Rule for FilenameCase { fn run_once<'a>(&self, ctx: &LintContext<'_>) { let Some(filename) = ctx.file_path().file_stem().and_then(|s| s.to_str()) else { return }; - let mut case_name = ""; + let mut case_name = None; let cases = [ (Case::Kebab, "kebab", self.kebab_case), @@ -113,11 +113,13 @@ impl Rule for FilenameCase { if condition { return; } - case_name = name; + case_name.replace(name); } } - ctx.diagnostic(FilenameCaseDiagnostic(Span::default(), case_name)); + if let Some(case_name) = case_name { + ctx.diagnostic(FilenameCaseDiagnostic(Span::default(), case_name)); + } } } @@ -131,6 +133,7 @@ fn test() { ("", None, None, Some(PathBuf::from("foo/bar/baz/Que.tsx"))), // should pass - camel_case, pascal_case both allowed ("", None, None, Some(PathBuf::from("foo/bar/baz/QueAbc.tsx"))), + ("", None, None, Some(PathBuf::from("ansiHTML.tsx"))), ]; let fail = vec![ // should pass - by default kebab_case is not allowed