mirror of
https://github.com/astral-sh/ruff
synced 2026-01-21 13:30:49 -05:00
[ty] Re-use vec when building a VariableLengthTypeVarTuple with the builder (#22225)
This commit is contained in:
@@ -689,6 +689,8 @@ impl<T> VariableLengthTuple<T> {
|
||||
elements.push(element?);
|
||||
}
|
||||
|
||||
elements.shrink_to_fit();
|
||||
|
||||
Some(Self {
|
||||
elements,
|
||||
variable_index,
|
||||
@@ -706,6 +708,21 @@ impl<T> VariableLengthTuple<T> {
|
||||
let variable_index = elements.len();
|
||||
elements.push(variable);
|
||||
elements.extend(suffix);
|
||||
elements.shrink_to_fit();
|
||||
|
||||
Self {
|
||||
elements,
|
||||
variable_index,
|
||||
}
|
||||
}
|
||||
|
||||
fn new_from_vec(prefix: Vec<T>, variable: T, suffix: Vec<T>) -> Self {
|
||||
let mut elements = SmallVec::from_vec(prefix);
|
||||
|
||||
let variable_index = elements.len();
|
||||
elements.push(variable);
|
||||
elements.extend(suffix);
|
||||
elements.shrink_to_fit();
|
||||
|
||||
Self {
|
||||
elements,
|
||||
@@ -1998,7 +2015,7 @@ impl<'db> TupleSpecBuilder<'db> {
|
||||
prefix,
|
||||
variable,
|
||||
suffix,
|
||||
} => TupleSpec::Variable(VariableLengthTuple::new(prefix, variable, suffix)),
|
||||
} => TupleSpec::Variable(VariableLengthTuple::new_from_vec(prefix, variable, suffix)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user