remove superfluous clone and indexing for loops from @extend

This commit is contained in:
Connor Skees 2020-07-06 12:49:13 -04:00
parent f7bb133cfd
commit 60c9327cf3

View File

@ -208,9 +208,7 @@ impl Extender {
// This could be written more simply using Vec<Vec<T>>, but we want to avoid
// any allocations in the common case where no extends apply.
let mut extended: Option<Vec<ComplexSelector>> = None;
for i in 0..list.components.len() {
let complex = list.components.get(i).unwrap().clone();
for (i, complex) in list.components.iter().enumerate() {
if let Some(result) =
self.extend_complex(complex.clone(), extensions, media_query_context)
{
@ -226,7 +224,7 @@ impl Extender {
None => unreachable!(),
}
} else if let Some(extended) = extended.as_mut() {
extended.push(complex);
extended.push(complex.clone());
}
}
@ -270,8 +268,8 @@ impl Extender {
let complex_has_line_break = complex.line_break;
for i in 0..complex.components.len() {
if let Some(ComplexSelectorComponent::Compound(component)) = complex.components.get(i) {
for (i, component) in complex.components.iter().enumerate() {
if let ComplexSelectorComponent::Compound(component) = component {
if let Some(extended) =
self.extend_compound(component, extensions, media_query_context)
{
@ -304,9 +302,7 @@ impl Extender {
None => {}
}
}
} else if let Some(component @ ComplexSelectorComponent::Combinator(..)) =
complex.components.get(i)
{
} else if component.is_combinator() {
match extended_not_expanded.as_mut() {
Some(v) => v.push(vec![ComplexSelector {
components: vec![component.clone()],
@ -884,7 +880,7 @@ impl Extender {
}
if !self.extensions.is_empty() {
selector = self.extend_list(selector.clone(), None, &media_query_context);
selector = self.extend_list(selector, None, &media_query_context);
/*
todo: when we have error handling
} on SassException catch (error) {