From 94440ad35ffd9b221724f3a4ee0c316b9ee38cfc Mon Sep 17 00:00:00 2001 From: rzvxa <3788964+rzvxa@users.noreply.github.com> Date: Mon, 5 Aug 2024 01:15:39 +0000 Subject: [PATCH] fix(linter): panic on invalid lang in `a11y/lang`. (#4630) fixes #4629 --- crates/oxc_linter/src/rules/jsx_a11y/lang.rs | 4 ++-- crates/oxc_linter/src/snapshots/lang.snap | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/crates/oxc_linter/src/rules/jsx_a11y/lang.rs b/crates/oxc_linter/src/rules/jsx_a11y/lang.rs index d8820c974..a16e28a21 100644 --- a/crates/oxc_linter/src/rules/jsx_a11y/lang.rs +++ b/crates/oxc_linter/src/rules/jsx_a11y/lang.rs @@ -94,8 +94,7 @@ fn is_valid_lang_prop(item: &JSXAttributeItem) -> bool { !container.expression.is_expression() || !container.expression.is_undefined() } Some(JSXAttributeValue::StringLiteral(str)) => { - let language_tag = LanguageTag::parse(str.value.as_str()).unwrap(); - language_tag.is_valid() + LanguageTag::parse(str.value.as_str()).as_ref().is_ok_and(LanguageTag::is_valid) } _ => true, } @@ -135,6 +134,7 @@ fn test() { let fail = vec![ ("", None, None, None), + ("", None, None, None), ("", None, None, None), ("", None, None, None), ("", None, Some(settings()), None), diff --git a/crates/oxc_linter/src/snapshots/lang.snap b/crates/oxc_linter/src/snapshots/lang.snap index ccb95a9a7..9bc271ccb 100644 --- a/crates/oxc_linter/src/snapshots/lang.snap +++ b/crates/oxc_linter/src/snapshots/lang.snap @@ -8,6 +8,13 @@ source: crates/oxc_linter/src/tester.rs ╰──── help: Set a valid value for lang attribute. + ⚠ eslint-plugin-jsx-a11y(lang): Lang attribute must have a valid value. + ╭─[lang.tsx:1:7] + 1 │ + · ──────── + ╰──── + help: Set a valid value for lang attribute. + ⚠ eslint-plugin-jsx-a11y(lang): Lang attribute must have a valid value. ╭─[lang.tsx:1:7] 1 │