From c217f27c338891299816d10b3c4e5afe40c3a7ec Mon Sep 17 00:00:00 2001 From: Bill Collins Date: Tue, 4 Feb 2025 13:17:49 +0000 Subject: [PATCH 1/2] Add failing test for composing default class --- src/lib.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 508b1984..15344f13 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -24064,6 +24064,35 @@ mod tests { false, ); + css_modules_test( + r#" + .a { + composes: default; + color: red; + } + + .default { + color: blue; + } + "#, + indoc! {r#" + .EgL3uq_a { + color: red; + } + + .EgL3uq_default { + color: #00f; + } + "#}, + map! { + "a" => "EgL3uq_a" "EgL3uq_default", + "default" => "EgL3uq_default" + }, + HashMap::new(), + Default::default(), + false + ); + css_modules_test( r#" .foo { From e008fc980c7de7ad2e5ff93bd5d67703c6403544 Mon Sep 17 00:00:00 2001 From: Bill Collins Date: Tue, 4 Feb 2025 19:58:41 +0000 Subject: [PATCH 2/2] Bypass custom ident validation not relevant to composes values --- src/properties/css_modules.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/properties/css_modules.rs b/src/properties/css_modules.rs index dc8046f3..c0fdd995 100644 --- a/src/properties/css_modules.rs +++ b/src/properties/css_modules.rs @@ -78,7 +78,7 @@ impl<'i> Parse<'i> for Composes<'i> { fn parse_one_ident<'i, 't>( input: &mut Parser<'i, 't>, ) -> Result, ParseError<'i, ParserError<'i>>> { - let name = CustomIdent::parse(input)?; + let name = CustomIdent(input.expect_ident()?.into()); if name.0.eq_ignore_ascii_case("from") { return Err(input.new_error_for_next_token()); }