-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Rollup of 17 pull requests #55859
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Rollup of 17 pull requests #55859
Conversation
…lude]` on 2018 edition
This has been replaced by the hard error E0719.
This avoids some allocations, reducing instruction counts by 1% on a couple of benchmarks.
* Rounds allocation layout up to a multiple of alignment * Adds a convenience method `Layout::pad_to_align` to perform rounding
…shows the output is identical now.
…hing approximating lexical scope.
(The commit prior to this actual passes our test suite, "thanks" to rust-lang#55695. But since I am aware of that bug, I took advantage of it in choosing how to order my commit series...)
This reduces the number of allocations in a "check clean" build of `tuple-stress` by 14%, reducing instruction counts by 0.6%.
This commit fixes an ICE and determines the correct return span in cases with a method implemented on a struct with an an elided lifetime.
When I fixed the previous mis-optimizations, I didn't realize there were actually two different places where we mutate `callsites` and both of them should have the same behavior. As a result, if a function was inlined and that function contained virtual function calls, they were incorrectly being inlined. I also added a test case which covers this.
This avoids trapping in the -Zsaturating-float-casts implementation.
Take supertraits into account when calculating associated types Fixes rust-lang#24010 and rust-lang#23856. Applies to trait aliases too. As a by-product, this PR also makes repeated bindings of the same associated item in the same definition a hard error. This was previously a warning with a note about it becoming a hard error in the future. See rust-lang#50589 for more info. I talked about this with @nikomatsakis recently, but only very superficially, so this shouldn't stop anyone from assigning it to themself to review and r+. N.B. The "WIP" commits represent imperfect attempts to solve the problem just for trait objects, but I've left them in for reference for the sake of whomever is reviewing this. CC @carllerche @theemathas @durka @mbrubeck
…llVec, r=matthewjasper Convert `outlives_components`' return value to a `SmallVec` outparam. This avoids some allocations, reducing instruction counts by 1% on a couple of benchmarks.
Fix Rc/Arc allocation layout * Rounds allocation layout up to a multiple of alignment * Adds a convenience method `Layout::pad_to_align` to perform rounding Closes rust-lang#55747 cc rust-lang#55724
Prevent ICE in const-prop array oob check fixes rust-lang#55772 fixes rust-lang#54541
@bors r+ p=14 |
📌 Commit 17ae507 has been approved by |
⌛ Testing commit 17ae507 with merge 11787781b41f024eb8d64bf29c0ae3211802e639... |
💔 Test failed - status-travis |
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
@bors retry arm-android "died due to signal 11" |
resolve: Filter away macro prelude in modules with `#[no_implicit_prelude]` on 2018 edition This is a tiny thing. For historical reasons macro prelude (macros from `#[macro_use] extern crate ...`, including `extern crate std`) is still available in modules with `#[no_implicit_prelude]`. This PR provides proper isolation and removes those names from scope. `#[no_implicit_prelude]` modules still have built-in types (`u8`), built-in attributes (`#[inline]`) and built-in macros (`env!("PATH")`) in scope. We can introduce some `#[no_implicit_prelude_at_all]` to remove those as well, but that's a separate issue. The change is done only on 2018 edition for backward compatibility. I'm pretty sure this can be done on 2015 as well because `#[no_implicit_prelude]` is rarely used, but I don't want to go through the crater/deprecation process right now, maybe later. cc rust-lang#53977 r? @ghost
…crichton Set BINARYEN_TRAP_MODE=clamp This fixes the wasm32-unknown-emscripten test failure mentioned in rust-lang#55626 (comment), by making binaryen operate in clamp rather than trap mode. The issue is that the current `-Zsaturating-float-casts` implementation uses `fpto[us]i` unconditionally (and selects afterwards), which does not work with trapping implementations of fpto[su]i, which emscripten uses by default. I've left a FIXME to drop this flag once we have a better solution for saturating casts on the LLVM side. ;
…=GuillaumeGomez rustdoc: refactor: move all static-file include!s into a single module This is a smaller refactor that creates a new module `rustdoc::html::static_files`, which contains a bunch of `static` variables with all the files in `html/static` that we use. The idea behind moving them all here was to remove the duplicate `include_bytes!()` that are used by the theme-checker code. It also continues to centralize more operations in rustdoc.
📌 Commit 7031e4e has been approved by |
Rollup of 17 pull requests Successful merges: - #55630 (resolve: Filter away macro prelude in modules with `#[no_implicit_prelude]` on 2018 edition) - #55687 (Take supertraits into account when calculating associated types) - #55745 (Convert `outlives_components`' return value to a `SmallVec` outparam.) - #55764 (Fix Rc/Arc allocation layout) - #55792 (Prevent ICE in const-prop array oob check) - #55799 (Removed unneeded instance of `// revisions` from a lint test) - #55800 (Fix ICE in `return_type_impl_trait`) - #55801 (NLL: Update box insensitivity test) - #55802 (Don't inline virtual calls (take 2)) - #55816 (Use `SmallVec` to avoid allocations in `from_decimal_string`.) - #55819 (Typecheck patterns of all match arms first, so we get types for bindings) - #55822 (ICE with #![feature(nll)] and elided lifetimes) - #55828 (Add missing `rustc_promotable` attribute to unsigned `min_value` and `max_value`) - #55839 (Fix docstring spelling mistakes) - #55844 (Fix documentation typos.) - #55845 (Set BINARYEN_TRAP_MODE=clamp) - #55856 (rustdoc: refactor: move all static-file include!s into a single module)
☀️ Test successful - status-appveyor, status-travis |
Successful merges:
#[no_implicit_prelude]
on 2018 edition #55630 (resolve: Filter away macro prelude in modules with#[no_implicit_prelude]
on 2018 edition)outlives_components
' return value to aSmallVec
outparam. #55745 (Convertoutlives_components
' return value to aSmallVec
outparam.)// revisions
from a lint test #55799 (Removed unneeded instance of// revisions
from a lint test)return_type_impl_trait
#55800 (Fix ICE inreturn_type_impl_trait
)SmallVec
to avoid allocations infrom_decimal_string
. #55816 (UseSmallVec
to avoid allocations infrom_decimal_string
.)rustc_promotable
attribute to unsignedmin_value
andmax_value
#55828 (Add missingrustc_promotable
attribute to unsignedmin_value
andmax_value
)