]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoAdd a `Result::ok_or_err` method to extract a `T` from `Result<T, T>`
Thom Chiovoloni [Fri, 1 Jan 2021 02:17:25 +0000 (18:17 -0800)]
Add a `Result::ok_or_err` method to extract a `T` from `Result<T, T>`

3 years agoAuto merge of #82197 - tmiasko:try-get-cached, r=cjgillot
bors [Wed, 17 Feb 2021 04:07:35 +0000 (04:07 +0000)]
Auto merge of #82197 - tmiasko:try-get-cached, r=cjgillot

Inline try_get_cached

3 years agoAuto merge of #81611 - cjgillot:meowner, r=estebank
bors [Tue, 16 Feb 2021 22:14:32 +0000 (22:14 +0000)]
Auto merge of #81611 - cjgillot:meowner, r=estebank

Only store a LocalDefId in some HIR nodes

Some HIR nodes are guaranteed to be HIR owners: Item, TraitItem, ImplItem, ForeignItem and MacroDef.
As a consequence, we do not need to store the `HirId`'s `local_id`, and we can directly store a `LocalDefId`.

This allows to avoid a bit of the dance with `tcx.hir().local_def_id` and `tcx.hir().local_def_id_to_hir_id` mappings.

3 years agoAuto merge of #82192 - GuillaumeGomez:rollup-gi1639b, r=GuillaumeGomez
bors [Tue, 16 Feb 2021 19:21:22 +0000 (19:21 +0000)]
Auto merge of #82192 - GuillaumeGomez:rollup-gi1639b, r=GuillaumeGomez

Rollup of 6 pull requests

Successful merges:

 - #82145 (Fix ES5 errors (IE11))
 - #82160 (Fix typo in rustc_infer::infer::UndoLog)
 - #82161 (Add long explanation for E0545)
 - #82163 (avoid full-slicing slices)
 - #82175 (validation: fix invalid-fn-ptr error message)
 - #82184 ([Minor] Update discriminant_value docs)

Failed merges:

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

3 years agoRollup merge of #82184 - petertodd:2021-discriminant-value-doc, r=nagisa
Guillaume Gomez [Tue, 16 Feb 2021 18:21:21 +0000 (19:21 +0100)]
Rollup merge of #82184 - petertodd:2021-discriminant-value-doc, r=nagisa

[Minor] Update discriminant_value docs

Updated for new `DiscriminantKind` trait.

3 years agoRollup merge of #82175 - RalfJung:invalid-fn-ptr, r=oli-obk
Guillaume Gomez [Tue, 16 Feb 2021 18:21:21 +0000 (19:21 +0100)]
Rollup merge of #82175 - RalfJung:invalid-fn-ptr, r=oli-obk

validation: fix invalid-fn-ptr error message

https://github.com/rust-lang/rust/pull/82061 changed the code here to print an `ImmTy` instead of a `ScalarMaybeUninit`; that was an accident. So go back to printing a `ScalarMaybeUninit`.

r? ```@oli-obk```

3 years agoRollup merge of #82163 - matthiaskrgr:slice, r=jyn514
Guillaume Gomez [Tue, 16 Feb 2021 18:21:20 +0000 (19:21 +0100)]
Rollup merge of #82163 - matthiaskrgr:slice, r=jyn514

avoid full-slicing slices

If we already have a slice, there is no need to get another full-range slice from that, just use the original.
clippy::redundant_slicing

3 years agoRollup merge of #82161 - jesusprubio:add-long-explanation-e0545, r=GuillaumeGomez
Guillaume Gomez [Tue, 16 Feb 2021 18:21:19 +0000 (19:21 +0100)]
Rollup merge of #82161 - jesusprubio:add-long-explanation-e0545, r=GuillaumeGomez

Add long explanation for E0545

Helps with #61137

3 years agoRollup merge of #82160 - pierwill:patch-2, r=lcnr
Guillaume Gomez [Tue, 16 Feb 2021 18:21:18 +0000 (19:21 +0100)]
Rollup merge of #82160 - pierwill:patch-2, r=lcnr

Fix typo in rustc_infer::infer::UndoLog

Also use double quotes.

3 years agoRollup merge of #82145 - GuillaumeGomez:es5-checks, r=Nemo157
Guillaume Gomez [Tue, 16 Feb 2021 18:21:14 +0000 (19:21 +0100)]
Rollup merge of #82145 - GuillaumeGomez:es5-checks, r=Nemo157

Fix ES5 errors (IE11)

rustdoc is supposed to run on IE11 but someone reported me that it wasn't. I just confirmed it by using `es-check` with the `es5` option like this:

```
$ es-check es5 src/librustdoc/html/static/*.js
```

The PR fixes those issues and add CI checks to prevent regressions.

`@Mark-Simulacrum:` I added checks in the CI, but not sure if it's the correct way to do it. Any help on that side would be very appreciated!

r? `@Nemo157`

3 years agoAuto merge of #82150 - RalfJung:miri, r=RalfJung
bors [Tue, 16 Feb 2021 16:22:56 +0000 (16:22 +0000)]
Auto merge of #82150 - RalfJung:miri, r=RalfJung

