]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoAdd inlining.
Camille GILLOT [Thu, 11 Mar 2021 10:49:23 +0000 (11:49 +0100)]
Add inlining.

3 years agoAuto merge of #76570 - cratelyn:implement-rfc-2945-c-unwind-abi, r=Amanieu
bors [Wed, 10 Mar 2021 16:44:04 +0000 (16:44 +0000)]
Auto merge of #76570 - cratelyn:implement-rfc-2945-c-unwind-abi, r=Amanieu

Implement RFC 2945: "C-unwind" ABI

## Implement RFC 2945: "C-unwind" ABI

This branch implements [RFC 2945]. The tracking issue for this RFC is #74990.

The feature gate for the issue is `#![feature(c_unwind)]`.

This RFC was created as part of the ffi-unwind project group tracked at rust-lang/lang-team#19.

### Changes

Further details will be provided in commit messages, but a high-level overview
of the changes follows:

* A boolean `unwind` payload is added to the `C`, `System`, `Stdcall`,
and `Thiscall` variants, marking whether unwinding across FFI boundaries is
acceptable. The cases where each of these variants' `unwind` member is true
correspond with the `C-unwind`, `system-unwind`, `stdcall-unwind`, and
`thiscall-unwind` ABI strings introduced in RFC 2945 [3].

* This commit adds a `c_unwind` feature gate for the new ABI strings.
Tests for this feature gate are included in `src/test/ui/c-unwind/`, which
ensure that this feature gate works correctly for each of the new ABIs.
A new language features entry in the unstable book is added as well.

* We adjust the `rustc_middle::ty::layout::fn_can_unwind` function,
used to compute whether or not a `FnAbi` object represents a function that
should be able to unwind when `panic=unwind` is in use.

* Changes are also made to
`rustc_mir_build::build::should_abort_on_panic` so that the function ABI is
used to determind whether it should abort, assuming that the `panic=unwind`
strategy is being used, and no explicit unwind attribute was provided.

[RFC 2945]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md

3 years agoAuto merge of #82884 - nagisa:nagisa/remove-most-of-sideeffect-inserts, r=nikic
bors [Wed, 10 Mar 2021 14:03:00 +0000 (14:03 +0000)]
Auto merge of #82884 - nagisa:nagisa/remove-most-of-sideeffect-inserts, r=nikic

Remove the -Zinsert-sideeffect

This removes all of the code we had in place to work-around LLVM's
handling of forward progress. From this removal excluded is a workaround
where we'd insert a `sideeffect` into clearly infinite loops such as
`loop {}`. This code remains conditionally effective when the LLVM
version is earlier than 12.0, which fixed the forward progress related
miscompilations at their root.

3 years agoAuto merge of #82967 - RalfJung:copy-nonoverlap, r=oli-obk
bors [Wed, 10 Mar 2021 11:21:46 +0000 (11:21 +0000)]
Auto merge of #82967 - RalfJung:copy-nonoverlap, r=oli-obk

fix copy_nonoverlapping

Fixes a bug introduced by https://github.com/rust-lang/rust/pull/77511

r? `@oli-obk`
Fixes https://github.com/rust-lang/rust/issues/82961

3 years agoRemove the -Zinsert-sideeffect
Simonas Kazlauskas [Sun, 7 Mar 2021 23:59:10 +0000 (01:59 +0200)]
Remove the -Zinsert-sideeffect

This removes all of the code we had in place to work-around LLVM's
handling of forward progress. From this removal excluded is a workaround
where we'd insert a `sideeffect` into clearly infinite loops such as
`loop {}`. This code remains conditionally effective when the LLVM
version is earlier than 12.0, which fixed the forward progress related
miscompilations at their root.

3 years agoadd regression test
Ralf Jung [Wed, 10 Mar 2021 09:02:39 +0000 (10:02 +0100)]
add regression test

3 years agoAuto merge of #79519 - cjgillot:noattr, r=wesleywiser
bors [Wed, 10 Mar 2021 08:40:51 +0000 (08:40 +0000)]
Auto merge of #79519 - cjgillot:noattr, r=wesleywiser

Store HIR attributes in a side table

Same idea as #72015 but for attributes.
The objective is to reduce incr-comp invalidations due to modified attributes.
Notably, those due to modified doc comments.

Implementation:
- collect attributes during AST->HIR lowering, in `LocalDefId -> ItemLocalId -> &[Attributes]` nested tables;
- access the attributes through a `hir_owner_attrs` query;
- local refactorings to use this access;
- remove `attrs` from HIR data structures one-by-one.

Change in behaviour:
- the HIR visitor traverses all attributes at once instead of parent-by-parent;
- attribute arrays are sometimes duplicated: for statements and variant constructors;
- as a consequence, attributes are marked as used after unused-attribute lint emission to avoid duplicate lints.

~~Current bug: the lint level is not correctly applied in `std::backtrace_rs`, triggering an unused attribute warning on `#![no_std]`. I welcome suggestions.~~

3 years agofix copy_nonoverlapping
Ralf Jung [Wed, 10 Mar 2021 08:21:18 +0000 (09:21 +0100)]
fix copy_nonoverlapping

3 years agoAuto merge of #82953 - JohnTitor:rollup-8rtk5g2, r=JohnTitor
bors [Wed, 10 Mar 2021 01:25:43 +0000 (01:25 +0000)]
Auto merge of #82953 - JohnTitor:rollup-8rtk5g2, r=JohnTitor

Rollup of 10 pull requests

Successful merges:

 - #77511 (Add StatementKind::CopyNonOverlapping)
 - #79208 (Stabilize `unsafe_op_in_unsafe_fn` lint)
 - #82411 (Fixes to ExitStatus and its docs)
 - #82733 (Add powerpc-unknown-openbsd target)
 - #82802 (Build rustdoc for run-make tests, not just run-make-fulldeps)
 - #82849 (Add Option::get_or_default)
 - #82908 (:arrow_up: rust-analyzer)
 - #82937 (Update README.md to use the correct cmake version number)
 - #82938 (Bump tracing-tree dependency)
 - #82942 (Don't hardcode the `v1` prelude in diagnostics, to allow for new preludes.)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #82942 - m-ou-se:diagnostics-hardcoded-prelude-v1, r=estebank
