]> git.lizzy.rs Git - rust.git/log
rust.git
2 years agoTest `expect` with `forbid` and fix doc errors (RFC-2383)
xFrednet [Thu, 25 Nov 2021 09:45:25 +0000 (10:45 +0100)]
Test `expect` with `forbid` and fix doc errors (RFC-2383)

* Add test to expect and the forbid a lint (RFC 2383)

2 years agoExpect each lint in attribute individually (RFC-2383)
xFrednet [Wed, 24 Nov 2021 20:57:38 +0000 (21:57 +0100)]
Expect each lint in attribute individually (RFC-2383)

2 years agoAdd UI tests for the `expect` attribute (RFC-2383)
xFrednet [Fri, 6 Aug 2021 21:38:09 +0000 (23:38 +0200)]
Add UI tests for the `expect` attribute (RFC-2383)

* Add UI tests with macros for the `expect` attribute (RFC-2383)
* Addressed review comments - mostly UI test updates (RFC-2383)
* Documented lint level attribute on macro not working bug (RFC-2383)
  See `rust#87391`

2 years agoMake `LintExpectationId` stable between compilation sessions (RFC-2383)
xFrednet [Sat, 20 Nov 2021 19:45:27 +0000 (20:45 +0100)]
Make `LintExpectationId` stable between compilation sessions (RFC-2383)

2 years agoCheck lint expectations and emit lint if unfulfilled (RFC-2383)
xFrednet [Fri, 6 Aug 2021 21:36:33 +0000 (23:36 +0200)]
Check lint expectations and emit lint if unfulfilled (RFC-2383)

2 years agoSet `LintExpectationId` in level and collect fulfilled ones (RFC-2383)
xFrednet [Fri, 6 Aug 2021 21:28:58 +0000 (23:28 +0200)]
Set `LintExpectationId` in level and collect fulfilled ones (RFC-2383)

* Collect lint expectations and set expectation ID in level (RFC-2383)
* Collect IDs of fulfilled lint expectations from diagnostics (RFC 2383)

2 years agoAdded `unfulfilled_lint_expectations` lint for (RFC-2383)
xFrednet [Fri, 6 Aug 2021 21:23:34 +0000 (23:23 +0200)]
Added `unfulfilled_lint_expectations` lint for (RFC-2383)

2 years agoAdded `Expect` lint level and attribute (RFC-2383)
xFrednet [Fri, 6 Aug 2021 21:18:16 +0000 (23:18 +0200)]
Added `Expect` lint level and attribute (RFC-2383)

* Also added the `LintExpectationId` which will be used in future commits

2 years agoAuto merge of #94229 - erikdesjardins:rem2, r=nikic
bors [Wed, 2 Mar 2022 08:48:33 +0000 (08:48 +0000)]
Auto merge of #94229 - erikdesjardins:rem2, r=nikic

Remove LLVM attribute removal