update Miri

This pulls in the recent cargo-miri fixes by `@hyd-dev.`
Cc `@rust-lang/miri` r? `@ghost`
Fixes https://github.com/rust-lang/rust/issues/82173

3 years ago[Minor] Update discriminant_value docs
Peter Todd [Tue, 16 Feb 2021 13:16:31 +0000 (08:16 -0500)]
[Minor] Update discriminant_value docs

3 years agoupdate Miri
Ralf Jung [Tue, 16 Feb 2021 10:17:42 +0000 (11:17 +0100)]
update Miri

3 years agoadd test
Ralf Jung [Tue, 16 Feb 2021 10:14:34 +0000 (11:14 +0100)]
add test

3 years agovalidation: fix invalid-fn-ptr error message
Ralf Jung [Tue, 16 Feb 2021 08:57:21 +0000 (09:57 +0100)]
validation: fix invalid-fn-ptr error message

3 years agoAuto merge of #82058 - gilescope:to_digit_speedup, r=lcnr
bors [Tue, 16 Feb 2021 08:38:11 +0000 (08:38 +0000)]
Auto merge of #82058 - gilescope:to_digit_speedup, r=lcnr

no need to check assertion on fast path as will always hold.

V small change. Easy to review though!

3 years agoAuto merge of #81734 - richkadel:fixfordash, r=pnkfelix
bors [Tue, 16 Feb 2021 05:45:10 +0000 (05:45 +0000)]
Auto merge of #81734 - richkadel:fixfordash, r=pnkfelix

Ensures `make` tests run under /bin/dash (if available), like CI, and fixes a Makefile

Note: This cherrypicks #81688 (`@pnkfelix)`

Updates `tools.mk` to explicitly require `SHELL := /bin/dash`, since CI uses `dash` but other environments (including developer local machines) may default to `bash`.

Replaces bash-specific shell command in one Makefile with a dash-compatible alternative, and re-enables the affected Makefile test.

Removes apparently redundant definition of `UNAME`.

Also see: [zulip discussion thread](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/how.20to.20run.2Fbless.20src.2Ftest.2Frun-make-fulldeps.2Fcoverage.20.3F)

r? `@pnkfelix`

FYI: `@wesleywiser` `@tmandry`

3 years agoAuto merge of #82153 - jonas-schievink:rollup-ls5r943, r=jonas-schievink
bors [Tue, 16 Feb 2021 02:14:13 +0000 (02:14 +0000)]
Auto merge of #82153 - jonas-schievink:rollup-ls5r943, r=jonas-schievink

Rollup of 19 pull requests

Successful merges:

 - #81503 (Suggest to create a new `const` item if the `fn` in the array is a `const fn`)
 - #81897 (Add match pattern diagnostics regression test)
 - #81975 (Seal the CommandExt, OsStrExt and OsStringExt traits)
 - #82009 (const_generics: Dont evaluate array length const when handling errors)
 - #82060 (Fix typos in BTreeSet::{first, last} docs)
 - #82061 (CTFE validation: catch ReadPointerAsBytes and better error)
 - #82063 (Fixed minor typo in catch_unwind docs)
 - #82067 (const_generics: Fix incorrect ty::ParamEnv::empty() usage)
 - #82077 (Edit `rustc_arena::DropArena` docs)
 - #82096 (Fix a typo)
 - #82106 (Remove unnecessary `Option` in `default_doc`)
 - #82107 (expand: Some cleanup)
 - #82118 (Add missing env!-decl variant)
 - #82119 (Fix typo in link to CreateSymbolicLinkW documentation.)
 - #82120 (Stabilize Arguments::as_str)
 - #82129 (Remove redundant bool_to_option feature gate)
 - #82133 (Update link for extern prelude.)
 - #82141 (32-bit ARM: Emit `lr` instead of `r14` when specified as an `asm!` output register.)
 - #82147 (:arrow_up: rust-analyzer)

Failed merges:

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

3 years agoInline try_get_cached
Tomasz Miąsko [Tue, 16 Feb 2021 00:00:00 +0000 (00:00 +0000)]
Inline try_get_cached

3 years agoavoid full-slicing slices
Matthias Krüger [Mon, 15 Feb 2021 23:30:06 +0000 (00:30 +0100)]
avoid full-slicing slices

If we already have a slice, there is no need to get another full-range slice from that, just use the original.
clippy::redundant_slicing

3 years agoRemove HirItemLike.
Camille GILLOT [Mon, 1 Feb 2021 10:32:26 +0000 (11:32 +0100)]
Remove HirItemLike.

3 years agoTrait impls are Items, therefore HIR owners.
Camille GILLOT [Mon, 1 Feb 2021 10:12:49 +0000 (11:12 +0100)]
Trait impls are Items, therefore HIR owners.

3 years agoUse less HirId when referring to items.
Camille GILLOT [Sun, 31 Jan 2021 17:21:04 +0000 (18:21 +0100)]
Use less HirId when referring to items.