Yuki Okushi [Tue, 9 Mar 2021 23:01:37 +0000 (08:01 +0900)]
Rollup merge of #82942 - m-ou-se:diagnostics-hardcoded-prelude-v1, r=estebank

Don't hardcode the `v1` prelude in diagnostics, to allow for new preludes.

Instead of looking for `std::prelude::v1`, this changes the two places where that was hardcoded to look for `std::prelude::<anything>` instead.

This is needed for https://github.com/rust-lang/rust/pull/82217.

r? `@estebank`

3 years agoRollup merge of #82938 - oli-obk:tracing_tree_bump, r=Mark-Simulacrum
Yuki Okushi [Tue, 9 Mar 2021 23:01:36 +0000 (08:01 +0900)]
Rollup merge of #82938 - oli-obk:tracing_tree_bump, r=Mark-Simulacrum

Bump tracing-tree dependency

This bump fixes two small rendering things that were annoying me:

* The first level didn't have an opening line
* When wraparound happens, there was no warning, the levels just disappeared. Now there is a line that shows that wraparound is happening

See https://github.com/davidbarsky/tracing-tree/pull/31/files for how the look changes

3 years agoRollup merge of #82937 - wesleywiser:update_cmake_version_in_readme, r=Mark-Simulacrum
Yuki Okushi [Tue, 9 Mar 2021 23:01:34 +0000 (08:01 +0900)]
Rollup merge of #82937 - wesleywiser:update_cmake_version_in_readme, r=Mark-Simulacrum

Update README.md to use the correct cmake version number

LLVM requires at least cmake 3.13.4 and cmake is only required to build
LLVM.

https://www.llvm.org/docs/CMake.html

Also closes #42555

3 years agoRollup merge of #82908 - lnicola:rust-analyzer-2021-03-08, r=jonas-schievink
Yuki Okushi [Tue, 9 Mar 2021 23:01:33 +0000 (08:01 +0900)]
Rollup merge of #82908 - lnicola:rust-analyzer-2021-03-08, r=jonas-schievink

:arrow_up: rust-analyzer

3 years agoRollup merge of #82849 - camsteffen:option-get-or-default, r=joshtriplett
Yuki Okushi [Tue, 9 Mar 2021 23:01:32 +0000 (08:01 +0900)]
Rollup merge of #82849 - camsteffen:option-get-or-default, r=joshtriplett

Add Option::get_or_default

Tracking issue: #82901

The original issue is #55042, which was closed, but for an invalid reason (see discussion there). Opening this to reconsider (I hope that's okay). It seems like the only gap for `Option` being "entry-like".

I ran into a need for this method where I had a `Vec<Option<MyData>>` and wanted to do `vec[n].get_or_default().my_data_method()`. Using an `Option` as an inner component of a data structure is probably where the need for this will normally arise.

3 years agoRollup merge of #82802 - jyn514:build-rustdoc-fullmake, r=Mark-Simulacrum
Yuki Okushi [Tue, 9 Mar 2021 23:01:30 +0000 (08:01 +0900)]
Rollup merge of #82802 - jyn514:build-rustdoc-fullmake, r=Mark-Simulacrum

Build rustdoc for run-make tests, not just run-make-fulldeps

Rustdoc almost never needs a full stage 2 compiler, and requiring
rustdoc tests to be in run-make-fulldeps adds a lot of compile time for
no reason.

This is the same change from https://github.com/rust-lang/rust/pull/81197, but separated into its own PR. I ran into this again today while working on https://github.com/rust-lang/docs.rs/issues/1302.
r? ```@Mark-Simulacrum```

3 years agoRollup merge of #82733 - Yn0ga:master, r=estebank
Yuki Okushi [Tue, 9 Mar 2021 23:01:29 +0000 (08:01 +0900)]
Rollup merge of #82733 - Yn0ga:master, r=estebank

Add powerpc-unknown-openbsd target

3 years agoRollup merge of #82411 - ijackson:fix-exitstatus, r=dtolnay
Yuki Okushi [Tue, 9 Mar 2021 23:01:27 +0000 (08:01 +0900)]
Rollup merge of #82411 - ijackson:fix-exitstatus, r=dtolnay

Fixes to ExitStatus and its docs

