diff --git a/.changeset/calm-foxes-dance.md b/.changeset/calm-foxes-dance.md new file mode 100644 index 000000000000..c5e8b70473d7 --- /dev/null +++ b/.changeset/calm-foxes-dance.md @@ -0,0 +1,5 @@ +--- +"@biomejs/biome": patch +--- + +Fixed [#8109](https://github.com/biomejs/biome/issues/8109): return statements in Astro frontmatter no longer trigger "Illegal return statement" errors when using `experimentalFullSupportEnabled`. diff --git a/crates/biome_cli/tests/cases/handle_astro_files.rs b/crates/biome_cli/tests/cases/handle_astro_files.rs index 8c2808a146d1..48a2faa204d0 100644 --- a/crates/biome_cli/tests/cases/handle_astro_files.rs +++ b/crates/biome_cli/tests/cases/handle_astro_files.rs @@ -718,3 +718,33 @@ function foo(){console.log("Hello")} result, )); } + +#[test] +fn does_not_throw_parse_error_for_return_full_support() { + let fs = MemoryFileSystem::default(); + let mut console = BufferConsole::default(); + + fs.insert( + "biome.json".into(), + r#"{ "html": { "experimentalFullSupportEnabled": true } }"#.as_bytes(), + ); + + let astro_file_path = Utf8Path::new("file.astro"); + fs.insert(astro_file_path.into(), ASTRO_RETURN.as_bytes()); + + let (fs, result) = run_cli( + fs, + &mut console, + Args::from(["lint", astro_file_path.as_str()].as_slice()), + ); + + assert!(result.is_ok(), "run_cli returned {result:?}"); + + assert_cli_snapshot(SnapshotPayload::new( + module_path!(), + "does_not_throw_parse_error_for_return_full_support", + fs, + console, + result, + )); +} diff --git a/crates/biome_cli/tests/snapshots/main_cases_handle_astro_files/does_not_throw_parse_error_for_return_full_support.snap b/crates/biome_cli/tests/snapshots/main_cases_handle_astro_files/does_not_throw_parse_error_for_return_full_support.snap new file mode 100644 index 000000000000..25f6ff57bb68 --- /dev/null +++ b/crates/biome_cli/tests/snapshots/main_cases_handle_astro_files/does_not_throw_parse_error_for_return_full_support.snap @@ -0,0 +1,28 @@ +--- +source: crates/biome_cli/tests/snap_test.rs +expression: redactor(content) +--- +## `biome.json` + +```json +{ "html": { "experimentalFullSupportEnabled": true } } +``` + +## `file.astro` + +```astro +--- +const foo = true; +if (foo) { + return "Something"; +} + +--- +
+``` + +# Emitted Messages + +```block +Checked 1 file in