3 years agoOnly store a LocalDefId in hir::MacroDef.
Camille GILLOT [Sun, 31 Jan 2021 17:20:18 +0000 (18:20 +0100)]
Only store a LocalDefId in hir::MacroDef.

3 years agoIndex Modules using their LocalDefId.
Camille GILLOT [Sun, 31 Jan 2021 16:58:57 +0000 (17:58 +0100)]
Index Modules using their LocalDefId.

3 years agoFix E0657.
Camille GILLOT [Sun, 31 Jan 2021 10:01:49 +0000 (11:01 +0100)]
Fix E0657.

3 years agoOnly store a LocalDefId in hir::ForeignItem.
Camille GILLOT [Sun, 31 Jan 2021 23:33:38 +0000 (00:33 +0100)]
Only store a LocalDefId in hir::ForeignItem.

3 years agoOnly store a LocalDefId in hir::ImplItem.
Camille GILLOT [Sat, 30 Jan 2021 22:25:03 +0000 (23:25 +0100)]
Only store a LocalDefId in hir::ImplItem.

3 years agoOnly store a LocalDefId in hir::TraitItem.
Camille GILLOT [Sat, 30 Jan 2021 19:46:50 +0000 (20:46 +0100)]
Only store a LocalDefId in hir::TraitItem.

3 years agoOnly store a LocalDefId in hir::Item.
Camille GILLOT [Sat, 30 Jan 2021 16:47:51 +0000 (17:47 +0100)]
Only store a LocalDefId in hir::Item.

Items are guaranteed to be HIR owner.

3 years agoUse an ItemId inside mir::GlobalAsm.
Camille GILLOT [Sat, 30 Jan 2021 18:18:48 +0000 (19:18 +0100)]
Use an ItemId inside mir::GlobalAsm.

3 years agoUse ItemId as a strongly typed index.
Camille GILLOT [Sat, 30 Jan 2021 11:06:04 +0000 (12:06 +0100)]
Use ItemId as a strongly typed index.

3 years agoAdd assertions on HIR enum sizes.
Camille GILLOT [Fri, 29 Jan 2021 18:27:56 +0000 (19:27 +0100)]
Add assertions on HIR enum sizes.

3 years agoRemove useless Named trait.
Camille GILLOT [Sat, 30 Jan 2021 10:28:28 +0000 (11:28 +0100)]
Remove useless Named trait.

3 years agoAdd long explanation for E0545
Jesus Rubio [Mon, 15 Feb 2021 18:16:39 +0000 (19:16 +0100)]
Add long explanation for E0545

3 years agoFix typo in rustc_infer::infer::UndoLog
pierwill [Mon, 15 Feb 2021 18:02:03 +0000 (10:02 -0800)]
Fix typo in rustc_infer::infer::UndoLog

Also use double quotes.

3 years agoRollup merge of #82147 - lnicola:rust-analyzer-2021-02-15, r=jonas-schievink
Jonas Schievink [Mon, 15 Feb 2021 15:07:12 +0000 (16:07 +0100)]
Rollup merge of #82147 - lnicola:rust-analyzer-2021-02-15, r=jonas-schievink

:arrow_up: rust-analyzer

3 years agoRollup merge of #82141 - jrvanwhy:issue-82052, r=sanxiyn
Jonas Schievink [Mon, 15 Feb 2021 15:07:11 +0000 (16:07 +0100)]
Rollup merge of #82141 - jrvanwhy:issue-82052, r=sanxiyn

32-bit ARM: Emit `lr` instead of `r14` when specified as an `asm!` output register.

On 32-bit ARM platforms, the register `r14` has the alias `lr`. When used as an output register in `asm!`, rustc canonicalizes the name to `r14`. LLVM only knows the register by the name `lr`, and rejects it. This changes rustc's LLVM code generation to output `lr` instead.

closes #82052

r? ``@nagisa``

3 years agoRollup merge of #82133 - ehuss:extern-prelude-link, r=jyn514
Jonas Schievink [Mon, 15 Feb 2021 15:07:10 +0000 (16:07 +0100)]
Rollup merge of #82133 - ehuss:extern-prelude-link, r=jyn514

Update link for extern prelude.

There was some reorganization in the reference as part of https://github.com/rust-lang/reference/pull/937.

3 years agoRollup merge of #82129 - est31:master, r=jyn514
Jonas Schievink [Mon, 15 Feb 2021 15:07:09 +0000 (16:07 +0100)]
Rollup merge of #82129 - est31:master, r=jyn514

Remove redundant bool_to_option feature gate

3 years agoRollup merge of #82120 - sfackler:arguments-as-str, r=dtolnay
Jonas Schievink [Mon, 15 Feb 2021 15:07:08 +0000 (16:07 +0100)]
Rollup merge of #82120 - sfackler:arguments-as-str, r=dtolnay

Stabilize Arguments::as_str

Closes #74442

3 years agoRollup merge of #82119 - m-ou-se:typo, r=dtolnay
Jonas Schievink [Mon, 15 Feb 2021 15:07:06 +0000 (16:07 +0100)]
Rollup merge of #82119 - m-ou-se:typo, r=dtolnay