* On Unix, properly display every possible wait status (and don't panic on weird values)
* In the documentation, be clear and consistent about "exit status" vs "wait status".

3 years agoRollup merge of #79208 - LeSeulArtichaut:stable-unsafe_op_in_unsafe_fn, r=nikomatsakis
Yuki Okushi [Tue, 9 Mar 2021 23:01:25 +0000 (08:01 +0900)]
Rollup merge of #79208 - LeSeulArtichaut:stable-unsafe_op_in_unsafe_fn, r=nikomatsakis

Stabilize `unsafe_op_in_unsafe_fn` lint

This makes it possible to override the level of the `unsafe_op_in_unsafe_fn`, as proposed in https://github.com/rust-lang/rust/issues/71668#issuecomment-729770896.

Tracking issue: #71668
r? ```@nikomatsakis``` cc ```@SimonSapin``` ```@RalfJung```

# Stabilization report

This is a stabilization report for `#![feature(unsafe_block_in_unsafe_fn)]`.

## Summary

Currently, the body of unsafe functions is an unsafe block, i.e. you can perform unsafe operations inside.

The `unsafe_op_in_unsafe_fn` lint, stabilized here, can be used to change this behavior, so performing unsafe operations in unsafe functions requires an unsafe block.

For now, the lint is allow-by-default, which means that this PR does not change anything without overriding the lint level.

For more information, see [RFC 2585](https://github.com/rust-lang/rfcs/blob/master/text/2585-unsafe-block-in-unsafe-fn.md)

### Example

```rust
// An `unsafe fn` for demonstration purposes.
// Calling this is an unsafe operation.
unsafe fn unsf() {}

// #[allow(unsafe_op_in_unsafe_fn)] by default,
// the behavior of `unsafe fn` is unchanged
unsafe fn allowed() {
    // Here, no `unsafe` block is needed to
    // perform unsafe operations...
    unsf();

    // ...and any `unsafe` block is considered
    // unused and is warned on by the compiler.
    unsafe {
        unsf();
    }
}

#[warn(unsafe_op_in_unsafe_fn)]
unsafe fn warned() {
    // Removing this `unsafe` block will
    // cause the compiler to emit a warning.
    // (Also, no "unused unsafe" warning will be emitted here.)
    unsafe {
        unsf();
    }
}

#[deny(unsafe_op_in_unsafe_fn)]
unsafe fn denied() {
    // Removing this `unsafe` block will
    // cause a compilation error.
    // (Also, no "unused unsafe" warning will be emitted here.)
    unsafe {
        unsf();
    }
}
```

3 years agoRollup merge of #77511 - JulianKnodt:st_kind_cpy, r=oli-obk
Yuki Okushi [Tue, 9 Mar 2021 23:01:24 +0000 (08:01 +0900)]
Rollup merge of #77511 - JulianKnodt:st_kind_cpy, r=oli-obk

Add StatementKind::CopyNonOverlapping

Implements https://github.com/rust-lang/compiler-team/issues/348

r? `@nagisa`

3 years agoaddress pr review comments
katelyn a. martin [Fri, 23 Oct 2020 22:49:34 +0000 (18:49 -0400)]
address pr review comments

 ### Add debug assertion to check `AbiDatas` ordering

    This makes a small alteration to `Abi::index`, so that we include a
    debug assertion to check that the index we are returning corresponds
    with the same abi in our data array.

    This will help prevent ordering bugs in the future, which can
    manifest in rather strange errors.

 ### Using exhaustive ABI matches

    This slightly modifies the changes from our previous commits,
    favoring exhaustive matches in place of `_ => ...` fall-through
    arms.

    This should help with maintenance in the future, when additional
    ABI's are added, or when existing ABI's are modified.

 ### List all `-unwind` ABI's in unstable book

    This updates the `c-unwind` page in the unstable book to list _all_
    of the other ABI strings that are introduced by this feature gate.

    Now, all of the ABI's specified by RFC 2945 are shown.

Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
3 years agoadd integration tests, unwind across FFI boundary
katelyn a. martin [Sat, 12 Dec 2020 01:54:47 +0000 (20:54 -0500)]
add integration tests, unwind across FFI boundary

 ### Integration Tests

    This commit introduces some new fixtures to the `run-make-fulldeps`
    test suite.

        * c-unwind-abi-catch-panic: Exercise unwinding a panic. This
          catches a panic across an FFI boundary and downcasts it into
          an integer.

        * c-unwind-abi-catch-lib-panic: This is similar to the previous
         `*catch-panic` test, however in this case the Rust code that
         panics resides in a separate crate.

 ### Add `rust_eh_personality` to `#[no_std]` alloc tests

    This commit addresses some test failures that now occur in the
    following two tests:

        * no_std-alloc-error-handler-custom.rs
        * no_std-alloc-error-handler-default.rs

    Each test now defines a `rust_eh_personality` extern function, in
    the same manner as shown in the "Writing an executable without
    stdlib" section of the `lang_items` documentation here:
    https://doc.rust-lang.org/unstable-book/language-features/lang-items.html#writing-an-executable-without-stdlib

    Without this change, these tests would fail to compile due to a
    linking error explaining that there was an "undefined reference
    to `rust_eh_personality'."

 ### Updated hash

    * update 32-bit hash in `impl1` test

 ### Panics

    This commit uses `panic!` macro invocations that return a string,
    rather than using an integer as a panic payload.

    Doing so avoids the following warnings that were observed during
    rollup for the `*-msvc-1` targets:

    ```
    warning: panic message is not a string literal
      --> panic.rs:10:16
       |
    10 |         panic!(x); // That is too big!
       |                ^
       |
       = note: `#[warn(non_fmt_panic)]` on by default
       = note: this is no longer accepted in Rust 2021
    help: add a "{}" format string to Display the message
       |
    10 |         panic!("{}", x); // That is too big!
       |                ^^^^^
    help: or use std::panic::panic_any instead
       |
    10 |         std::panic::panic_any(x); // That is too big!
       |         ^^^^^^^^^^^^^^^^^^^^^

    warning: 1 warning emitted
    ```

    See: https://github.com/rust-lang-ci/rust/runs/1992118428

    As these errors imply, panicking without a format string will be
    disallowed in Rust 2021, per #78500.

3 years agoimplement unwinding abi's (RFC 2945)
katelyn a. martin [Thu, 10 Sep 2020 17:38:39 +0000 (13:38 -0400)]
implement unwinding abi's (RFC 2945)

 ### Changes

    This commit implements unwind ABI's, specified in RFC 2945.

    We adjust the `rustc_middle::ty::layout::fn_can_unwind` function,
    used to compute whether or not a `FnAbi` object represents a
    function that should be able to unwind when `panic=unwind` is in
    use.

    Changes are also made to
    `rustc_mir_build::build::should_abort_on_panic` so that the
    function ABI is used to determind whether it should abort, assuming
    that the `panic=unwind` strategy is being used, and no explicit
    unwind attribute was provided.

 ### Tests

    Unit tests, checking that the behavior is correct for `C-unwind`,
    `stdcall-unwind`, `system-unwind`, and `thiscall-unwind`, are
    included. These alternative `unwind` ABI strings are specified in
    RFC 2945, in the "_Other `unwind` ABI strings_" section.

    Additionally, a test case is included to assert that the LLVM IR
    generated for an external function defined with the `C-unwind` ABI
    will be appropriately labeled with the `nounwind` LLVM attribute
    when the `panic=abort` compilation flag is used.

 ### Ignore Directives

    This commit uses `ignore-*` directives in two of our `*-unwind` ABI
    test cases.

    Specifically, the `stdcall-unwind` and `thiscall-unwind` test cases
    ignore architectures that do not support `stdcall` and `thiscall`,
    respectively.

    These directives are cribbed from
    `src/test/ui/c-variadic/variadic-ffi-1.rs` for `stdcall`, and
    `src/test/ui/extern/extern-thiscall.rs` for `thiscall`.

3 years agorustc_target: add "unwind" payloads to `Abi`
katelyn a. martin [Thu, 27 Aug 2020 15:49:18 +0000 (11:49 -0400)]
rustc_target: add "unwind" payloads to `Abi`

 ### Overview

    This commit begins the implementation work for RFC 2945. For more
    information, see the rendered RFC [1] and tracking issue [2].

    A boolean `unwind` payload is added to the `C`, `System`, `Stdcall`,
    and `Thiscall` variants, marking whether unwinding across FFI
    boundaries is acceptable. The cases where each of these variants'
    `unwind` member is true correspond with the `C-unwind`,
    `system-unwind`, `stdcall-unwind`, and `thiscall-unwind` ABI strings
    introduced in RFC 2945 [3].

 ### Feature Gate and Unstable Book

    This commit adds a `c_unwind` feature gate for the new ABI strings.
    Tests for this feature gate are included in `src/test/ui/c-unwind/`,
    which ensure that this feature gate works correctly for each of the
    new ABIs.

    A new language features entry in the unstable book is added as well.

 ### Further Work To Be Done

    This commit does not proceed to implement the new unwinding ABIs,
    and is intentionally scoped specifically to *defining* the ABIs and
    their feature flag.

 ### One Note on Test Churn

    This will lead to some test churn, in re-blessing hash tests, as the
    deleted comment in `src/librustc_target/spec/abi.rs` mentioned,
    because we can no longer guarantee the ordering of the `Abi`
    variants.

    While this is a downside, this decision was made bearing in mind
    that RFC 2945 states the following, in the "Other `unwind` Strings"
    section [3]:

    >  More unwind variants of existing ABI strings may be introduced,
    >  with the same semantics, without an additional RFC.

    Adding a new variant for each of these cases, rather than specifying
    a payload for a given ABI, would quickly become untenable, and make
    working with the `Abi` enum prone to mistakes.

    This approach encodes the unwinding information *into* a given ABI,
    to account for the future possibility of other `-unwind` ABI
    strings.

 ### Ignore Directives

    `ignore-*` directives are used in two of our `*-unwind` ABI test
    cases.

    Specifically, the `stdcall-unwind` and `thiscall-unwind` test cases
    ignore architectures that do not support `stdcall` and
    `thiscall`, respectively.

    These directives are cribbed from
    `src/test/ui/c-variadic/variadic-ffi-1.rs` for `stdcall`, and
    `src/test/ui/extern/extern-thiscall.rs` for `thiscall`.

    This would otherwise fail on some targets, see:
    https://github.com/rust-lang-ci/rust/commit/fcf697f90206e9c87b39d494f94ab35d976bfc60

 ### Footnotes

[1]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md
[2]: https://github.com/rust-lang/rust/issues/74990
[3]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md#other-unwind-abi-strings

3 years agoClean up todos
kadmin [Fri, 26 Feb 2021 16:42:51 +0000 (16:42 +0000)]
Clean up todos

Also add some span_bugs where it is unreachable

3 years agoDon't hardcode the `v1` prelude in diagnostics.
Mara Bos [Tue, 9 Mar 2021 18:40:01 +0000 (19:40 +0100)]
Don't hardcode the `v1` prelude in diagnostics.

Instead of looking for `std::prelude::v1`, this changes it to look for
`std::prelude::<anything>`.

3 years agoRebase fallout.
Camille GILLOT [Fri, 19 Feb 2021 08:07:58 +0000 (09:07 +0100)]
Rebase fallout.

3 years agoUse BTreeMap to store attributes.
Camille GILLOT [Sun, 24 Jan 2021 16:14:17 +0000 (17:14 +0100)]
Use BTreeMap to store attributes.

3 years agoDeduplicate unchecked_attrs errors.
Camille GILLOT [Mon, 7 Dec 2020 21:46:35 +0000 (22:46 +0100)]
Deduplicate unchecked_attrs errors.

3 years agoAlias attributes of hir::Stmt.
Camille GILLOT [Sun, 6 Dec 2020 20:59:44 +0000 (21:59 +0100)]
Alias attributes of hir::Stmt.

The attributes for statements and those of the statements' content.

3 years agoFix ui-fulldeps tests.
Camille GILLOT [Sat, 5 Dec 2020 20:23:37 +0000 (21:23 +0100)]
Fix ui-fulldeps tests.

3 years agoTrack HirId when visiting attributes.
Camille GILLOT [Sat, 5 Dec 2020 16:40:19 +0000 (17:40 +0100)]
Track HirId when visiting attributes.

3 years agoBless tests.
Camille GILLOT [Sat, 28 Nov 2020 19:56:52 +0000 (20:56 +0100)]
Bless tests.

3 years agoRemove hir::Expr::attrs.
Camille GILLOT [Fri, 27 Nov 2020 16:41:05 +0000 (17:41 +0100)]
Remove hir::Expr::attrs.

3 years agoRemove hir::Item::attrs.
Camille GILLOT [Sun, 24 Jan 2021 12:17:54 +0000 (13:17 +0100)]
Remove hir::Item::attrs.

3 years agoRemove hir::ImplItem::attrs.
Camille GILLOT [Fri, 27 Nov 2020 08:55:10 +0000 (09:55 +0100)]
Remove hir::ImplItem::attrs.

3 years agoRemove hir::TraitItem::attrs.
Camille GILLOT [Fri, 27 Nov 2020 08:41:53 +0000 (09:41 +0100)]
Remove hir::TraitItem::attrs.

3 years agoRemove hir::ForeignItem::attrs.
Camille GILLOT [Thu, 26 Nov 2020 23:35:22 +0000 (00:35 +0100)]
Remove hir::ForeignItem::attrs.

3 years agoRemove hir::StructField::attrs.
Camille GILLOT [Thu, 26 Nov 2020 23:27:34 +0000 (00:27 +0100)]
Remove hir::StructField::attrs.

3 years agoRemove hir::Variant::attrs.
Camille GILLOT [Thu, 26 Nov 2020 23:07:36 +0000 (00:07 +0100)]
Remove hir::Variant::attrs.

3 years agoRemove hir::Param::attrs.
Camille GILLOT [Thu, 26 Nov 2020 22:51:27 +0000 (23:51 +0100)]
Remove hir::Param::attrs.

3 years agoRemove hir::Arm::attrs.
Camille GILLOT [Thu, 26 Nov 2020 22:46:48 +0000 (23:46 +0100)]
Remove hir::Arm::attrs.

3 years agoRemove hir::Crate::attrs.
Camille GILLOT [Thu, 26 Nov 2020 22:38:53 +0000 (23:38 +0100)]
Remove hir::Crate::attrs.

3 years agoRemove hir::MacroDef::attrs.
Camille GILLOT [Thu, 18 Feb 2021 18:34:40 +0000 (19:34 +0100)]
Remove hir::MacroDef::attrs.

3 years agoRemove hir::GenericParam::attrs.
Camille GILLOT [Fri, 27 Nov 2020 17:01:40 +0000 (18:01 +0100)]
Remove hir::GenericParam::attrs.

3 years agoRemove hir::Local::attrs.
Camille GILLOT [Wed, 25 Nov 2020 21:45:24 +0000 (22:45 +0100)]
Remove hir::Local::attrs.

3 years agoRemove hir::StmtKind::attrs.
Camille GILLOT [Wed, 25 Nov 2020 21:07:09 +0000 (22:07 +0100)]
Remove hir::StmtKind::attrs.

3 years agoVisit attributes in one go.
Camille GILLOT [Wed, 25 Nov 2020 22:04:38 +0000 (23:04 +0100)]
Visit attributes in one go.

3 years agoDo not store attrs in FnKind.
Camille GILLOT [Fri, 27 Nov 2020 08:24:42 +0000 (09:24 +0100)]
Do not store attrs in FnKind.

3 years agoSimplify clippy author.
Camille GILLOT [Sun, 6 Dec 2020 21:00:24 +0000 (22:00 +0100)]
Simplify clippy author.

3 years agoAccess attrs directly from HirId in rustdoc::doctest.
Camille GILLOT [Thu, 18 Feb 2021 18:35:12 +0000 (19:35 +0100)]
Access attrs directly from HirId in rustdoc::doctest.

3 years agoAccess attrs directly from HirId in rustc_passes::diagnostic_item.
Camille GILLOT [Thu, 26 Nov 2020 23:34:23 +0000 (00:34 +0100)]
Access attrs directly from HirId in rustc_passes::diagnostic_item.

3 years agoAccess attrs directly from HirId in rustc_lint::builtin.
Camille GILLOT [Thu, 26 Nov 2020 23:05:29 +0000 (00:05 +0100)]
Access attrs directly from HirId in rustc_lint::builtin.

3 years agoAccess attrs directly from HirId in rustc_passes::lang_items.
Camille GILLOT [Thu, 26 Nov 2020 23:01:36 +0000 (00:01 +0100)]
Access attrs directly from HirId in rustc_passes::lang_items.

3 years agoAccess attrs directly from HirId in rustc_passes::dead.
Camille GILLOT [Thu, 26 Nov 2020 23:00:02 +0000 (00:00 +0100)]
Access attrs directly from HirId in rustc_passes::dead.

3 years agoAccess attrs directly from HirId in rustc_passes::stability.
Camille GILLOT [Thu, 26 Nov 2020 22:25:07 +0000 (23:25 +0100)]
Access attrs directly from HirId in rustc_passes::stability.

3 years agoAccess attrs directly from HirId in rustc_incremental::assert_dep_graph.
Camille GILLOT [Thu, 26 Nov 2020 22:23:01 +0000 (23:23 +0100)]
Access attrs directly from HirId in rustc_incremental::assert_dep_graph.

3 years agoAccess attrs directly from HirId in rustc_passes::check_attr.
Camille GILLOT [Wed, 25 Nov 2020 22:27:23 +0000 (23:27 +0100)]
Access attrs directly from HirId in rustc_passes::check_attr.

3 years agoAccess attrs directly from HirId in rustc_lint::levels.
Camille GILLOT [Wed, 25 Nov 2020 22:25:57 +0000 (23:25 +0100)]
Access attrs directly from HirId in rustc_lint::levels.

3 years agoAccess attrs directly from HirId in rustc_lint::late.
Camille GILLOT [Wed, 25 Nov 2020 22:19:54 +0000 (23:19 +0100)]
Access attrs directly from HirId in rustc_lint::late.

3 years agoTake a slice in stmt_let_pat.
Camille GILLOT [Mon, 4 Jan 2021 20:50:45 +0000 (21:50 +0100)]
Take a slice in stmt_let_pat.

3 years agoCollect attributes during HIR lowering.
Camille GILLOT [Tue, 24 Nov 2020 17:12:42 +0000 (18:12 +0100)]
Collect attributes during HIR lowering.

3 years agoIntroduce HirIdVec.
Camille GILLOT [Tue, 19 May 2020 10:05:19 +0000 (12:05 +0200)]
Introduce HirIdVec.

3 years agoRemove useless Clone bound in IndexVec.
Camille GILLOT [Tue, 19 May 2020 10:04:33 +0000 (12:04 +0200)]
Remove useless Clone bound in IndexVec.

3 years agoSwitch to changing cp_non_overlap in tform
kadmin [Sat, 23 Jan 2021 08:57:04 +0000 (08:57 +0000)]
Switch to changing cp_non_overlap in tform

It was suggested to lower this in MIR instead of ssa, so do that instead.

3 years agoBuild StKind::CopyOverlapping
kadmin [Sat, 23 Jan 2021 03:55:41 +0000 (03:55 +0000)]
Build StKind::CopyOverlapping

This replaces where it was previously being constructed in intrinsics, with direct construction
of the Statement.

3 years agoChange CopyNonOverlapping::codegen_ssa
kadmin [Sat, 23 Jan 2021 02:28:08 +0000 (02:28 +0000)]
Change CopyNonOverlapping::codegen_ssa

Fixes copy_non_overlapping codegen_ssa to properly handle pointees,
and use bytes instead of elem count

3 years agoReplace todos with impls
kadmin [Sat, 23 Jan 2021 00:23:13 +0000 (00:23 +0000)]
Replace todos with impls

Changed to various implementations, copying the style of prior function calls in places I was
unsure of.

Also one minor style nit.

3 years agoUpdate cranelift
kadmin [Tue, 29 Dec 2020 02:00:04 +0000 (02:00 +0000)]
Update cranelift

3 years agoUpdate interpret step
kadmin [Sat, 7 Nov 2020 00:49:55 +0000 (00:49 +0000)]
Update interpret step

3 years agoUpdate match branches
kadmin [Mon, 5 Oct 2020 22:53:00 +0000 (22:53 +0000)]
Update match branches

This updates all places where match branches check on StatementKind or UseContext.
This doesn't properly implement them, but adds TODOs where they are, and also adds some best
guesses to what they should be in some cases.

3 years agoUpdate fmt and use of memcpy
kadmin [Mon, 5 Oct 2020 20:13:36 +0000 (20:13 +0000)]
Update fmt and use of memcpy

I'm still not totally sure if this is the right way to implement the memcpy, but that portion
compiles correctly now. Now to fix the compile errors everywhere else :).

3 years agoImpl StatementKind::CopyNonOverlapping
kadmin [Sat, 3 Oct 2020 20:57:47 +0000 (20:57 +0000)]
Impl StatementKind::CopyNonOverlapping

3 years agoBump tracing-tree dependency
Oli Scherer [Tue, 9 Mar 2021 16:44:51 +0000 (16:44 +0000)]
Bump tracing-tree dependency

3 years agoUpdate README.md to use the correct cmake version number
Wesley Wiser [Tue, 9 Mar 2021 15:59:35 +0000 (10:59 -0500)]
Update README.md to use the correct cmake version number

LLVM requires at least cmake 3.13.4 and cmake is only required to build
LLVM.

Also closes #42555

3 years agoAlways compile the fragile wait status test cases, just run them conditionally
Ian Jackson [Tue, 9 Mar 2021 10:53:03 +0000 (10:53 +0000)]
Always compile the fragile wait status test cases, just run them conditionally

Co-authored-by: David Tolnay <dtolnay@gmail.com>
3 years agoAuto merge of #82929 - m-ou-se:rollup-7fwrewh, r=m-ou-se
bors [Tue, 9 Mar 2021 09:43:55 +0000 (09:43 +0000)]
Auto merge of #82929 - m-ou-se:rollup-7fwrewh, r=m-ou-se

Rollup of 8 pull requests

Successful merges:

 - #81127 (Improve sift_down performance in BinaryHeap)
 - #81879 (Added #[repr(transparent)] to core::cmp::Reverse)
 - #82048 (or-patterns: disallow in `let` bindings)
 - #82731 (Bump libc dependency of std to 0.2.88.)
 - #82799 (Add regression test for #75525)
 - #82841 (Change x64 size checks to not apply to x32.)
 - #82883 (Update Cargo)
 - #82887 (Update CONTRIBUTING.md)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #82887 - henryboisdequin:improve-contributing-md, r=joshtriplett
Mara Bos [Tue, 9 Mar 2021 09:05:27 +0000 (09:05 +0000)]
Rollup merge of #82887 - henryboisdequin:improve-contributing-md, r=joshtriplett

Update CONTRIBUTING.md

Fixes #77215

As mentioned in #77215, the current CONTRIBUTING.md links to the rustc-dev-guide.
Even though the rustc-dev-guide has lots of useful information for contributors,
one is already confused by reading the first line of the current CONTRIBUTING.md.

> To get started, read the [Getting Started] guide in the [rustc-dev-guide].

This line tells the contributor to go and read the rustc-dev-guide. What is
the rustc-dev-guide? What does rustc even mean? These are some of the
questions that went into my head when reading this line as a first-time
contributor. By explaining what the rustc-dev-guide is and some platforms
to get help, a new contributor understands what the first step is and the process
is much clearer. The `About the [rustc-dev-guide]` section explains what
the rustc-dev-guide is, what rustc is, and the purpose out of reading the
guide. The `Getting help` section points the user to some places where
they can get help, find a mentor, and introduce themselves.

3 years agoRollup merge of #82883 - Aaron1011:update-cargo, r=ehuss
Mara Bos [Tue, 9 Mar 2021 09:05:25 +0000 (09:05 +0000)]
Rollup merge of #82883 - Aaron1011:update-cargo, r=ehuss

Update Cargo

Output of `git log --oneline  c68432f1e..970bc67c3`:

970bc67c3 (HEAD, origin/master, origin/auto-cargo, origin/HEAD) Auto merge of #9243 - wickerwaka:configurable-env-doc, r=ehuss
4d7a29b75 Document the configurable-env usntable option
f7a7a3f91 Auto merge of #9229 - alexcrichton:fix-borrow-mut, r=ehuss
3f2ece7a9 Fix a `BorrowMut` error when stdout is closed
7441e8c23 Auto merge of #8825 - Aaron1011:feature/report-future-incompat, r=ehuss
139ed73f5 Add future-incompat tracking issue number.
9ea350368 Fix some minor formatting issues.
f03d47ce4 Address review comments
6177c6584 Implement future incompatibility report support
c69409658 Auto merge of #9022 - nagisa:nagisa/manifest_path, r=alexcrichton
548300b20 Add the path to the manifest in json output
99e714c05 Auto merge of #9230 - kornelski:nobinaries, r=alexcrichton
61a31bc5f Auto merge of #9236 - kornelski:track-assert, r=Eh2406
3f7f0942c track_caller on custom assert functions
6977dee10 Explain `cargo install` is not for libraries
e4aebf0a0 Auto merge of #9231 - joshtriplett:clear-to-eol-if-color, r=alexcrichton
b219f0eb7 Auto merge of #9181 - jyn514:computer-says-no, r=ehuss
0b1816578 Remove unhelpful link to Cargo book
ea46f5ce3 Use ANSI clear-to-EOL if color is force-enabled
a6394bcc1 Remove unnecessary `config` argument to `Features::add`
3a86ecf2d Fix TODO about nightly features
09677c83c Be less unix-centric in error messages
ecfdced0d Fix test that assumed tests always were run on the stable channel
eba541994 Update comment in build_script_env
a5720117f Make `nightly_features_allowed` a field instead of a function
169b09ce7 Compute `enable_nightly_features` once instead of on each call
8fc86e155 Remove unused thread_locals
4b096beae Fix `masquerade_as_nightly_cargo` in work threads
e56417c8c Suggest RUSTC_BOOTSTRAP=crate instead of RUSTC_BOOTSTRAP=1
418129dae Downgrade error to a warning when `RUSTC_BOOTSTRAP` is set or this is the nightly channel
6c422a2c0 Restrict RUSTC_BOOTSTRAP in build.rs

3 years agoRollup merge of #82841 - hvdijk:x32, r=joshtriplett
Mara Bos [Tue, 9 Mar 2021 09:05:24 +0000 (09:05 +0000)]
Rollup merge of #82841 - hvdijk:x32, r=joshtriplett

Change x64 size checks to not apply to x32.

Rust contains various size checks conditional on target_arch = "x86_64", but these checks were never intended to apply to x86_64-unknown-linux-gnux32. Add target_pointer_width = "64" to the conditions.

3 years agoRollup merge of #82799 - bugadani:codegen-tests, r=nagisa
Mara Bos [Tue, 9 Mar 2021 09:05:23 +0000 (09:05 +0000)]
Rollup merge of #82799 - bugadani:codegen-tests, r=nagisa

Add regression test for #75525

3 years agoRollup merge of #82731 - de-vri-es:bump-libc-for-std, r=Mark-Simulacrum
Mara Bos [Tue, 9 Mar 2021 09:05:22 +0000 (09:05 +0000)]
Rollup merge of #82731 - de-vri-es:bump-libc-for-std, r=Mark-Simulacrum

Bump libc dependency of std to 0.2.88.

This PR bumps the `libc` dependency of `std` to 0.2.88. This will fix `TcpListener::accept` for Android on x86 platforms (https://github.com/rust-lang/libc/commit/31a2777d8f72db9eb3c3105f13afa94a47ca90d5).

This will really finally fix https://github.com/rust-lang/rust/issues/82400 for the main branch :)

r? ``@JohnTitor``

3 years agoRollup merge of #82048 - mark-i-m:or-pat-type-ascription, r=petrochenkov
Mara Bos [Tue, 9 Mar 2021 09:05:20 +0000 (09:05 +0000)]
Rollup merge of #82048 - mark-i-m:or-pat-type-ascription, r=petrochenkov

or-patterns: disallow in `let` bindings

~~Blocked on https://github.com/rust-lang/rust/pull/81869~~

Disallows top-level or-patterns before type ascription. We want to reserve this syntactic space for possible future generalized type ascription.

r? ``@petrochenkov``

3 years agoRollup merge of #81879 - imbrem:make-reverse-repr-transparent, r=m-ou-se
Mara Bos [Tue, 9 Mar 2021 09:05:19 +0000 (09:05 +0000)]
Rollup merge of #81879 - imbrem:make-reverse-repr-transparent, r=m-ou-se

Added #[repr(transparent)] to core::cmp::Reverse

I found casting from an `&T` to an `&Reverse<T>` potentially useful, but found that `Reverse` was not `#[repr(transparent)]`, so after asking about it [on Reddit](https://www.reddit.com/r/rust/comments/le60uv/make_stdcmpreverse_reprtransparent_and_add_a/), I decided to go ahead and make a pull request which simply adds the attribute to the struct.

3 years agoRollup merge of #81127 - hanmertens:binary_heap_sift_down_perf, r=dtolnay
Mara Bos [Tue, 9 Mar 2021 09:05:18 +0000 (09:05 +0000)]
Rollup merge of #81127 - hanmertens:binary_heap_sift_down_perf, r=dtolnay

Improve sift_down performance in BinaryHeap

Replacing `child < end - 1` with `child <= end.saturating_sub(2)` in `BinaryHeap::sift_down_range` (surprisingly) results in a significant speedup of `BinaryHeap::into_sorted_vec`. The same substitution can be done for `BinaryHeap::sift_down_to_bottom`, which causes a slight but probably statistically insignificant speedup for `BinaryHeap::pop`. It's interesting that benchmarks aside from `bench_into_sorted_vec` are barely affected, even those that do use `sift_down_*` methods internally.

| Benchmark                | Before (ns/iter) | After (ns/iter) | Speedup |
|--------------------------|------------------|-----------------|---------|
| bench_find_smallest_1000<sup>1</sup> | 392,617          | 385,200         |    1.02 |
| bench_from_vec<sup>1</sup>           | 506,016          | 504,444         |    1.00 |
| bench_into_sorted_vec<sup>1</sup>    | 476,869          | 384,458         |    1.24 |
| bench_peek_mut_deref_mut<sup>3</sup> | 518,753          | 519,792         |    1.00 |
| bench_pop<sup>2</sup>                | 446,718          | 444,409         |    1.01 |
| bench_push<sup>3</sup>               | 772,481          | 770,208         |    1.00 |

<sup>1</sup>: internally calls `sift_down_range`
<sup>2</sup>: internally calls `sift_down_to_bottom`
<sup>3</sup>: should not be affected

3 years agoAuto merge of #82356 - camelid:render-cleanup, r=GuillaumeGomez
bors [Tue, 9 Mar 2021 04:33:43 +0000 (04:33 +0000)]
Auto merge of #82356 - camelid:render-cleanup, r=GuillaumeGomez

rustdoc: Cleanup `html::render::Context`

- Move most shared fields to `SharedContext` (except for `cache`, which
  isn't mutated anyway)
- Replace a use of `Arc` with `Rc`
- Make a bunch of fields private
- Add static size assertion for `Context`
- Don't share `id_map` and `deref_id_map`

3 years agoMake opening sentence friendlier for new contributors
Henry Boisdequin [Tue, 9 Mar 2021 02:55:41 +0000 (08:25 +0530)]
Make opening sentence friendlier for new contributors

Co-authored-by: Camelid <camelidcamel@gmail.com>
3 years agoUpdate CONTRIBUTING.md
Henry Boisdequin [Mon, 8 Mar 2021 05:56:05 +0000 (11:26 +0530)]
Update CONTRIBUTING.md

Fixes #77215

As mentioned in #77215, the current CONTRIBUTING.md links to the rustc-dev-guide.
Even though the rustc-dev-guide has lots of useful information for contributors,
one is already confused by reading the first line of the current CONTRIBUTING.md.

> To get started, read the [Getting Started] guide in the [rustc-dev-guide].

This line tells the contributor to go and read the rustc-dev-guide. What is
the rustc-dev-guide? What does rustc even mean? These are some of the
questions that went into my head when reading this line as a first time
contributor. By explaining what the rustc-dev-guide is and some platforms
to get help, a new contributor understands what the first step is and the process
is much clearer. The `About the [rustc-dev-guide]` section explains what
the rustc-dev-guide is, what rustc is, and the purpose out of reading the
guide. The `Getting help` section points the user to some places where
they can get help, find a mentor, and introduce themsevles.

3 years agoAuto merge of #82911 - m-ou-se:rollup-rjomgja, r=m-ou-se
bors [Tue, 9 Mar 2021 01:47:39 +0000 (01:47 +0000)]
Auto merge of #82911 - m-ou-se:rollup-rjomgja, r=m-ou-se

Rollup of 11 pull requests

Successful merges:

 - #82711 (Add documentation for string->Cow conversions)
 - #82767 (Update minifier dependency version)
 - #82800 (Move rustdoc UI tests into a subdirectory)
 - #82810 (Typo fix in Unstable book: `cargo cov` -> `cargo profdata`)
 - #82829 (Handle negative literals in cast overflow warning)
 - #82854 (Account for `if (let pat = expr) {}`)
 - #82870 (Add note about the `#[doc(no-inline)]` usage)
 - #82874 (Add codegen tests for some issues closed by LLVM 12)
 - #82881 (diagnostics: Be clear about "crate root" and `::foo` paths in resolve diagnostics)
 - #82888 (Grammar Fixes)
 - #82897 ([.mailmap] Add entry for Ramkumar Ramachandra)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoAuto merge of #82877 - ehuss:revert-rwlock, r=m-ou-se
bors [Mon, 8 Mar 2021 22:53:20 +0000 (22:53 +0000)]
Auto merge of #82877 - ehuss:revert-rwlock, r=m-ou-se

Revert switch of env locking to rwlock, to fix deadlock in process spawning

This reverts commit 354f19cf2475148994954b6783341620c7445071, reversing changes made to 0cfba2fd090834c909d5ed9deccdee8170da791b.

PR https://github.com/rust-lang/rust/pull/81850 switched the environment lock from a mutex to an rwlock. However, process spawning (when not able to use `posix_spawn`) locks the environment before forking, and unlocks it after forking (in both the parent and the child). With a mutex, this works (although probably not correct even with a mutex). With an rwlock, on at least some targets, unlocking in the child does not work correctly, resulting in a deadlock.

This has manifested as CI hangs on i686 Linux; that target doesn't use `posix_spawn` in the CI environment due to the age of the installed C library (currently glibc 2.23). (Switching to `posix_spawn` would just mask this issue, though, which would still arise in any case that can't use `posix_spawn`.)

Some additional cleanup of environment handling around process spawning may help, but for now, revert the PR and go back to a standard mutex.

Fixes #82221

3 years agoclippy: fix or-pattern in let binding
mark [Mon, 8 Mar 2021 18:41:28 +0000 (12:41 -0600)]
clippy: fix or-pattern in let binding

3 years agoRollup merge of #82897 - artagnon:patch-2, r=joshtriplett
Mara Bos [Mon, 8 Mar 2021 19:09:08 +0000 (20:09 +0100)]
Rollup merge of #82897 - artagnon:patch-2, r=joshtriplett

[.mailmap] Add entry for Ramkumar Ramachandra

3 years agoRollup merge of #82888 - Daggy1234:patch-1, r=joshtriplett
Mara Bos [Mon, 8 Mar 2021 19:09:07 +0000 (20:09 +0100)]
Rollup merge of #82888 - Daggy1234:patch-1, r=joshtriplett

Grammar Fixes

Found typo's in the array rustdoc. Pr'ed a fix!

3 years agoRollup merge of #82881 - Manishearth:crate-root, r=estebank
Mara Bos [Mon, 8 Mar 2021 19:09:06 +0000 (20:09 +0100)]
Rollup merge of #82881 - Manishearth:crate-root, r=estebank

diagnostics: Be clear about "crate root" and `::foo` paths in resolve diagnostics

Various changes to make sure the diagnostics are clear about the differences in `::foo` paths across editions:

 - `::foo` will say "crate root" in 2015 and "list of imported crates" in 2018
 - `crate::` will never reference imported crates in 2018

Fixes https://github.com/rust-lang/rust/issues/82876

3 years agoRollup merge of #82874 - erikdesjardins:cgtests, r=nagisa
Mara Bos [Mon, 8 Mar 2021 19:09:04 +0000 (20:09 +0100)]
Rollup merge of #82874 - erikdesjardins:cgtests, r=nagisa

Add codegen tests for some issues closed by LLVM 12

Namely #73031, #75546, and #77812

3 years agoRollup merge of #82870 - jfrimmel:improve-docs, r=jyn514
Mara Bos [Mon, 8 Mar 2021 19:09:03 +0000 (20:09 +0100)]
Rollup merge of #82870 - jfrimmel:improve-docs, r=jyn514

Add note about the `#[doc(no-inline)]` usage

This is required to correctly build the documentation (including all submodules, that are only available in certain targets).

See the linked issue and #82861 for reference.

3 years agoRollup merge of #82854 - estebank:issue-82827, r=oli-obk
Mara Bos [Mon, 8 Mar 2021 19:09:02 +0000 (20:09 +0100)]
Rollup merge of #82854 - estebank:issue-82827, r=oli-obk

Account for `if (let pat = expr) {}`

Fix #82827.

3 years agoRollup merge of #82829 - JohnTitor:handle-neg-val, r=estebank
Mara Bos [Mon, 8 Mar 2021 19:09:01 +0000 (20:09 +0100)]
Rollup merge of #82829 - JohnTitor:handle-neg-val, r=estebank

Handle negative literals in cast overflow warning

Closes #48535
r? `@estebank`

3 years agoRollup merge of #82810 - amaurremi:source-based-coverage-typo, r=ehuss
Mara Bos [Mon, 8 Mar 2021 19:09:00 +0000 (20:09 +0100)]
Rollup merge of #82810 - amaurremi:source-based-coverage-typo, r=ehuss

Typo fix in Unstable book: `cargo cov` -> `cargo profdata`

3 years agoRollup merge of #82800 - jyn514:group-rustdoc-tests, r=Mark-Simulacrum
Mara Bos [Mon, 8 Mar 2021 19:08:59 +0000 (20:08 +0100)]
Rollup merge of #82800 - jyn514:group-rustdoc-tests, r=Mark-Simulacrum

Move rustdoc UI tests into a subdirectory

Helps with https://github.com/rust-lang/rust/issues/73494.

3 years agoRollup merge of #82767 - GuillaumeGomez:update-minifier-crate-version, r=jyn514
Mara Bos [Mon, 8 Mar 2021 19:08:57 +0000 (20:08 +0100)]
Rollup merge of #82767 - GuillaumeGomez:update-minifier-crate-version, r=jyn514

Update minifier dependency version

Very small PR simply upgrading the minifier-rs version we use in rustdoc.

Some details might be useful: there were a few bug fixes and a lot of cleanup/code improvements.

r? `@camelid`