Value::inspect returns cow
This commit is contained in:
parent
5ba28e27f3
commit
6729f24b17
@ -71,7 +71,7 @@ impl AtRule {
|
|||||||
super_selector,
|
super_selector,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
return Err((message.inspect(span)?, span.merge(kind_span)).into());
|
return Err((message.inspect(span)?.to_string(), span.merge(kind_span)).into());
|
||||||
}
|
}
|
||||||
AtRuleKind::Warn => {
|
AtRuleKind::Warn => {
|
||||||
let Spanned {
|
let Spanned {
|
||||||
@ -111,7 +111,7 @@ impl AtRule {
|
|||||||
devour_whitespace(toks);
|
devour_whitespace(toks);
|
||||||
Spanned {
|
Spanned {
|
||||||
node: AtRule::Debug(Spanned {
|
node: AtRule::Debug(Spanned {
|
||||||
node: message.inspect(span)?,
|
node: message.inspect(span)?.into(),
|
||||||
span,
|
span,
|
||||||
}),
|
}),
|
||||||
span,
|
span,
|
||||||
|
@ -96,7 +96,9 @@ fn unitless(mut args: CallArgs, scope: &Scope, super_selector: &Selector) -> Sas
|
|||||||
fn inspect(mut args: CallArgs, scope: &Scope, super_selector: &Selector) -> SassResult<Value> {
|
fn inspect(mut args: CallArgs, scope: &Scope, super_selector: &Selector) -> SassResult<Value> {
|
||||||
args.max_args(1)?;
|
args.max_args(1)?;
|
||||||
Ok(Value::Ident(
|
Ok(Value::Ident(
|
||||||
arg!(args, scope, super_selector, 0, "value").inspect(args.span())?,
|
arg!(args, scope, super_selector, 0, "value")
|
||||||
|
.inspect(args.span())?
|
||||||
|
.into(),
|
||||||
QuoteKind::None,
|
QuoteKind::None,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
@ -265,39 +265,39 @@ impl Value {
|
|||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// https://github.com/sass/dart-sass/blob/d4adea7569832f10e3a26d0e420ae51640740cfb/lib/src/ast/sass/expression/list.dart#L39
|
// https://github.com/sass/dart-sass/blob/d4adea7569832f10e3a26d0e420ae51640740cfb/lib/src/ast/sass/expression/list.dart#L39
|
||||||
pub fn inspect(&self, span: Span) -> SassResult<String> {
|
pub fn inspect(&self, span: Span) -> SassResult<Cow<'static, str>> {
|
||||||
Ok(match self {
|
Ok(match self {
|
||||||
Value::List(v, _, brackets) if v.is_empty() => match brackets {
|
Value::List(v, _, brackets) if v.is_empty() => match brackets {
|
||||||
Brackets::None => "()".to_string(),
|
Brackets::None => Cow::Borrowed("()"),
|
||||||
Brackets::Bracketed => "[]".to_string(),
|
Brackets::Bracketed => Cow::Borrowed("[]"),
|
||||||
},
|
},
|
||||||
Value::List(v, sep, brackets) if v.len() == 1 => match brackets {
|
Value::List(v, sep, brackets) if v.len() == 1 => match brackets {
|
||||||
Brackets::None => match sep {
|
Brackets::None => match sep {
|
||||||
ListSeparator::Space => v[0].inspect(span)?,
|
ListSeparator::Space => v[0].inspect(span)?,
|
||||||
ListSeparator::Comma => format!("({},)", v[0].inspect(span)?),
|
ListSeparator::Comma => Cow::Owned(format!("({},)", v[0].inspect(span)?)),
|
||||||
},
|
},
|
||||||
Brackets::Bracketed => match sep {
|
Brackets::Bracketed => match sep {
|
||||||
ListSeparator::Space => format!("[{}]", v[0].inspect(span)?),
|
ListSeparator::Space => Cow::Owned(format!("[{}]", v[0].inspect(span)?)),
|
||||||
ListSeparator::Comma => format!("[{},]", v[0].inspect(span)?),
|
ListSeparator::Comma => Cow::Owned(format!("[{},]", v[0].inspect(span)?)),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Self::List(vals, sep, brackets) => match brackets {
|
Self::List(vals, sep, brackets) => Cow::Owned(match brackets {
|
||||||
Brackets::None => vals
|
Brackets::None => vals
|
||||||
.iter()
|
.iter()
|
||||||
.map(|x| x.inspect(span))
|
.map(|x| x.inspect(span))
|
||||||
.collect::<SassResult<Vec<String>>>()?
|
.collect::<SassResult<Vec<Cow<'static, str>>>>()?
|
||||||
.join(sep.as_str()),
|
.join(sep.as_str()),
|
||||||
Brackets::Bracketed => format!(
|
Brackets::Bracketed => format!(
|
||||||
"[{}]",
|
"[{}]",
|
||||||
vals.iter()
|
vals.iter()
|
||||||
.map(|x| x.inspect(span))
|
.map(|x| x.inspect(span))
|
||||||
.collect::<SassResult<Vec<String>>>()?
|
.collect::<SassResult<Vec<Cow<'static, str>>>>()?
|
||||||
.join(sep.as_str()),
|
.join(sep.as_str()),
|
||||||
),
|
),
|
||||||
},
|
}),
|
||||||
Value::Function(f) => format!("get-function(\"{}\")", f.name()),
|
Value::Function(f) => Cow::Owned(format!("get-function(\"{}\")", f.name())),
|
||||||
Value::Null => "null".to_string(),
|
Value::Null => Cow::Borrowed("null"),
|
||||||
Value::Map(map) => format!(
|
Value::Map(map) => Cow::Owned(format!(
|
||||||
"({})",
|
"({})",
|
||||||
map.iter()
|
map.iter()
|
||||||
.map(|(k, v)| Ok(format!(
|
.map(|(k, v)| Ok(format!(
|
||||||
@ -307,9 +307,9 @@ impl Value {
|
|||||||
)))
|
)))
|
||||||
.collect::<SassResult<Vec<String>>>()?
|
.collect::<SassResult<Vec<String>>>()?
|
||||||
.join(", ")
|
.join(", ")
|
||||||
),
|
)),
|
||||||
Value::Paren(v) => v.inspect(span)?,
|
Value::Paren(v) => v.inspect(span)?,
|
||||||
v => v.to_css_string(span)?.into(),
|
v => v.to_css_string(span)?,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user