From dbfd90d44403027dda096375398d6f5b3dad6b1c Mon Sep 17 00:00:00 2001 From: Connor Skees Date: Sun, 5 Jul 2020 07:31:10 -0400 Subject: [PATCH] better handle maps, arglists, and mul units in `@debug` --- src/value/mod.rs | 20 ++++++++++++++------ tests/inspect.rs | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/value/mod.rs b/src/value/mod.rs index bc2ce1a..0b6c296 100644 --- a/src/value/mod.rs +++ b/src/value/mod.rs @@ -282,15 +282,23 @@ impl Value { Value::Map(map) => Cow::owned(format!( "({})", map.iter() - .map(|(k, v)| Ok(format!( - "{}: {}", - k.to_css_string(span)?, - v.to_css_string(span)? - ))) + .map(|(k, v)| Ok(format!("{}: {}", k.inspect(span)?, v.inspect(span)?))) .collect::>>()? .join(", ") )), - v => v.to_css_string(span)?, + Value::Dimension(num, unit) => Cow::owned(format!("{}{}", num, unit)), + Value::ArgList(args) => Cow::owned( + args.iter() + .filter(|x| !x.is_null()) + .map(|a| Ok(a.node.inspect(span)?)) + .collect::>>>()? + .join(", "), + ), + Value::Important + | Value::True + | Value::False + | Value::Color(..) + | Value::String(..) => self.to_css_string(span)?, }) } diff --git a/tests/inspect.rs b/tests/inspect.rs index 39bc4b1..a89b8f4 100644 --- a/tests/inspect.rs +++ b/tests/inspect.rs @@ -110,3 +110,24 @@ test!( "a {\n color: inspect((((a))));\n}\n", "a {\n color: a;\n}\n" ); +test!( + inspect_mul_units, + "a {\n color: inspect(1em * 1px);\n}\n", + "a {\n color: 1em*px;\n}\n" +); +test!( + inspect_map_with_map_key_and_value, + "a {\n color: inspect(((a: b): (c: d)));\n}\n", + "a {\n color: ((a: b): (c: d));\n}\n" +); +test!( + inspect_map_in_arglist, + "@function foo($a...) { + @return inspect($a); + } + + a { + color: foo((a: b)); + }", + "a {\n color: (a: b);\n}\n" +);