Fix typo in link to CreateSymbolicLinkW documentation.

3 years agoRollup merge of #82118 - lukaslueg:env_decl, r=m-ou-se
Jonas Schievink [Mon, 15 Feb 2021 15:07:05 +0000 (16:07 +0100)]
Rollup merge of #82118 - lukaslueg:env_decl, r=m-ou-se

Add missing env!-decl variant

Resolves #82117

3 years agoRollup merge of #82107 - petrochenkov:minexpclean, r=Aaron1011
Jonas Schievink [Mon, 15 Feb 2021 15:07:04 +0000 (16:07 +0100)]
Rollup merge of #82107 - petrochenkov:minexpclean, r=Aaron1011

expand: Some cleanup

See individual commits for details.

r? ``@Aaron1011``

3 years agoRollup merge of #82106 - jyn514:cleanup-bootstrap, r=Mark-Simulacrum
Jonas Schievink [Mon, 15 Feb 2021 15:07:02 +0000 (16:07 +0100)]
Rollup merge of #82106 - jyn514:cleanup-bootstrap, r=Mark-Simulacrum

Remove unnecessary `Option` in `default_doc`

Previously, there were two different ways to encode the same info: `None` or
`Some(&[])`. Now there is only one way, `&[]`.

3 years agoRollup merge of #82096 - TaKO8Ki:fix-typo, r=GuillaumeGomez
Jonas Schievink [Mon, 15 Feb 2021 15:07:01 +0000 (16:07 +0100)]
Rollup merge of #82096 - TaKO8Ki:fix-typo, r=GuillaumeGomez

Fix a typo

This pull request fixes a typo.

3 years agoRollup merge of #82077 - pierwill:edit-droparena, r=lcnr
Jonas Schievink [Mon, 15 Feb 2021 15:07:00 +0000 (16:07 +0100)]
Rollup merge of #82077 - pierwill:edit-droparena, r=lcnr

Edit `rustc_arena::DropArena` docs

- Add a "Safety" section, edit formatting for clarity
- Add missing punctuation in code comments

3 years agoRollup merge of #82067 - BoxyUwU:hahaicantthinkofabadpun, r=oli-obk
Jonas Schievink [Mon, 15 Feb 2021 15:06:59 +0000 (16:06 +0100)]
Rollup merge of #82067 - BoxyUwU:hahaicantthinkofabadpun, r=oli-obk

const_generics: Fix incorrect ty::ParamEnv::empty() usage

Fixes #80561

Not sure if I should keep the `debug!(..)`s or not but its the second time I've needed them so they sure seem useful lol

cc ``@lcnr``
r? ``@oli-obk``

3 years agoRollup merge of #82063 - NULLx76:fix-minor-typo, r=jonas-schievink
Jonas Schievink [Mon, 15 Feb 2021 15:06:58 +0000 (16:06 +0100)]
Rollup merge of #82063 - NULLx76:fix-minor-typo, r=jonas-schievink

Fixed minor typo in catch_unwind docs

Changed "a an exception" to "an exception" inside of the `std::panic::catch_unwind` docs.

3 years agoRollup merge of #82061 - RalfJung:ctfe-read-pointer-as-bytes, r=oli-obk
Jonas Schievink [Mon, 15 Feb 2021 15:06:57 +0000 (16:06 +0100)]
Rollup merge of #82061 - RalfJung:ctfe-read-pointer-as-bytes, r=oli-obk

CTFE validation: catch ReadPointerAsBytes and better error

r? ``@oli-obk``
Fixes https://github.com/rust-lang/rust/issues/79690
Cc https://github.com/rust-lang/miri/issues/1706

3 years agoRollup merge of #82060 - taiki-e:typo, r=m-ou-se
Jonas Schievink [Mon, 15 Feb 2021 15:06:56 +0000 (16:06 +0100)]
Rollup merge of #82060 - taiki-e:typo, r=m-ou-se

Fix typos in BTreeSet::{first, last} docs

map -> set

3 years agoRollup merge of #82009 - BoxyUwU:idontknooow, r=varkor
Jonas Schievink [Mon, 15 Feb 2021 15:06:55 +0000 (16:06 +0100)]
Rollup merge of #82009 - BoxyUwU:idontknooow, r=varkor

const_generics: Dont evaluate array length const when handling errors

Fixes #79518
Fixes #78246

cc ````@lcnr````

This was ICE'ing because we dont pass in the correct ``ParamEnv`` which meant that there was no ``Self: Foo`` predicate to make ``Self::Assoc`` well formed which caused an ICE when trying to normalize ``Self::Assoc`` in the mir interpreter

r? ````@varkor````

3 years agoRollup merge of #81975 - Amanieu:seal2, r=m-ou-se
Jonas Schievink [Mon, 15 Feb 2021 15:06:54 +0000 (16:06 +0100)]
Rollup merge of #81975 - Amanieu:seal2, r=m-ou-se

Seal the CommandExt, OsStrExt and OsStringExt traits

