[WIP] Support param bounds on non-lifetime binders by compiler-errors · Pull Request #115362 · rust-lang/rust (original) (raw)
I did some perf runs locally and it seems like most is inlining changes around type folders:
// nalgebra
10,911,801,289 ty::util::fold_list::<RegionEraserVisitor, &RawList<TypeInfo, Clause>, Clause, <&RawList<ty::list::TypeInfo, Clause> as TypeFoldable>::try_fold_with<RegionEraserVisitor>>::closure
-7,774,259,348 <Clause as TypeFoldable>::try_fold_with::<RegionEraserVisitor>
Similarly OpportunisticVarResolver
and ArgFolder
show up diesel, but they look like inlining changes.
While I can see us playing inliner golf, that's something we could have done before to find some more local optima. So 👍 on landing this and taking the perf hit (most of it is in instructions anyway, cycles is more on the 1% maximum regression side).