]> git.lizzy.rs Git - rust.git/commit - src/tools/rust-analyzer
Auto merge of #85737 - scottmcm:vec-calloc-option-nonzero, r=m-ou-se
authorbors <bors@rust-lang.org>
Thu, 27 May 2021 13:05:57 +0000 (13:05 +0000)
committerbors <bors@rust-lang.org>
Thu, 27 May 2021 13:05:57 +0000 (13:05 +0000)
commitea78d1edf364dd3a4b5ff430f76e2bdd3a713a45
tree833d19a86e0ddd53516c2907505bd37876afdabe
parent8d1e3d3b74fa80ce14af6ec143f061897684582b
parent04d34a97d1d47676331479e24e5afaf2583cb8e5
Auto merge of #85737 - scottmcm:vec-calloc-option-nonzero, r=m-ou-se

Enable Vec's calloc optimization for Option<NonZero>

Someone on discord noticed that `vec![None::<NonZeroU32>; N]` wasn't getting the optimization, so here's a PR ðŸ™ƒ

We can certainly do this in the standard library because we know for sure this is ok, but I think it's also a necessary consequence of documented guarantees like those in https://doc.rust-lang.org/std/option/#representation and https://doc.rust-lang.org/core/num/struct.NonZeroU32.html

It feels weird to do this without adding a test, but I wasn't sure where that would belong.  Is it worth adding codegen tests for these?