A crater run (https://github.com/rust-lang/rust/pull/81213#issuecomment-767651811) has shown that this does not break any existing code.

This also unblocks #77728.

Based on #81213.

r? ````@m-ou-se````
cc ````@lygstate````

3 years agoRollup merge of #81897 - vandenheuvel:match_exhaustive_diagnostics_regression_test...
Jonas Schievink [Mon, 15 Feb 2021 15:06:53 +0000 (16:06 +0100)]
Rollup merge of #81897 - vandenheuvel:match_exhaustive_diagnostics_regression_test, r=Mark-Simulacrum

Add match pattern diagnostics regression test

Closes #72377 by adding a regression test.

This test case fails on stable but now works on beta and nightly. It *should* have worked already for years, the crucial point whether it is mentioned that some uncovered patterns are not explicitly mentioned.

3 years agoRollup merge of #81503 - henryboisdequin:fix-const-fn-arr-err-msg, r=estebank
Jonas Schievink [Mon, 15 Feb 2021 15:06:47 +0000 (16:06 +0100)]
Rollup merge of #81503 - henryboisdequin:fix-const-fn-arr-err-msg, r=estebank

Suggest to create a new `const` item if the `fn` in the array is a `const fn`

Fixes #73734. If the `fn` in the array repeat expression is a `const fn`, suggest creating a new `const` item. On nightly, suggest creating an inline `const` block. This PR also removes the `suggest_const_in_array_repeat_expressions` as it is no longer necessary.

Example:

```rust
fn main() {
    // Should not compile but hint to create a new const item (stable) or an inline const block (nightly)
    let strings: [String; 5] = [String::new(); 5];
    println!("{:?}", strings);
}

```

Gives this error:

```
error[E0277]: the trait bound `std::string::String: std::marker::Copy` is not satisfied
 --> $DIR/const-fn-in-vec.rs:3:32
  |
2 |     let strings: [String; 5] = [String::new(); 5];
  |                             ^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `String`
  |
  = note: the `Copy` trait is required because the repeated element will be copied
```

With this change, this is the error message:

```
error[E0277]: the trait bound `String: Copy` is not satisfied
  --> $DIR/const-fn-in-vec.rs:3:32
   |
LL |     let strings: [String; 5] = [String::new(); 5];
   |                                ^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `String`
   |
   = help: moving the function call to a new `const` item will resolve the error
```

3 years ago:arrow_up: rust-analyzer
Laurențiu Nicola [Mon, 15 Feb 2021 12:58:36 +0000 (14:58 +0200)]
:arrow_up: rust-analyzer

3 years agoAuto merge of #81855 - cjgillot:ensure-cache, r=oli-obk
bors [Mon, 15 Feb 2021 12:11:59 +0000 (12:11 +0000)]
Auto merge of #81855 - cjgillot:ensure-cache, r=oli-obk

Check the result cache before the DepGraph when ensuring queries

Split out of https://github.com/rust-lang/rust/pull/70951

Calling `ensure` on already forced queries is a common operation.
Looking at the results cache first is faster than checking the DepGraph for a green node.

3 years agoFix ES5 errors (IE11)
Guillaume Gomez [Mon, 15 Feb 2021 09:11:37 +0000 (10:11 +0100)]
Fix ES5 errors (IE11)

3 years ago32-bit ARM: Emit `lr` instead of `r14` when specified as an `asm!` output register.
Johnathan Van Why [Mon, 15 Feb 2021 06:05:33 +0000 (22:05 -0800)]
32-bit ARM: Emit `lr` instead of `r14` when specified as an `asm!` output register.

On 32-bit ARM platforms, the register `r14` has the alias `lr`. When used as an output register in `asm!`, rustc canonicalizes the name to `r14`. LLVM only knows the register by the name `lr`, and rejects it. This changes rustc's LLVM code generation to output `lr` instead.

3 years agoUpdate link for extern prelude.
Eric Huss [Mon, 15 Feb 2021 03:38:40 +0000 (19:38 -0800)]
Update link for extern prelude.

3 years agoRemove redundant bool_to_option feature gate
est31 [Mon, 15 Feb 2021 02:55:52 +0000 (03:55 +0100)]
Remove redundant bool_to_option feature gate

3 years agoStabilize Arguments::as_str
Steven Fackler [Sun, 14 Feb 2021 22:47:08 +0000 (17:47 -0500)]
Stabilize Arguments::as_str

Closes #74442

3 years agoUpdate library/core/src/macros/mod.rs
lukaslueg [Sun, 14 Feb 2021 22:33:43 +0000 (23:33 +0100)]
Update library/core/src/macros/mod.rs

Co-authored-by: Joshua Nelson <joshua@yottadb.com>
3 years agoAuto merge of #82103 - Dylan-DPC:rollup-5wv8rid, r=Dylan-DPC
bors [Sun, 14 Feb 2021 22:26:21 +0000 (22:26 +0000)]
Auto merge of #82103 - Dylan-DPC:rollup-5wv8rid, r=Dylan-DPC

Rollup of 11 pull requests

Successful merges:

 - #80523 (#[doc(inline)] sym_generated)
 - #80920 (Visit more targets when validating attributes)
 - #81720 (Updated smallvec version due to RUSTSEC-2021-0003)
 - #81891 ([rustdoc-json] Make `header` a vec of modifiers, and FunctionPointer consistent)
 - #81912 (Implement the precise analysis pass for lint `disjoint_capture_drop_reorder`)
 - #81914 (Fixing bad suggestion for `_` in `const` type when a function #81885)
 - #81919 (BTreeMap: fix internal comments)
 - #81927 (Add a regression test for #32498)
 - #81965 (Fix MIR pretty printer for non-local DefIds)
 - #82029 (Use debug log level for developer oriented logs)
 - #82056 (fix ice (#82032))

Failed merges:

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

3 years agoFix typo in link to CreateSymbolicLinkW documentation.
Mara Bos [Sun, 14 Feb 2021 22:16:45 +0000 (23:16 +0100)]
Fix typo in link to CreateSymbolicLinkW documentation.

3 years agoAdd missing env!-decl variant
Lukas Lueg [Sun, 14 Feb 2021 21:39:47 +0000 (22:39 +0100)]
Add missing env!-decl variant

Resolves #82117

3 years agoexpand: Remove redundant calls to configure
Vadim Petrochenkov [Sun, 14 Feb 2021 16:47:00 +0000 (19:47 +0300)]
expand: Remove redundant calls to configure

Starting from https://github.com/rust-lang/rust/pull/63468 cfg attributes on variants, fields, fn params etc. are processed together with other attributes (via `configure!`).

3 years agoexpand: Remove obsolete `ExpansionConfig::keep_macs`
Vadim Petrochenkov [Sun, 14 Feb 2021 16:43:54 +0000 (19:43 +0300)]
expand: Remove obsolete `ExpansionConfig::keep_macs`

Maybe it was used before the introduction of placeholders, but now it has no effect.

3 years agorustc_span: Remove obsolete `allow_internal_unstable_backcompat_hack`
Vadim Petrochenkov [Sun, 14 Feb 2021 15:56:21 +0000 (18:56 +0300)]
rustc_span: Remove obsolete `allow_internal_unstable_backcompat_hack`

3 years agoRemove unnecessary `Option` in `default_doc`
Joshua Nelson [Sun, 14 Feb 2021 16:31:35 +0000 (11:31 -0500)]
Remove unnecessary `Option` in `default_doc`

Previously, there two different ways to encode the same info: `None` or
`Some(&[])`. Now there is only one way, `&[]`.

3 years agoRollup merge of #82056 - b-naber:mut_for_loop_bug, r=oli-obk
Dylan DPC [Sun, 14 Feb 2021 15:54:53 +0000 (16:54 +0100)]
Rollup merge of #82056 - b-naber:mut_for_loop_bug, r=oli-obk

fix ice (#82032)

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

3 years agoRollup merge of #82029 - tmiasko:debug, r=matthewjasper
Dylan DPC [Sun, 14 Feb 2021 15:54:52 +0000 (16:54 +0100)]
Rollup merge of #82029 - tmiasko:debug, r=matthewjasper

Use debug log level for developer oriented logs

The information logged here is of limited general interest, while at the
same times makes it impractical to simply enable logging and share the
resulting logs due to the amount of the output produced.

Reduce log level from info to debug for developer oriented information.

For example, when building cargo, this reduces the amount of logs
generated by `RUSTC_LOG=info cargo build` from 265 MB to 79 MB.

Continuation of changes from 81350.

3 years agoRollup merge of #81965 - osa1:issue81200, r=oli-obk
Dylan DPC [Sun, 14 Feb 2021 15:54:51 +0000 (16:54 +0100)]
Rollup merge of #81965 - osa1:issue81200, r=oli-obk

Fix MIR pretty printer for non-local DefIds

Tries to fix #81200 -- the reproducer in the issue is not fixed yet.
Submitting PR to get feedback.

r? oli-obk

3 years agoRollup merge of #81927 - vandenheuvel:issue_32498, r=Mark-Simulacrum
Dylan DPC [Sun, 14 Feb 2021 15:54:50 +0000 (16:54 +0100)]
Rollup merge of #81927 - vandenheuvel:issue_32498, r=Mark-Simulacrum

Add a regression test for #32498

[This](https://github.com/rust-lang/rust/issues/32498#issuecomment-613626968) test mentioned at issue #32498 now passes. This PR adds this regression test.

3 years agoRollup merge of #81919 - ssomers:btree_cleanup_comments, r=Mark-Simulacrum
Dylan DPC [Sun, 14 Feb 2021 15:54:49 +0000 (16:54 +0100)]
Rollup merge of #81919 - ssomers:btree_cleanup_comments, r=Mark-Simulacrum

BTreeMap: fix internal comments

Salvaged from #81372

r? `@Mark-Simulacrum`

3 years agoRollup merge of #81914 - kper:fixing-81885, r=estebank
Dylan DPC [Sun, 14 Feb 2021 15:54:47 +0000 (16:54 +0100)]
Rollup merge of #81914 - kper:fixing-81885, r=estebank

Fixing bad suggestion for `_` in `const` type when a function #81885

Closes #81885

```
error[E0121]: the type placeholder `_` is not allowed within types on item signatures
  --> $DIR/typeck_type_placeholder_item_help.rs:13:22
   |
LL | const TEST4: fn() -> _ = 42;
   |                      ^
   |                      |
   |                      not allowed in type signatures
   |                      help: use type parameters instead: `T`
```

Do not show the suggestion `help: use type parameters instead: T` when `fn`

3 years agoRollup merge of #81912 - sexxi-goose:Migrations2_review, r=nikomatsakis
Dylan DPC [Sun, 14 Feb 2021 15:54:46 +0000 (16:54 +0100)]
Rollup merge of #81912 - sexxi-goose:Migrations2_review, r=nikomatsakis

Implement the precise analysis pass for lint `disjoint_capture_drop_reorder`

The precision pass for the lint prevents the lint from triggering for a variable (that was previously entirely captured by the closure) if all paths that need Drop starting at root variable have been captured by the closure.

r? `@nikomatsakis`

3 years agoRollup merge of #81891 - CraftSpider:fn-header, r=jyn514
Dylan DPC [Sun, 14 Feb 2021 15:54:45 +0000 (16:54 +0100)]
Rollup merge of #81891 - CraftSpider:fn-header, r=jyn514

[rustdoc-json] Make `header` a vec of modifiers, and FunctionPointer consistent

Bumps version number and adds tests, this is a breaking change. I can split this into two (`is_unsafe` -> `header` and `header: Vec<Modifiers>`) if desired.

Rationale: Modifiers are individual notes on a function, it makes more sense for them to be a list of an independent enum over a String which is inconsistently exposing the HIR representation (prefix_str vs custom literals).
Function pointers currently only support `unsafe`, but there has been talk on and off about allowing them to also support `const`, and this makes handling their modifiers consistent with handling those of a function, allowing better shared code.

`@rustbot` modify labels: +A-rustdoc-json +T-rustdoc
CC: `@HeroicKatora`
r? `@jyn514`

3 years agoRollup merge of #81720 - klensy:smallvec-update, r=Mark-Simulacrum
Dylan DPC [Sun, 14 Feb 2021 15:54:44 +0000 (16:54 +0100)]
Rollup merge of #81720 - klensy:smallvec-update, r=Mark-Simulacrum

Updated smallvec version due to RUSTSEC-2021-0003

Hi.

Updated Cargo.toml's for smallvec due to RUSTSEC-2021-0003 and Cargo.toml in separate commit.

Affected function `SmallVec::insert_many` looks like don't was used directly in rust, but can be somewhere in deps.

There should be some mechanism to not to do this kind of things manually, like dependabot. Actually, dependabot supports rust and can check security articles (at least that noted in description).

3 years agoRollup merge of #80920 - rylev:check_attr-refactor, r=davidtwco
Dylan DPC [Sun, 14 Feb 2021 15:54:42 +0000 (16:54 +0100)]
Rollup merge of #80920 - rylev:check_attr-refactor, r=davidtwco

Visit more targets when validating attributes

This begins to address #80048, allowing for additional validation of attributes.

There are more refactorings that can be done, though I think they should be tackled in additional PRs:
* ICE when a builtin attribute is encountered that is not checked
* Move some of the attr checking done `ast_validation` into `rustc_passes`
  * note that this requires a bit of additional refactoring, especially of extern items which currently parse attributes (and thus are a part of the AST) but do not possess attributes in their HIR representation.
* Rename `Target` to `AttributeTarget`
* Refactor attribute validation completely to go through `Visitor::visit_attribute`.
  * This would require at a minimum passing `Target` into this method which might be too big of a refactoring to be worth it.
  * It's also likely not possible to do all the validation this way as some validation requires knowing what other attributes a target has.

r? `@davidtwco`

3 years agoRollup merge of #80523 - LeSeulArtichaut:inline-sym, r=jyn514
Dylan DPC [Sun, 14 Feb 2021 15:54:35 +0000 (16:54 +0100)]
Rollup merge of #80523 - LeSeulArtichaut:inline-sym, r=jyn514

#[doc(inline)] sym_generated

Manually doc-inlines `rustc_span::sym_generated` into `sym`.
Previously the docs would not get inlined, causing the symbols to be undocumented as `sym_generated` is private.

r? `@jyn514`

3 years agobumped smallvec deps
klensy [Sun, 14 Feb 2021 14:37:30 +0000 (17:37 +0300)]
bumped smallvec deps

3 years agoAuto merge of #81286 - Aaron1011:collect-tokens-attrs, r=petrochenkov
bors [Sun, 14 Feb 2021 15:00:52 +0000 (15:00 +0000)]
Auto merge of #81286 - Aaron1011:collect-tokens-attrs, r=petrochenkov

Require passing an `AttrWrapper` to `collect_tokens_trailing_token`

This is a pure refactoring split out from #80689.
It represents the most invasive part of that PR, requiring changes in
every caller of `parse_outer_attributes`

In order to eagerly expand `#[cfg]` attributes while preserving the
original `TokenStream`, we need to know the range of tokens that
corresponds to every attribute target. This is accomplished by making
`parse_outer_attributes` return an opaque `AttrWrapper` struct. An
`AttrWrapper` must be converted to a plain `AttrVec` by passing it to
`collect_tokens_trailing_token`. This makes it difficult to accidentally
construct an AST node with attributes without calling `collect_tokens_trailing_token`,
since AST nodes store an `AttrVec`, not an `AttrWrapper`.

As a result, we now call `collect_tokens_trailing_token` for attribute
targets which only support inert attributes, such as generic arguments
and struct fields. Currently, the constructed `LazyTokenStream` is
simply discarded. Future PRs will record the token range corresponding
to the attribute target, allowing those tokens to be removed from an
enclosing `collect_tokens_trailing_token` call if necessary.

3 years agofix typo
Takayuki Maeda [Sun, 14 Feb 2021 12:18:17 +0000 (21:18 +0900)]
fix typo

3 years agoparam_env debugs are instrumental to rustc's success
Ellen [Sun, 14 Feb 2021 11:18:40 +0000 (11:18 +0000)]
param_env debugs are instrumental to rustc's success

3 years agoAuto merge of #81956 - ssomers:btree_post_75200, r=Mark-Simulacrum
bors [Sun, 14 Feb 2021 04:53:24 +0000 (04:53 +0000)]
Auto merge of #81956 - ssomers:btree_post_75200, r=Mark-Simulacrum

BTree: remove outdated traces of coercions

The introduction of `marker::ValMut` (#75200) meant iterators no longer see mutable keys but their code still pretends it does. And settle on the majority style `Some(unsafe {…})` over `unsafe { Some(…) }`.

r? `@Mark-Simulacrum`

3 years agoupdate message
Henry Boisdequin [Sun, 14 Feb 2021 04:38:37 +0000 (10:08 +0530)]
update message

3 years agoEdit `rustc_arena::DropArena` docs
pierwill [Sat, 13 Feb 2021 23:18:42 +0000 (15:18 -0800)]
Edit `rustc_arena::DropArena` docs

- Add a "Safety" section, edit formatting for clarity
- Add missing punctuation in code comments

3 years agoAuto merge of #81238 - RalfJung:copy-intrinsics, r=m-ou-se
bors [Sat, 13 Feb 2021 20:30:07 +0000 (20:30 +0000)]
Auto merge of #81238 - RalfJung:copy-intrinsics, r=m-ou-se

directly expose copy and copy_nonoverlapping intrinsics

This effectively un-does https://github.com/rust-lang/rust/pull/57997. That should help with `ptr::read` codegen in debug builds (and any other of these low-level functions that bottoms out at `copy`/`copy_nonoverlapping`), where the wrapper function will not get inlined. See the discussion in https://github.com/rust-lang/rust/pull/80290 and https://github.com/rust-lang/rust/issues/81163.

Cc `@bjorn3` `@therealprof`

3 years agoCheck query cache before calling into the query engine.
Camille GILLOT [Sat, 6 Feb 2021 13:52:04 +0000 (14:52 +0100)]
Check query cache before calling into the query engine.

3 years agoDrop the cache lock earlier.
Camille GILLOT [Sat, 6 Feb 2021 13:04:20 +0000 (14:04 +0100)]
Drop the cache lock earlier.

3 years agoSeparate the query cache from the query state.
Camille GILLOT [Sat, 6 Feb 2021 12:49:08 +0000 (13:49 +0100)]
Separate the query cache from the query state.

3 years agoReturn a Result for query cache.
Camille GILLOT [Fri, 23 Oct 2020 20:34:32 +0000 (22:34 +0200)]
Return a Result for query cache.

3 years agoIntroduce query_storage.
Camille GILLOT [Tue, 19 Jan 2021 19:02:05 +0000 (20:02 +0100)]
Introduce query_storage.

3 years agoIntroduce query_stored module.
Camille GILLOT [Sun, 17 Jan 2021 13:57:07 +0000 (14:57 +0100)]
Introduce query_stored module.

3 years agoMerge {get,ensure}_query.
Camille GILLOT [Wed, 18 Nov 2020 15:53:39 +0000 (16:53 +0100)]
Merge {get,ensure}_query.

3 years agoa wild test has appeared uwu
Ellen [Sat, 13 Feb 2021 18:27:39 +0000 (18:27 +0000)]
a wild test has appeared uwu

3 years agoyeet ya fixme into the void
Ellen [Sat, 13 Feb 2021 18:11:43 +0000 (18:11 +0000)]
yeet ya fixme into the void

3 years agodebug!("paramenv={}paramenv={}paramenv={}paramenv={}")
Ellen [Sat, 13 Feb 2021 19:08:31 +0000 (19:08 +0000)]
debug!("paramenv={}paramenv={}paramenv={}paramenv={}")

3 years agoAddress review comments
Aaron Hill [Sat, 13 Feb 2021 17:42:43 +0000 (12:42 -0500)]
Address review comments