diff --git a/src/builtin/list.rs b/src/builtin/list.rs index fd21cae..b44e055 100644 --- a/src/builtin/list.rs +++ b/src/builtin/list.rs @@ -147,13 +147,13 @@ pub(crate) fn register(f: &mut HashMap) { "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, diff --git a/tests/list.rs b/tests/list.rs index c6f8f25..c138baa 100644 --- a/tests/list.rs +++ b/tests/list.rs @@ -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");