properly recognize arglist of null as null
This commit is contained in:
parent
cee16fece7
commit
1b8e0ebcd2
@ -10,10 +10,10 @@ use crate::{
|
||||
{Cow, Token},
|
||||
};
|
||||
|
||||
#[derive(Debug, Clone, Eq, PartialEq)]
|
||||
#[derive(Debug, Clone)]
|
||||
pub(crate) struct FuncArgs(pub Vec<FuncArg>);
|
||||
|
||||
#[derive(Debug, Clone, Eq, PartialEq)]
|
||||
#[derive(Debug, Clone)]
|
||||
pub(crate) struct FuncArg {
|
||||
pub name: Identifier,
|
||||
pub default: Option<Vec<Token>>,
|
||||
@ -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::<SassResult<Vec<Cow<'static, str>>>>()?
|
||||
.join(", "),
|
||||
|
@ -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(':');
|
||||
|
@ -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::<Vec<bool>>()
|
||||
.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,
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}",
|
||||
""
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user