brackets in join

This commit is contained in:
ConnorSkees 2020-04-02 17:44:37 -04:00
parent 408fe6ff6b
commit c7ff047e81
2 changed files with 20 additions and 5 deletions

View File

@ -147,13 +147,13 @@ pub(crate) fn register(f: &mut HashMap<String, Builtin>) {
"join".to_owned(),
Box::new(|mut args, _| {
max_args!(args, 3);
let (mut list1, sep1, brackets) = match arg!(args, 0, "list") {
let (mut list1, sep1, brackets) = match arg!(args, 0, "list1") {
Value::List(v, sep, brackets) => (v, sep, brackets),
v => (vec![v], ListSeparator::Space, Brackets::None),
};
let list2 = match arg!(args, 1, "list") {
Value::List(v, ..) => v,
v => vec![v],
let (list2, sep2) = match arg!(args, 1, "list2") {
Value::List(v, sep, ..) => (v, sep),
v => (vec![v], ListSeparator::Space),
};
let sep = match arg!(
args,

View File

@ -163,10 +163,25 @@ test!(
"a {\n color: a b c d;\n}\n"
);
test!(
join_bracketed,
join_first_bracketed,
"a {\n color: join([a], b);\n}\n",
"a {\n color: [a b];\n}\n"
);
test!(
join_second_bracketed,
"a {\n color: join(a, [b]);\n}\n",
"a {\n color: a b;\n}\n"
);
test!(
join_space_comma,
"a {\n color: join(a b, (c,));\n}\n",
"a {\n color: a b c;\n}\n"
);
test!(
join_comma_space,
"a {\n color: join((a, b), (c));\n}\n",
"a {\n color: a, b, c;\n}\n"
);
test!(bracketed_ident, "a {\n color: [a];\n}\n");
test!(bracketed_space_list, "a {\n color: [a b];\n}\n");
test!(bracketed_comma_list, "a {\n color: [a, b];\n}\n");