diff --git a/src/args.rs b/src/args.rs index 6f32a98..aa3ba0a 100644 --- a/src/args.rs +++ b/src/args.rs @@ -10,10 +10,10 @@ use crate::{ {Cow, Token}, }; -#[derive(Debug, Clone, Eq, PartialEq)] +#[derive(Debug, Clone)] pub(crate) struct FuncArgs(pub Vec); -#[derive(Debug, Clone, Eq, PartialEq)] +#[derive(Debug, Clone)] pub(crate) struct FuncArg { pub name: Identifier, pub default: Option>, @@ -89,7 +89,7 @@ impl CallArgs { .iter() .map(|a| { span = span.merge(a.span); - Ok(a.node.to_css_string(a.span)?) + a.node.to_css_string(a.span) }) .collect::>>>()? .join(", "), diff --git a/src/parse/value/parse.rs b/src/parse/value/parse.rs index ac1e054..4efdee9 100644 --- a/src/parse/value/parse.rs +++ b/src/parse/value/parse.rs @@ -207,8 +207,7 @@ impl<'a> Parser<'a> { let lower = s.to_ascii_lowercase(); - if lower == "progid" && self.toks.peek().is_some() && self.toks.peek().unwrap().kind == ':' - { + if lower == "progid" && matches!(self.toks.peek(), Some(Token { kind: ':', .. })) { s = lower; self.toks.next(); s.push(':'); diff --git a/src/value/mod.rs b/src/value/mod.rs index c05474c..4e5e77b 100644 --- a/src/value/mod.rs +++ b/src/value/mod.rs @@ -112,12 +112,9 @@ impl Value { Value::Null => true, Value::String(i, QuoteKind::None) if i.is_empty() => true, Value::List(v, _, Brackets::Bracketed) if v.is_empty() => false, - Value::List(v, ..) => v - .iter() - .map(Value::is_null) - .collect::>() - .into_iter() - .all(|f| f), + Value::List(v, ..) => v.iter().map(Value::is_null).all(|f| f), + Value::ArgList(v, ..) if v.is_empty() => false, + Value::ArgList(v, ..) => v.iter().map(|v| v.node.is_null()).all(|f| f), _ => false, } } diff --git a/tests/arglist.rs b/tests/arglist.rs index b452036..3d2ee21 100644 --- a/tests/arglist.rs +++ b/tests/arglist.rs @@ -73,3 +73,24 @@ test!( }", "a {\n color: (1,);\n}\n" ); +error!( + empty_arglist_is_error, + "@function foo($a...) { + @return $a; + } + + a { + color: foo(); + }", + "Error: () isn't a valid CSS value." +); +test!( + arglist_of_only_null_is_null, + "@function foo($a...) { + @return $a; + } + a { + color: foo(null, null); + }", + "" +);