fix @each
bug involving list containing map with multiple elements
This commit is contained in:
parent
7971bfe98b
commit
49607da222
@ -10,7 +10,6 @@ use crate::{
|
|||||||
media::MediaRule,
|
media::MediaRule,
|
||||||
AtRuleKind, Content, SupportsRule, UnknownAtRule,
|
AtRuleKind, Content, SupportsRule, UnknownAtRule,
|
||||||
},
|
},
|
||||||
common::{Brackets, ListSeparator},
|
|
||||||
error::SassResult,
|
error::SassResult,
|
||||||
scope::Scope,
|
scope::Scope,
|
||||||
selector::{
|
selector::{
|
||||||
@ -914,28 +913,17 @@ impl<'a> Parser<'a> {
|
|||||||
let mut stmts = Vec::new();
|
let mut stmts = Vec::new();
|
||||||
|
|
||||||
for row in iter {
|
for row in iter {
|
||||||
let this_iterator = row.clone().as_list();
|
|
||||||
if vars.len() == 1 {
|
if vars.len() == 1 {
|
||||||
if this_iterator.len() == 1 {
|
self.scopes.last_mut().insert_var(
|
||||||
self.scopes.last_mut().insert_var(
|
&vars[0].node,
|
||||||
&vars[0].node,
|
Spanned {
|
||||||
Spanned {
|
node: row,
|
||||||
node: row,
|
span: vars[0].span,
|
||||||
span: vars[0].span,
|
},
|
||||||
},
|
);
|
||||||
);
|
|
||||||
} else {
|
|
||||||
self.scopes.last_mut().insert_var(
|
|
||||||
&vars[0].node,
|
|
||||||
Spanned {
|
|
||||||
node: Value::List(this_iterator, ListSeparator::Space, Brackets::None),
|
|
||||||
span: vars[0].span,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
for (var, val) in vars.iter().zip(
|
for (var, val) in vars.iter().zip(
|
||||||
this_iterator
|
row.as_list()
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.chain(std::iter::once(Value::Null).cycle()),
|
.chain(std::iter::once(Value::Null).cycle()),
|
||||||
) {
|
) {
|
||||||
|
@ -48,6 +48,19 @@ test!(
|
|||||||
"a {\n @each $i in 1 2 3 {\n color: type-of($i);\n }\n}\n",
|
"a {\n @each $i in 1 2 3 {\n color: type-of($i);\n }\n}\n",
|
||||||
"a {\n color: number;\n color: number;\n color: number;\n}\n"
|
"a {\n color: number;\n color: number;\n color: number;\n}\n"
|
||||||
);
|
);
|
||||||
|
test!(
|
||||||
|
list_of_single_map_with_multiple_elements,
|
||||||
|
"a {
|
||||||
|
$settings: ();
|
||||||
|
|
||||||
|
@each $config in [(a: b, c: d)] {
|
||||||
|
$settings: map-merge($settings, $config);
|
||||||
|
}
|
||||||
|
|
||||||
|
color: inspect($settings);
|
||||||
|
}",
|
||||||
|
"a {\n color: (a: b, c: d);\n}\n"
|
||||||
|
);
|
||||||
error!(
|
error!(
|
||||||
list_of_single_map,
|
list_of_single_map,
|
||||||
"a {
|
"a {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user