diff --git a/src/builtin/functions/list.rs b/src/builtin/functions/list.rs index 4c55822..e67ab8f 100644 --- a/src/builtin/functions/list.rs +++ b/src/builtin/functions/list.rs @@ -81,6 +81,11 @@ pub(crate) fn set_nth(mut args: CallArgs, parser: &mut Parser<'_>) -> SassResult args.max_args(3)?; let (mut list, sep, brackets) = match args.get_err(0, "list")? { Value::List(v, sep, b) => (v, sep, b), + Value::ArgList(v) => ( + v.into_iter().map(|val| val.node).collect(), + ListSeparator::Comma, + Brackets::None, + ), Value::Map(m) => (m.as_list(), ListSeparator::Comma, Brackets::None), v => (vec![v], ListSeparator::Space, Brackets::None), }; diff --git a/tests/list.rs b/tests/list.rs index 8475db5..2d596a3 100644 --- a/tests/list.rs +++ b/tests/list.rs @@ -91,6 +91,17 @@ test!( "a {\n color: set-nth((c: d, e: f, g: h), 2, i);\n}\n", "a {\n color: c d, i, g h;\n}\n" ); +test!( + set_nth_arglist, + "@mixin foo($args...) { + color: set-nth($args, 2, 0); + } + + a { + @include foo(1, 2, 3, 4); + }", + "a {\n color: 1, 0, 3, 4;\n}\n" +); test!( append_space_separated, "a {\n color: append(a b, c);\n}\n",