This was necessary before, because `declare_raw_fn` would always apply
the default optimization attributes to every declared function.
Then `attributes::from_fn_attrs` would have to remove the default
attributes in the case of, e.g. `#[optimize(speed)]` in a `-Os` build.
(see [`src/test/codegen/optimize-attr-1.rs`](https://github.com/rust-lang/rust/blob/03a8cc7df1d65554a4d40825b0490c93ac0f0236/src/test/codegen/optimize-attr-1.rs#L33))

However, every relevant callsite of `declare_raw_fn` (i.e. where we
actually generate code for the function, and not e.g. a call to an
intrinsic, where optimization attributes don't [?] matter)
calls `from_fn_attrs`, so we can remove the attribute setting
from `declare_raw_fn`, and rely on `from_fn_attrs` to apply the correct
attributes all at once.

r? `@ghost` (blocked on #94221)
`@rustbot` label S-blocked

2 years agoAuto merge of #94514 - matthiaskrgr:rollup-pdzn82h, r=matthiaskrgr
bors [Wed, 2 Mar 2022 05:32:00 +0000 (05:32 +0000)]
Auto merge of #94514 - matthiaskrgr:rollup-pdzn82h, r=matthiaskrgr

Rollup of 9 pull requests

Successful merges:

 - #94464 (Suggest adding a new lifetime parameter when two elided lifetimes should match up for traits and impls.)
 - #94476 (7 - Make more use of `let_chains`)
 - #94478 (Fix panic when handling intra doc links generated from macro)
 - #94482 (compiler: fix some typos)
 - #94490 (Update books)
 - #94496 (tests: accept llvm intrinsic in align-checking test)
 - #94498 (9 - Make more use of `let_chains`)
 - #94503 (Provide C FFI types via core::ffi, not just in std)
 - #94513 (update Miri)

Failed merges:

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

2 years agoRollup merge of #94513 - RalfJung:miri, r=RalfJung
Matthias Krüger [Wed, 2 Mar 2022 03:30:13 +0000 (04:30 +0100)]
Rollup merge of #94513 - RalfJung:miri, r=RalfJung

update Miri

Fixes https://github.com/rust-lang/rust/issues/94474
r? `@ghost`

2 years agoRollup merge of #94503 - joshtriplett:core-ffi-c, r=Amanieu
Matthias Krüger [Wed, 2 Mar 2022 03:30:12 +0000 (04:30 +0100)]
Rollup merge of #94503 - joshtriplett:core-ffi-c, r=Amanieu

Provide C FFI types via core::ffi, not just in std

Tracking issue: https://github.com/rust-lang/rust/issues/94501

The ability to interoperate with C code via FFI is not limited to crates
using std; this allows using these types without std.

The existing types in `std::os::raw` become type aliases for the ones in
`core::ffi`. This uses type aliases rather than re-exports, to allow the
std types to remain stable while the core types are unstable.

This also moves the currently unstable `NonZero_` variants and
`c_size_t`/`c_ssize_t`/`c_ptrdiff_t` types to `core::ffi`, while leaving
them unstable.

Historically, we didn't do this because these types are target-dependent.
However, `core` itself is also target-dependent. `core` should not call
any OS services, but it knows the target and the target's ABI.

2 years agoRollup merge of #94498 - c410-f3r:chega-ja-deu, r=Dylan-DPC
Matthias Krüger [Wed, 2 Mar 2022 03:30:11 +0000 (04:30 +0100)]
Rollup merge of #94498 - c410-f3r:chega-ja-deu, r=Dylan-DPC

9 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoRollup merge of #94496 - durin42:llvm-15-moar-intrinsic, r=nikic
Matthias Krüger [Wed, 2 Mar 2022 03:30:10 +0000 (04:30 +0100)]
Rollup merge of #94496 - durin42:llvm-15-moar-intrinsic, r=nikic

tests: accept llvm intrinsic in align-checking test

This changed in upstream change https://reviews.llvm.org/D98152 (aka
https://github.com/llvm/llvm-project/commit/a266af721153fab6452094207b09ed265ab0be7b)
wherein LLVM got smarter about using intrinsics. As best I can tell the
change I've made here preserves the intent of the test on LLVM 14 and
before while also passing on LLVM 15 and later.

2 years agoRollup merge of #94490 - ehuss:update-books, r=ehuss
Matthias Krüger [Wed, 2 Mar 2022 03:30:10 +0000 (04:30 +0100)]
Rollup merge of #94490 - ehuss:update-books, r=ehuss

Update books

## nomicon

1 commits in 90993eeac93dbf9388992de92965f99cf6f29a03..f6d6126fc96ecf4a7f7d22da330df9506293b0d0
2022-02-13 12:44:12 +0900 to 2022-02-26 02:21:21 +0900
- ffi: explicitly declare hello_from_rust for C99 (rust-lang/nomicon#343)

## reference

20 commits in 70fc73a6b908e08e66aa0306856c5211312f6c05..9d289c05fce7254b99c6a0d354d84abb7fd7a032
2022-02-14 19:33:01 -0800 to 2022-02-23 08:58:20 -0800
- Fix typo in `functions.md` (rust-lang/reference#1173)
- Fix CI
- Unify global_asm/asm directive list
- Update src/inline-assembly.md
- Update src/inline-assembly.md
- Fix changes unintentional reverted in d5d3d80
- Add note about operand interpolations
- Sort lists, add syntax control directives
- Add another missed batch suggestion
- Add missed batch suggestion
- Apply suggestions from code review
- Add .type, .size, and .p2align
- Reformat directive lists
- Add `.inst` directive
- Add missing directives
- Add additional directives in use
- Add `.fill` directive
- Style fixes
- Fix code block
- Add supported Directives list

## book

13 commits in 67b768c0b660a069a45f0e5d8ae2f679df1022ab..3f255ed40b8c82a0434088568fbed270dc31bf00
2022-02-09 21:52:41 -0500 to 2022-02-27 21:26:12 -0500
- Add a back reference about enum variant initializer fns. Fixes rust-lang/book#800.
- Update ch01-03-hello-cargo.md
- ch03-05: Add definite article for the block of code
- Change variable names from "slice" to "values"
- Remove reference to advanced lifetime section that no longer exists
- Fix link to go to the right newtype section
- Remove confusing and redundant part of a sentence about newtypes
- Make transition less repetitive
- Correct wording about associated functions.
- Remove unnecessary extern crate proc_macro
- Clarify that this code is defining, not using a procedural macro
- Add manual regeneration steps for cargo new test
- Update Listing 11-1 to reflect current contents

## rust-by-example

11 commits in 18c0055b8aea49391e8f758a4400097999c9cf1e..2a928483a20bb306a7399c0468234db90d89afb5
2022-01-19 08:51:55 -0300 to 2022-02-28 11:36:59 -0300
- Update destructure_slice.md (rust-lang/rust-by-example#1513)
- Update iter_find.md (rust-lang/rust-by-example#1512)
- Add an example of collecting errors while iterating successes (rust-lang/rust-by-example#1509)
- Fix broken link on asm (rust-lang/rust-by-example#1508)
- Update abort_unwind.md (rust-lang/rust-by-example#1505)
- Remove duplicate text in asm.md (rust-lang/rust-by-example#1506)
- Improve asm clobber example (rust-lang/rust-by-example#1504)
- Add +1 to next_age (rust-lang/rust-by-example#1503)
- fix comment on into_iter() for arrays (rust-lang/rust-by-example#1502)
- Added new Rust 1.58 direct format args (rust-lang/rust-by-example#1501)
- documentation for cfg_panic (rust-lang/rust-by-example#1500)

## rustc-dev-guide

13 commits in 62f58394ba7b203f55ac35ddcc4c0b79578f5706..32f2a5b4e7545318846185198542230170dd8a42
2022-02-11 08:42:50 -0500 to 2022-03-01 10:45:24 -0600
- Add architecture suggestion for Apple silicon (rust-lang/rustc-dev-guide#1320)
- cargo timings has been stabilized (rust-lang/rustc-dev-guide#1319)
- Add known-bug header. (rust-lang/rustc-dev-guide#1311)
- Fix typo (rust-lang/rustc-dev-guide#1315)
- Typo (rust-lang/rustc-dev-guide#1313)
- instrument-coverage has been stabilized.
- symbol-mangling-version has been stabilized
- Fix `Ty` link (rust-lang/rustc-dev-guide#1308)
- Edit glossary (rust-lang/rustc-dev-guide#1302)
- Fix heading levels in the query chapter (rust-lang/rustc-dev-guide#1305)
- Fix link
- Edit "Queries" chapter (rust-lang/rustc-dev-guide#1301)
- Link to The Rust Performance Book (rust-lang/rustc-dev-guide#1300)

## edition-guide

1 commits in beea0a3cdc3885375342fd010f9ad658e6a5e09a..c55611dd6c58bdeb52423b5c52fd0f3c93615ba8
2021-12-05 07:06:45 -0800 to 2022-02-21 14:21:39 +0100
- Remove `+nightly` for `cargo new` (rust-lang/edition-guide#276)

2 years agoRollup merge of #94482 - cuishuang:master, r=Dylan-DPC
Matthias Krüger [Wed, 2 Mar 2022 03:30:09 +0000 (04:30 +0100)]
Rollup merge of #94482 - cuishuang:master, r=Dylan-DPC

compiler: fix some typos

2 years agoRollup merge of #94478 - GuillaumeGomez:macro-generated-intra-doc-link, r=notriddle
Matthias Krüger [Wed, 2 Mar 2022 03:30:08 +0000 (04:30 +0100)]
Rollup merge of #94478 - GuillaumeGomez:macro-generated-intra-doc-link, r=notriddle

Fix panic when handling intra doc links generated from macro

Fixes #78591.
Fixes #92789.

r? ``@notriddle``

2 years agoRollup merge of #94476 - c410-f3r:yet-more-let-chains, r=Dylan-DPC
Matthias Krüger [Wed, 2 Mar 2022 03:30:06 +0000 (04:30 +0100)]
Rollup merge of #94476 - c410-f3r:yet-more-let-chains, r=Dylan-DPC

7 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoRollup merge of #94464 - kckeiks:lifetime-elision-mismatch-hint-for-traits, r=estebank
Matthias Krüger [Wed, 2 Mar 2022 03:30:04 +0000 (04:30 +0100)]
Rollup merge of #94464 - kckeiks:lifetime-elision-mismatch-hint-for-traits, r=estebank

Suggest adding a new lifetime parameter when two elided lifetimes should match up for traits and impls.

Suggest adding a new lifetime parameter when two elided lifetimes should match up for functions in traits and impls.

Issue #94462

2 years agoAuto merge of #87402 - nagisa:nagisa/request-feature-requests-for-features, r=estebank
bors [Wed, 2 Mar 2022 03:03:22 +0000 (03:03 +0000)]
Auto merge of #87402 - nagisa:nagisa/request-feature-requests-for-features, r=estebank

Direct users towards using Rust target feature names in CLI

This PR consists of a couple of changes on how we handle target features.

In particular there is a bug-fix wherein we avoid passing through features that aren't prefixed by `+` or `-` to LLVM. These appear to be causing LLVM to assert, which is pretty poor a behaviour (and also makes it pretty clear we expect feature names to be prefixed).

The other commit, I anticipate to be somewhat more controversial is outputting a warning when users specify a LLVM-specific, or otherwise unknown, feature name on the CLI. In those situations we request users to either replace it with a known Rust feature name (e.g. `bmi` -> `bmi1`) or file a feature request. I've a couple motivations for this: first of all, if users are specifying these features on the command line, I'm pretty confident there is also a need for these features to be usable via `#[cfg(target_feature)]` machinery.  And second, we're growing a fair number of backends recently and having ability to provide some sort of unified-ish interface in this place seems pretty useful to me.

Sponsored by: standard.ai

2 years agoupdate Miri
Ralf Jung [Wed, 2 Mar 2022 02:58:38 +0000 (21:58 -0500)]
update Miri

2 years agoTemporarily make `CStr` not a link in the `c_char` docs
Josh Triplett [Wed, 2 Mar 2022 01:36:40 +0000 (17:36 -0800)]
Temporarily make `CStr` not a link in the `c_char` docs

When CStr moves to core with an alias in std, this can link to
`crate::ffi::CStr`. However, linking in the reverse direction (from core
to std) requires a relative path, and that path can't work from both
core::ffi and std::os::raw (different number of `../` traversals
required).

2 years agoProvide C FFI types via core::ffi, not just in std
Josh Triplett [Tue, 1 Mar 2022 22:46:41 +0000 (14:46 -0800)]
Provide C FFI types via core::ffi, not just in std

The ability to interoperate with C code via FFI is not limited to crates
using std; this allows using these types without std.

The existing types in `std::os::raw` become type aliases for the ones in
`core::ffi`. This uses type aliases rather than re-exports, to allow the
std types to remain stable while the core types are unstable.

This also moves the currently unstable `NonZero_` variants and
`c_size_t`/`c_ssize_t`/`c_ptrdiff_t` types to `core::ffi`, while leaving
them unstable.

2 years agoAdd a copy of cfg_if to core's internal_macros.rs
Josh Triplett [Wed, 2 Mar 2022 00:06:06 +0000 (16:06 -0800)]
Add a copy of cfg_if to core's internal_macros.rs

core can't depend on external crates the way std can. Rather than revert
usage of cfg_if, add a copy of it to core. This does not export our
copy, even unstably; such a change could occur in a later commit.

2 years ago9 - Make more use of `let_chains`
Caio [Tue, 1 Mar 2022 21:34:35 +0000 (18:34 -0300)]
9 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agotests: avoid problems on 32 bit machines
Augie Fackler [Tue, 1 Mar 2022 21:07:46 +0000 (16:07 -0500)]
tests: avoid problems on 32 bit machines

2 years agotests: accept llvm intrinsic in align-checking test
Augie Fackler [Tue, 1 Mar 2022 20:28:50 +0000 (15:28 -0500)]
tests: accept llvm intrinsic in align-checking test

This changed in upstream change https://reviews.llvm.org/D98152 (aka
https://github.com/llvm/llvm-project/commit/a266af721153fab6452094207b09ed265ab0be7b)
wherein LLVM got smarter about using intrinsics. As best I can tell the
change I've made here preserves the intent of the test on LLVM 14 and
before while also passing on LLVM 15 and later.

2 years agoupdate (bless) test results
Fausto [Tue, 1 Mar 2022 18:07:53 +0000 (13:07 -0500)]
update (bless) test results

2 years agoadd suggestion to update trait if error is in impl
Fausto [Tue, 1 Mar 2022 18:00:02 +0000 (13:00 -0500)]
add suggestion to update trait if error is in impl

2 years agoUpdate books
Eric Huss [Tue, 1 Mar 2022 17:10:58 +0000 (09:10 -0800)]
Update books

2 years agocompiler: fix some typos
cuishuang [Tue, 1 Mar 2022 12:02:47 +0000 (20:02 +0800)]
compiler: fix some typos

2 years agoAuto merge of #94477 - matthiaskrgr:rollup-8h29qek, r=matthiaskrgr
bors [Tue, 1 Mar 2022 11:24:10 +0000 (11:24 +0000)]
Auto merge of #94477 - matthiaskrgr:rollup-8h29qek, r=matthiaskrgr

Rollup of 3 pull requests

Successful merges:

 - #94359 (Fix inconsistent symbol mangling of integers constants with -Zverbose)
 - #94465 (6 - Make more use of `let_chains`)
 - #94470 (:arrow_up: rust-analyzer)

Failed merges:

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

2 years agoAdd test to ensure it does not panic when an intra-doc link is generated from a macro
Guillaume Gomez [Tue, 1 Mar 2022 11:07:17 +0000 (12:07 +0100)]
Add test to ensure it does not panic when an intra-doc link is generated from a macro

2 years agoFix panic when intra-doc link comes from a generated doc comment
Guillaume Gomez [Tue, 1 Mar 2022 11:06:52 +0000 (12:06 +0100)]
Fix panic when intra-doc link comes from a generated doc comment

2 years agoRollup merge of #94470 - lnicola:rust-analyzer-2022-03-01, r=lnicola
Matthias Krüger [Tue, 1 Mar 2022 11:00:45 +0000 (12:00 +0100)]
Rollup merge of #94470 - lnicola:rust-analyzer-2022-03-01, r=lnicola

:arrow_up: rust-analyzer

r? ``@ghost``

2 years agoRollup merge of #94465 - c410-f3r:more-let-chains, r=Dylan-DPC
Matthias Krüger [Tue, 1 Mar 2022 11:00:44 +0000 (12:00 +0100)]
Rollup merge of #94465 - c410-f3r:more-let-chains, r=Dylan-DPC

6 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoRollup merge of #94359 - tmiasko:legacy-verbose-const, r=petrochenkov
Matthias Krüger [Tue, 1 Mar 2022 11:00:43 +0000 (12:00 +0100)]
Rollup merge of #94359 - tmiasko:legacy-verbose-const, r=petrochenkov

Fix inconsistent symbol mangling of integers constants with -Zverbose

The `PrettyPrinter` changes formatting of array size and integer
constants based on `-Zverbose`, so its implementation cannot be used in
legacy symbol mangling.

Example symbol demangling before changes:

```console
$ cat a.rs
pub struct A<T>(T);
impl A<[u8; 128]> { pub fn f() {} }
$ rustc --crate-type=lib a.rs -Zverbose=n && nm -C ./liba.rlib
00000000 T a::A<[u8; 128]>::f
$ rustc --crate-type=lib a.rs -Zverbose=y && nm -C ./liba.rlib
00000000 T a::A<[u8; Const { ty. usize, val. Value(Scalar(0x0000000000000080)) }]>::f
```

2 years ago7 - Make more use of `let_chains`
Caio [Tue, 1 Mar 2022 10:43:12 +0000 (07:43 -0300)]
7 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoAuto merge of #94402 - erikdesjardins:revert-coldland, r=nagisa
bors [Tue, 1 Mar 2022 08:57:46 +0000 (08:57 +0000)]
Auto merge of #94402 - erikdesjardins:revert-coldland, r=nagisa

Revert "Auto merge of #92419 - erikdesjardins:coldland, r=nagisa"

Should fix (untested) #94390

Reopens #46515, #87055

r? `@ehuss`

2 years agoAuto merge of #94471 - matthiaskrgr:rollup-ffz65qt, r=matthiaskrgr
bors [Tue, 1 Mar 2022 06:15:54 +0000 (06:15 +0000)]
Auto merge of #94471 - matthiaskrgr:rollup-ffz65qt, r=matthiaskrgr

Rollup of 3 pull requests

Successful merges:

 - #94438 (Check method input expressions once)
 - #94459 (Update cargo)
 - #94470 (:arrow_up: rust-analyzer)

Failed merges:

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

2 years agoRollup merge of #94459 - jonhoo:bump-cargo, r=Dylan-DPC
Matthias Krüger [Tue, 1 Mar 2022 05:22:32 +0000 (06:22 +0100)]
Rollup merge of #94459 - jonhoo:bump-cargo, r=Dylan-DPC

Update cargo

11 changes in
d6cdde584a1f15ea086bae922e20fd27f7165431..3d6970d50e30e797b8e26b2b9b1bdf92dc381f34
2022-02-22 19:55:51 +0000 to 2022-02-28 19:29:07 +0000:

 - https://github.com/rust-lang/cargo/pull/10395
 - https://github.com/rust-lang/cargo/pull/10425
 - https://github.com/rust-lang/cargo/pull/10428
 - https://github.com/rust-lang/cargo/pull/10388
 - https://github.com/rust-lang/cargo/pull/10167
 - https://github.com/rust-lang/cargo/pull/10429
 - https://github.com/rust-lang/cargo/pull/10426
 - https://github.com/rust-lang/cargo/pull/10372
 - https://github.com/rust-lang/cargo/pull/10420
 - https://github.com/rust-lang/cargo/pull/10416
 - https://github.com/rust-lang/cargo/pull/10417

2 years agoRollup merge of #94438 - compiler-errors:check-method-inputs-once, r=davidtwco
Matthias Krüger [Tue, 1 Mar 2022 05:22:32 +0000 (06:22 +0100)]
Rollup merge of #94438 - compiler-errors:check-method-inputs-once, r=davidtwco

Check method input expressions once

If the user mistakenly forgets to wrap their method args in a tuple, then the compiler tries to check that  types within the tuple match the expression args. This means we call `check_expr` once within this diagnostic code, so when we check the expr once again in `demand_compatible`, we attempt to apply expr adjustments twice, leading to ICEs.

This PR attempts to fix this by skipping the expression type check in `demand_compatible` if we have detected an method arg mismatch at all.

This does lead to a single UI test regressing slightly, due to a diagnostic disappearing, though I don't know if it is generally meaningful to even raise an type error after noting that the argument count is incorrect in a function call, since the user might be providing (in-context) meaningless expressions to the wrong method.

I can adjust this to be a bit more targeted (to just skip checking exprs in `demand_compatible` in the tuple case) if this UI test regression is a problem.

fixes #94334
cc #94291

Also drive-by fixup of `.node_type(expr.hir_id)` to `.expr_ty(expr)`, since that method exists.

2 years ago:arrow_up: rust-analyzer
Laurențiu Nicola [Tue, 1 Mar 2022 05:20:26 +0000 (07:20 +0200)]
:arrow_up: rust-analyzer

2 years agoAuto merge of #94469 - Dylan-DPC:rollup-2tcq6s5, r=Dylan-DPC
bors [Tue, 1 Mar 2022 03:26:11 +0000 (03:26 +0000)]
Auto merge of #94469 - Dylan-DPC:rollup-2tcq6s5, r=Dylan-DPC

Rollup of 7 pull requests

Successful merges:

 - #91545 (Generalize "remove `&`"  and "add `*`" suggestions to more than one deref)
 - #93385 (Rustdoc ty consistency fixes)
 - #93926 (Lint against more useless `#[must_use]` attributes)
 - #94094 (use BOOL for TCP_NODELAY setsockopt value on Windows)
 - #94384 (Add Atomic*::from_mut_slice)
 - #94448 (5 - Make more use of `let_chains`)
 - #94452 (Sync portable-simd for bitmasks &c.)

Failed merges:

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

2 years agoRollup merge of #94452 - workingjubilee:sync-simd-bitmasks, r=workingjubilee
Dylan DPC [Tue, 1 Mar 2022 02:41:53 +0000 (03:41 +0100)]
Rollup merge of #94452 - workingjubilee:sync-simd-bitmasks, r=workingjubilee

Sync portable-simd for bitmasks &c.

In the ideal case, where everything works easily and nothing has to be rearranged, it is as simple as:
- `git subtree pull -P library/portable-simd https://github.com/rust-lang/portable-simd - ${branch}`
- write the commit message
- `python x.py test --stage 1` to make sure it runs
- `git push` to your PR-to-rustc branch

If anything borks up this flow, you can fix it with sufficient git wizardry but you are usually better off going back to the source, fixing it, and starting over, before you open the PR.

r? `@calebzulawski`

2 years agoRollup merge of #94448 - c410-f3r:yet-more-let-chains, r=estebank
Dylan DPC [Tue, 1 Mar 2022 02:41:52 +0000 (03:41 +0100)]
Rollup merge of #94448 - c410-f3r:yet-more-let-chains, r=estebank

5 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoRollup merge of #94384 - cuviper:atomic-slice, r=dtolnay
Dylan DPC [Tue, 1 Mar 2022 02:41:51 +0000 (03:41 +0100)]
Rollup merge of #94384 - cuviper:atomic-slice, r=dtolnay

Add Atomic*::from_mut_slice

Tracking issue #76314 for `from_mut` has a question about the possibility of `from_mut_slice`, and I found a real case for it. A user in the forum had a parallelism problem that could be solved by open-indexing updates to a vector of atomics, but they didn't want to affect the other code using that vector. Using `from_mut_slice`, they could borrow that data as atomics just long enough for their parallel loop.

ref: https://users.rust-lang.org/t/sharing-vector-with-rayon-par-iter-correctly/72022

2 years agoRollup merge of #94094 - chrisnc:tcp-nodelay-windows-bool, r=dtolnay
Dylan DPC [Tue, 1 Mar 2022 02:41:50 +0000 (03:41 +0100)]
Rollup merge of #94094 - chrisnc:tcp-nodelay-windows-bool, r=dtolnay

use BOOL for TCP_NODELAY setsockopt value on Windows

This issue was found by the Wine project and mitigated there [^1].

Windows' setsockopt expects a BOOL (a typedef for int) for TCP_NODELAY
[^2]. Windows itself is forgiving and will accept any positive optlen and
interpret the first byte of *optval as the value, so this bug does not
affect Windows itself, but does affect systems implementing Windows'
interface more strictly, such as Wine. Wine was previously passing this
through to the host's setsockopt, where, e.g., Linux requires that
optlen be correct for the chosen option, and TCP_NODELAY expects an int.

[^1]: https://source.winehq.org/git/wine.git/commit/d6ea38f32dfd3edbe107a255c37e9f7f3da06ae7
[^2]: https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-setsockopt

2 years agoRollup merge of #93926 - PatchMixolydic:bugfix/must_use-on-exprs, r=cjgillot
Dylan DPC [Tue, 1 Mar 2022 02:41:49 +0000 (03:41 +0100)]
Rollup merge of #93926 - PatchMixolydic:bugfix/must_use-on-exprs, r=cjgillot

Lint against more useless `#[must_use]` attributes

This expands the existing `#[must_use]` check in `unused_attributes` to lint against pretty much everything `#[must_use]` doesn't support.
Fixes #93906.

2 years agoRollup merge of #93385 - CraftSpider:rustdoc-ty-fixes, r=camelid
Dylan DPC [Tue, 1 Mar 2022 02:41:47 +0000 (03:41 +0100)]
Rollup merge of #93385 - CraftSpider:rustdoc-ty-fixes, r=camelid

Rustdoc ty consistency fixes

Changes to make rustdoc cleaning of ty more consistent with hir, and hopefully use it in more places.

r? `@camelid`

2 years agoRollup merge of #91545 - compiler-errors:deref-suggestion-improvements, r=estebank
Dylan DPC [Tue, 1 Mar 2022 02:41:46 +0000 (03:41 +0100)]
Rollup merge of #91545 - compiler-errors:deref-suggestion-improvements, r=estebank

Generalize "remove `&`"  and "add `*`" suggestions to more than one deref

Suggest removing more than one `&` and `&mut`, along with suggesting adding more than one `*` (or a combination of the two).

r? `@estebank`
(since you're experienced with these types of suggestions, feel free to reassign)

2 years ago6 - Make more use of `let_chains`
Caio [Tue, 1 Mar 2022 00:12:52 +0000 (21:12 -0300)]
6 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoQuerify `global_backend_features`
Simonas Kazlauskas [Fri, 24 Sep 2021 15:02:02 +0000 (18:02 +0300)]
Querify `global_backend_features`

At the very least this serves to deduplicate the diagnostics that are
output about unknown target features provided via CLI.

2 years agoDirect users towards using Rust feature names in CLI
Simonas Kazlauskas [Fri, 23 Jul 2021 13:19:22 +0000 (16:19 +0300)]
Direct users towards using Rust feature names in CLI

If they are trying to use features rustc doesn't yet know about,
request a feature request.

Additionally, also warn against using feature names without leading `+`
or `-` signs.

2 years agoAuto merge of #94299 - oli-obk:stable_hash_ty, r=michaelwoerister
bors [Mon, 28 Feb 2022 23:38:05 +0000 (23:38 +0000)]
Auto merge of #94299 - oli-obk:stable_hash_ty, r=michaelwoerister

Caching the stable hash of Ty within itself

Instead of computing stable hashes on types as needed, we compute it during interning.

This way we can, when a hash is requested, just hash that hash, which is significantly faster than traversing the type itself.

We only do this for incremental for now, as incremental is the only frequent user of stable hashing.

As a next step we can try out

* moving the hash and TypeFlags to Interner, so projections and regions get the same benefit (tho regions are not nested, so maybe that's not a good idea? Would be nice for dedup tho)
* start comparing types via their stable hash instead of their address?

2 years agoSuggest adding a new lifetime parameter when two elided lifetimes should match up...
Fausto [Mon, 28 Feb 2022 23:16:19 +0000 (18:16 -0500)]
Suggest adding a new lifetime parameter when two elided lifetimes should match up for traits and impls.

Issue #94462

2 years agoAuto merge of #94453 - matthiaskrgr:rollup-xv9y98j, r=matthiaskrgr
bors [Mon, 28 Feb 2022 21:17:11 +0000 (21:17 +0000)]
Auto merge of #94453 - matthiaskrgr:rollup-xv9y98j, r=matthiaskrgr

Rollup of 6 pull requests

Successful merges:

 - #92399 (fix typo in btree/vec doc: Self -> self)
 - #92823 (Tweak diagnostics)
 - #94248 (Fix ICE when passing block to while-loop condition)
 - #94414 (Fix ICE when using Box<T, A> with large A)
 - #94445 (4 - Make more use of `let_chains`)
 - #94449 (Add long explanation for E0726)

Failed merges:

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

2 years agoFix inconsistent symbol mangling of integers constants with -Zverbose
Tomasz Miąsko [Fri, 25 Feb 2022 00:00:00 +0000 (00:00 +0000)]
Fix inconsistent symbol mangling of integers constants with -Zverbose

The `PrettyPrinter` changes formatting of array size and integer
constants based on `-Zverbose`, so its implementation cannot be used in
legacy symbol mangling.

2 years agoUpdate cargo
Jon Gjengset [Mon, 28 Feb 2022 20:41:51 +0000 (12:41 -0800)]
Update cargo

11 changes in
d6cdde584a1f15ea086bae922e20fd27f7165431..3d6970d50e30e797b8e26b2b9b1bdf92dc381f34
2022-02-22 19:55:51 +0000 to 2022-02-28 19:29:07 +0000:

 - https://github.com/rust-lang/cargo/pull/10395
 - https://github.com/rust-lang/cargo/pull/10425
 - https://github.com/rust-lang/cargo/pull/10428
 - https://github.com/rust-lang/cargo/pull/10388
 - https://github.com/rust-lang/cargo/pull/10167
 - https://github.com/rust-lang/cargo/pull/10429
 - https://github.com/rust-lang/cargo/pull/10426
 - https://github.com/rust-lang/cargo/pull/10372
 - https://github.com/rust-lang/cargo/pull/10420
 - https://github.com/rust-lang/cargo/pull/10416
 - https://github.com/rust-lang/cargo/pull/10417

2 years agoRollup merge of #94449 - GuillaumeGomez:explanation-e0726, r=Urgau
Matthias Krüger [Mon, 28 Feb 2022 19:05:18 +0000 (20:05 +0100)]
Rollup merge of #94449 - GuillaumeGomez:explanation-e0726, r=Urgau

Add long explanation for E0726

This is the cleaned up version of #87655 with the missing fixes.

Part of https://github.com/rust-lang/rust/issues/61137.

r? `@Urgau`

2 years agoRollup merge of #94445 - c410-f3r:more-let-chains, r=cjgillot
Matthias Krüger [Mon, 28 Feb 2022 19:05:17 +0000 (20:05 +0100)]
Rollup merge of #94445 - c410-f3r:more-let-chains, r=cjgillot

4 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoRollup merge of #94414 - DrMeepster:box_alloc_ice2, r=tmiasko
Matthias Krüger [Mon, 28 Feb 2022 19:05:15 +0000 (20:05 +0100)]
Rollup merge of #94414 - DrMeepster:box_alloc_ice2, r=tmiasko

Fix ICE when using Box<T, A> with large A

A sequel to #94043 that fixes #81270 and #92054 (duplicate).

2 years agoRollup merge of #94248 - compiler-errors:fix-while-loop-bad-delay, r=petrochenkov
Matthias Krüger [Mon, 28 Feb 2022 19:05:14 +0000 (20:05 +0100)]
Rollup merge of #94248 - compiler-errors:fix-while-loop-bad-delay, r=petrochenkov

Fix ICE when passing block to while-loop condition

We were incorrectly delaying a bug when we passed _any_ block (that evaluated to `()`) to a while loop. This PR makes the check a bit more sophisticated.

We should only suppress the error here in cases that are equivalent to those we find in #93574 (i.e. only while loop conditions that have destructuring assignment expressions in them).

Fixes #93997
cc `@estebank` who added this code

I would not be opposed to removing the delay-bug altogether, and just emitting this error always. I much prefer duplicate errors over no errors.

2 years agoRollup merge of #92823 - estebank:tweak-diag, r=jackh726
Matthias Krüger [Mon, 28 Feb 2022 19:05:13 +0000 (20:05 +0100)]
Rollup merge of #92823 - estebank:tweak-diag, r=jackh726

Tweak diagnostics

* Recover from invalid `'label: ` before block.
* Make suggestion to enclose statements in a block multipart.
* Point at `match`, `while`, `loop` and `unsafe` keywords when failing
  to parse their expression. (Fix #92705.)
* Do not suggest `{ ; }`.
* Do not suggest `|` when very unlikely to be what was wanted (in `let`
  statements).

2 years agoRollup merge of #92399 - Veeupup:fix_vec_typo, r=Dylan-DPC
Matthias Krüger [Mon, 28 Feb 2022 19:05:13 +0000 (20:05 +0100)]
Rollup merge of #92399 - Veeupup:fix_vec_typo, r=Dylan-DPC

fix typo in btree/vec doc: Self -> self

this pr fixes #92345
the documentation refers to the object the method is called for, not the type, so it should be using the lower case self.

2 years ago5 - Make more use of let_chains
Caio [Mon, 28 Feb 2022 18:52:36 +0000 (15:52 -0300)]
5 - Make more use of let_chains

2 years agoTweak diagnostics
Esteban Kuber [Wed, 12 Jan 2022 20:43:24 +0000 (20:43 +0000)]
Tweak diagnostics

* Recover from invalid `'label: ` before block.
* Make suggestion to enclose statements in a block multipart.
* Point at `match`, `while`, `loop` and `unsafe` keywords when failing
  to parse their expression.
* Do not suggest `{ ; }`.
* Do not suggest `|` when very unlikely to be what was wanted (in `let`
  statements).

2 years agoSync rust-lang/portable-simd@5f49d4c8435a25d804b2f375e949cb25479f5be9
Jubilee Young [Mon, 28 Feb 2022 18:17:40 +0000 (10:17 -0800)]
Sync rust-lang/portable-simd@5f49d4c8435a25d804b2f375e949cb25479f5be9

2 years agoUpdate ui test with the add of E0726 explanation
Guillaume Gomez [Mon, 28 Feb 2022 13:37:27 +0000 (14:37 +0100)]
Update ui test with the add of E0726 explanation

2 years agoAdd explanation for E0726
Guillaume Gomez [Mon, 28 Feb 2022 13:23:11 +0000 (14:23 +0100)]
Add explanation for E0726

2 years agoAuto merge of #94447 - matthiaskrgr:rollup-d8rj2xv, r=matthiaskrgr
bors [Mon, 28 Feb 2022 14:20:13 +0000 (14:20 +0000)]
Auto merge of #94447 - matthiaskrgr:rollup-d8rj2xv, r=matthiaskrgr

Rollup of 5 pull requests

Successful merges:

 - #89793 (Add `slice::{from_ptr_range, from_mut_ptr_range} `)
 - #92642 (Update search location from a relative path to absolute)
 - #93389 (regression for issue 90847)
 - #93413 (Fix broken link from rustdoc docs to ayu theme)
 - #94365 (Fix MinGW target detection in raw-dylib)

Failed merges:

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

2 years agoRollup merge of #94365 - mati865:fix-mingw-detection-for-rawdylib, r=michaelwoerister
Matthias Krüger [Mon, 28 Feb 2022 11:57:48 +0000 (12:57 +0100)]
Rollup merge of #94365 - mati865:fix-mingw-detection-for-rawdylib, r=michaelwoerister

Fix MinGW target detection in raw-dylib

LLVM target doesn't have to be the same as Rust target so relying on it is wrong.

It was one of concerns in https://github.com/rust-lang/rust/pull/88801 that was not fixed in https://github.com/rust-lang/rust/pull/90782.

2 years agoRollup merge of #93413 - lsimons:patch-1, r=Dylan-DPC
Matthias Krüger [Mon, 28 Feb 2022 11:57:47 +0000 (12:57 +0100)]
Rollup merge of #93413 - lsimons:patch-1, r=Dylan-DPC

Fix broken link from rustdoc docs to ayu theme

2 years agoRollup merge of #93389 - cameron1024:issue-90847-regression, r=Mark-Simulacrum
Matthias Krüger [Mon, 28 Feb 2022 11:57:46 +0000 (12:57 +0100)]
Rollup merge of #93389 - cameron1024:issue-90847-regression, r=Mark-Simulacrum

regression for issue 90847

Adds a regression test for issue #90847

2 years agoRollup merge of #92642 - avborhanian:master, r=Dylan-DPC
Matthias Krüger [Mon, 28 Feb 2022 11:57:45 +0000 (12:57 +0100)]
Rollup merge of #92642 - avborhanian:master, r=Dylan-DPC

Update search location from a relative path to absolute

This should address issue #90311.

2 years agoRollup merge of #89793 - ibraheemdev:from_ptr_range, r=m-ou-se
Matthias Krüger [Mon, 28 Feb 2022 11:57:44 +0000 (12:57 +0100)]
Rollup merge of #89793 - ibraheemdev:from_ptr_range, r=m-ou-se

Add `slice::{from_ptr_range, from_mut_ptr_range} `

Adds `slice::{from_ptr_range, from_mut_ptr_range}` as counterparts to `slice::{as_ptr_range, as_mut_ptr_range}`.

2 years agoAuto merge of #94216 - psumbera:sparc64-abi-fix2, r=nagisa
bors [Mon, 28 Feb 2022 11:54:17 +0000 (11:54 +0000)]
Auto merge of #94216 - psumbera:sparc64-abi-fix2, r=nagisa

more complete sparc64 ABI fix for aggregates with floating point members

Previous fix didn't handle nested structures at all.

2 years ago4 - Make more use of `let_chains`
Caio [Mon, 28 Feb 2022 10:49:56 +0000 (07:49 -0300)]
4 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoAuto merge of #94427 - cjgillot:inline-fresh-expn, r=oli-obk
bors [Mon, 28 Feb 2022 08:25:26 +0000 (08:25 +0000)]
Auto merge of #94427 - cjgillot:inline-fresh-expn, r=oli-obk

Only create a single expansion for each inline integration.

The inlining integrator used to create one expansion for each span from the callee body.
This PR reverses the logic to create a single expansion for the whole call,
which is more consistent with how macro expansions work for macros.

This should remove the large memory regression in #91743.

2 years agoAuto merge of #94158 - erikdesjardins:more-more-noundef, r=nikic
bors [Mon, 28 Feb 2022 06:11:20 +0000 (06:11 +0000)]
Auto merge of #94158 - erikdesjardins:more-more-noundef, r=nikic

Apply noundef metadata to loads of types that do not permit raw init

This matches the noundef attributes we apply on arguments/return types.

Fixes (partially) #74378.

2 years agoRemove LLVM attribute removal
Erik Desjardins [Mon, 21 Feb 2022 19:47:56 +0000 (14:47 -0500)]
Remove LLVM attribute removal

This was necessary before, because `declare_raw_fn` would always apply
the default optimization attributes to every declared function,
and then `attributes::from_fn_attrs` would have to remove the default
attributes in the case of, e.g. `#[optimize(speed)]` in a `-Os` build.

However, every relevant callsite of `declare_raw_fn` (i.e. where we
actually generate code for the function, and not e.g. a call to an
intrinsic, where optimization attributes don't [?] matter)
calls `from_fn_attrs`, so we can simply remove the attribute setting
from `declare_raw_fn`, and rely on `from_fn_attrs` to apply the correct
attributes all at once.

2 years agoexpadn abi check + condese & fix tests
DrMeepster [Mon, 28 Feb 2022 04:25:16 +0000 (20:25 -0800)]
expadn abi check + condese & fix tests

2 years agoupdate vec-shrink-panik test to allow panic_no_unwind in landingpads
Erik Desjardins [Mon, 28 Feb 2022 04:15:49 +0000 (23:15 -0500)]
update vec-shrink-panik test to allow panic_no_unwind in landingpads

2 years agoRevert "Auto merge of #92419 - erikdesjardins:coldland, r=nagisa"
Erik Desjardins [Sat, 26 Feb 2022 17:52:07 +0000 (12:52 -0500)]
Revert "Auto merge of #92419 - erikdesjardins:coldland, r=nagisa"

This reverts commit 4f49627c6fe2a32d1fed6310466bb0e1c535c0c0, reversing
changes made to 028c6f1454787c068ff5117e9000a1de4fd98374.

2 years agoonly check method inputs once
Michael Goulet [Sat, 26 Feb 2022 04:20:26 +0000 (20:20 -0800)]
only check method inputs once

2 years agoAuto merge of #94437 - RalfJung:miri, r=RalfJung
bors [Mon, 28 Feb 2022 03:44:19 +0000 (03:44 +0000)]
Auto merge of #94437 - RalfJung:miri, r=RalfJung

update Miri

Fixes https://github.com/rust-lang/rust/issues/94318
r? `@ghost`

2 years agofix ICE when passing empty block to while-loop condition
Michael Goulet [Tue, 22 Feb 2022 03:49:15 +0000 (19:49 -0800)]
fix ICE when passing empty block to while-loop condition

2 years agoupdate Miri
Ralf Jung [Mon, 28 Feb 2022 03:04:00 +0000 (22:04 -0500)]
update Miri

2 years agoAuto merge of #94431 - matthiaskrgr:rollup-1jsj0wu, r=matthiaskrgr
bors [Mon, 28 Feb 2022 01:18:01 +0000 (01:18 +0000)]
Auto merge of #94431 - matthiaskrgr:rollup-1jsj0wu, r=matthiaskrgr

Rollup of 7 pull requests

Successful merges:

 - #94396 (1 - Make more use of `let_chains`)
 - #94397 (Document that pre-expansion lint passes are softly deprecated)
 - #94399 (Add test for #79465 to prevent regression)
 - #94409 (avoid rebuilding bootstrap when PATH changes)
 - #94415 (Use the first codegen backend in the config.toml as default)
 - #94417 (Fix duplicated impl links)
 - #94420 (3 - Make more use of `let_chains`)

Failed merges:

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

2 years agoMake deref suggestion better
Michael Goulet [Sun, 5 Dec 2021 04:51:36 +0000 (04:51 +0000)]
Make deref suggestion better

2 years agoadd `slice::{from_ptr_range, from_mut_ptr_range}`
Ibraheem Ahmed [Mon, 11 Oct 2021 21:41:25 +0000 (17:41 -0400)]
add `slice::{from_ptr_range, from_mut_ptr_range}`

2 years agoAuto merge of #94157 - erikdesjardins:more-noundef, r=nikic
bors [Sun, 27 Feb 2022 21:41:06 +0000 (21:41 +0000)]
Auto merge of #94157 - erikdesjardins:more-noundef, r=nikic

Apply noundef attribute to all scalar types which do not permit raw init

Beyond `&`/`&mut`/`Box`, this covers `char`, enum discriminants, `NonZero*`, etc.
All such types currently cause a Miri error if left uninitialized,
and an `invalid_value` lint in cases like `mem::uninitialized::<char>()`.

Note that this _does not_ change whether or not it is UB for `u64` (or
other integer types with no invalid values) to be undef.

Fixes (partially) #74378.

r? `@ghost` (blocked on #94127)

`@rustbot` label S-blocked

2 years agoRollup merge of #94420 - c410-f3r:more-let-chains, r=Dylan-DPC
Matthias Krüger [Sun, 27 Feb 2022 20:46:38 +0000 (21:46 +0100)]
Rollup merge of #94420 - c410-f3r:more-let-chains, r=Dylan-DPC

3 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoRollup merge of #94417 - GuillaumeGomez:fix-duplicated-impl-links, r=notriddle
Matthias Krüger [Sun, 27 Feb 2022 20:46:37 +0000 (21:46 +0100)]
Rollup merge of #94417 - GuillaumeGomez:fix-duplicated-impl-links, r=notriddle

Fix duplicated impl links

Fixes #78701.

The problem is that the blanket impl has the same ID as the other impl, except that we don't derive IDs when we generate the sidebar. We now do.

r? ``@notriddle``

2 years agoRollup merge of #94415 - bjorn3:cfg_default_backend, r=Mark-Simulacrum
Matthias Krüger [Sun, 27 Feb 2022 20:46:36 +0000 (21:46 +0100)]
Rollup merge of #94415 - bjorn3:cfg_default_backend, r=Mark-Simulacrum

Use the first codegen backend in the config.toml as default

It is currently hard coded to llvm if enabled and cranelift otherwise.
This made some sense when cranelift was the only alternative codegen
backend. Since the introduction of the gcc backend this doesn't make
much sense anymore. Before this PR bootstrapping rustc using a backend
other than llvm or cranelift required changing the source of
rustc_interface. With this PR it becomes a matter of putting the right
backend as first enabled backend in config.toml.

cc ```@antoyo```

2 years agoRollup merge of #94409 - RalfJung:path, r=Mark-Simulacrum
Matthias Krüger [Sun, 27 Feb 2022 20:46:35 +0000 (21:46 +0100)]
Rollup merge of #94409 - RalfJung:path, r=Mark-Simulacrum

avoid rebuilding bootstrap when PATH changes

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

r? ```@Mark-Simulacrum```

2 years agoRollup merge of #94399 - GuillaumeGomez:regression-test-79465, r=matthiaskrgr
Matthias Krüger [Sun, 27 Feb 2022 20:46:34 +0000 (21:46 +0100)]
Rollup merge of #94399 - GuillaumeGomez:regression-test-79465, r=matthiaskrgr

Add test for #79465 to prevent regression

Fixes #79465.

Like this we will be able to close the issue.

r? ````@matthiaskrgr````

2 years agoRollup merge of #94397 - xFrednet:69838-deprecate-pre-expansion, r=cjgillot
Matthias Krüger [Sun, 27 Feb 2022 20:46:34 +0000 (21:46 +0100)]
Rollup merge of #94397 - xFrednet:69838-deprecate-pre-expansion, r=cjgillot

Document that pre-expansion lint passes are softly deprecated

The pre-expansion lint pass has been softly deprecated since https://github.com/rust-lang/rust/pull/69838. Every once in a while I see someone mention it as a possibility, only get the feedback that it's deprecated. This PR officially documents that the method is soft deprecated to have a single point of truth for it.

That's it. Have a great rest of the day :upside_down_face:

---

* See [rust#69838](https://github.com/rust-lang/rust/pull/69838)
* See [rust-clippy#5518](https://github.com/rust-lang/rust-clippy/pull/5518)

2 years agoRollup merge of #94396 - c410-f3r:yet-more-let-chains, r=Dylan-DPC
Matthias Krüger [Sun, 27 Feb 2022 20:46:33 +0000 (21:46 +0100)]
Rollup merge of #94396 - c410-f3r:yet-more-let-chains, r=Dylan-DPC

1 - Make more use of `let_chains`

Continuation of #94376.

cc #53667

2 years agoDo not pass through features without +/- prefix
Simonas Kazlauskas [Fri, 23 Jul 2021 11:42:36 +0000 (14:42 +0300)]
Do not pass through features without +/- prefix

LLVM really dislikes this and will assert, saying something along the
lines of:

```
rustc: llvm/lib/MC/MCSubtargetInfo.cpp:60: void ApplyFeatureFlag(
  llvm::FeatureBitset&, llvm::StringRef, llvm::ArrayRef<llvm::SubtargetFeatureKV>
): Assertion
  `SubtargetFeatures::hasFlag(Feature) && "Feature flags should start with '+' or '-'"`
failed.
```