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)