Simplify scan_expression

This commit is contained in:
harupy 2023-01-15 22:08:19 +09:00
parent a7f1904564
commit 64736d0541

View file

@ -885,16 +885,10 @@ impl SymbolTableBuilder {
self.scan_expression(value, ExpressionContext::Load)?; self.scan_expression(value, ExpressionContext::Load)?;
} }
Dict { keys, values } => { Dict { keys, values } => {
let (packed, unpacked): (Vec<_>, Vec<_>) = keys for (key, value) in keys.iter().zip(values.iter()) {
.iter() if let Some(key) = key {
.zip(values.iter()) self.scan_expression(key, context)?;
.partition(|(key, _)| key.is_some());
for (key, value) in packed {
self.scan_expression(key.as_ref().unwrap(), context)?;
self.scan_expression(value, context)?;
} }
for (_, value) in unpacked {
// dict unpacking marker
self.scan_expression(value, context)?; self.scan_expression(value, context)?;
} }
} }