mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 22:01:37 +00:00
Prevent re-allocation in CallableSig::from_params_and_return
This commit is contained in:
parent
34ba8db3ed
commit
4c62e6b05f
2 changed files with 9 additions and 8 deletions
|
@ -513,14 +513,16 @@ pub type PolyFnSig = Binders<CallableSig>;
|
|||
|
||||
impl CallableSig {
|
||||
pub fn from_params_and_return(
|
||||
mut params: Vec<Ty>,
|
||||
params: impl ExactSizeIterator<Item = Ty>,
|
||||
ret: Ty,
|
||||
is_varargs: bool,
|
||||
safety: Safety,
|
||||
abi: FnAbi,
|
||||
) -> CallableSig {
|
||||
params.push(ret);
|
||||
CallableSig { params_and_return: params.into(), is_varargs, safety, abi }
|
||||
let mut params_and_return = Vec::with_capacity(params.len() + 1);
|
||||
params_and_return.extend(params);
|
||||
params_and_return.push(ret);
|
||||
CallableSig { params_and_return: params_and_return.into(), is_varargs, safety, abi }
|
||||
}
|
||||
|
||||
pub fn from_def(db: &dyn HirDatabase, def: FnDefId, substs: &Substitution) -> CallableSig {
|
||||
|
@ -935,8 +937,7 @@ pub fn callable_sig_from_fn_trait(
|
|||
.as_tuple()?
|
||||
.iter(Interner)
|
||||
.map(|it| it.assert_ty_ref(Interner))
|
||||
.cloned()
|
||||
.collect();
|
||||
.cloned();
|
||||
|
||||
return Some((
|
||||
fn_x,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue