]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoAlways pass `-Z future-incompat-report` to UI tests
Aaron Hill [Mon, 19 Oct 2020 15:55:35 +0000 (11:55 -0400)]
Always pass `-Z future-incompat-report` to UI tests

3 years agoDon't display empty future-compat report
Aaron Hill [Mon, 19 Oct 2020 15:54:09 +0000 (11:54 -0400)]
Don't display empty future-compat report

3 years agoUpdate into-iter-on-arrays test to check future-incompat-report
Aaron Hill [Mon, 19 Oct 2020 15:50:36 +0000 (11:50 -0400)]
Update into-iter-on-arrays test to check future-incompat-report

3 years agoOnly error on unfixed diagnostics
Aaron Hill [Mon, 19 Oct 2020 15:49:07 +0000 (11:49 -0400)]
Only error on unfixed diagnostics

3 years agoStrip out non-diagnostic lines from rustfix input
Aaron Hill [Mon, 19 Oct 2020 15:43:38 +0000 (11:43 -0400)]
Strip out non-diagnostic lines from rustfix input

3 years agoPrint future breakage report
Aaron Hill [Mon, 19 Oct 2020 15:19:37 +0000 (11:19 -0400)]
Print future breakage report

3 years agoSome work
Aaron Hill [Sun, 18 Oct 2020 19:28:23 +0000 (15:28 -0400)]
Some work

3 years agoImplement rustc side of report-future-incompat
Aaron Hill [Thu, 13 Aug 2020 19:41:52 +0000 (15:41 -0400)]
Implement rustc side of report-future-incompat

3 years agoAuto merge of #78424 - jyn514:THE-PAPERCLIP-COMETH, r=davidtwco
bors [Fri, 30 Oct 2020 14:24:02 +0000 (14:24 +0000)]
Auto merge of #78424 - jyn514:THE-PAPERCLIP-COMETH, r=davidtwco

Fix some more clippy warnings

Found while working on https://github.com/rust-lang/rust/pull/77351. It turns out that `x.py clippy --fix` does work on that branch as long as you pass `CARGOFLAGS=--lib`.

3 years agoAdd back missing comments
Joshua Nelson [Tue, 27 Oct 2020 14:55:26 +0000 (10:55 -0400)]
Add back missing comments

3 years agoFix even more clippy warnings
Joshua Nelson [Tue, 27 Oct 2020 01:02:48 +0000 (21:02 -0400)]
Fix even more clippy warnings

3 years agoFix some more clippy warnings
Joshua Nelson [Tue, 27 Oct 2020 00:02:06 +0000 (20:02 -0400)]
Fix some more clippy warnings

3 years agoAuto merge of #78562 - JohnTitor:rollup-otg906u, r=JohnTitor
bors [Fri, 30 Oct 2020 10:01:49 +0000 (10:01 +0000)]
Auto merge of #78562 - JohnTitor:rollup-otg906u, r=JohnTitor

Rollup of 8 pull requests

Successful merges:

 - #77334 (Reorder benches const variable)
 - #77888 (Simplify a nested bool match)
 - #77921 (f64: Refactor collapsible_if)
 - #78523 (Revert invalid `fn` return type parsing change)
 - #78524 (Avoid BorrowMutError with RUSTC_LOG=debug)
 - #78545 (Make anonymous binders start at 0)
 - #78554 (Improve wording of `core::ptr::drop_in_place` docs)
 - #78556 (Link to pass docs from NRVO module docs)

Failed merges:

 - #78424 (Fix some more clippy warnings)

r? `@ghost`

3 years agoRollup merge of #78556 - camelid:mir-opt-nrvo-docs, r=jyn514
Yuki Okushi [Fri, 30 Oct 2020 09:00:58 +0000 (18:00 +0900)]
Rollup merge of #78556 - camelid:mir-opt-nrvo-docs, r=jyn514

Link to pass docs from NRVO module docs

It can be easy to miss that this is documented on the pass's struct if you are
looking at the module docs.

Cc https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt/topic/what.20is.20NRVO.3F

3 years agoRollup merge of #78554 - camelid:improve-drop_in_place-docs-wording, r=jyn514
Yuki Okushi [Fri, 30 Oct 2020 09:00:58 +0000 (18:00 +0900)]
Rollup merge of #78554 - camelid:improve-drop_in_place-docs-wording, r=jyn514

Improve wording of `core::ptr::drop_in_place` docs

And two small intra-doc link conversions in `std::{f32, f64}`.

3 years agoRollup merge of #78545 - jackh726:anonymous, r=oli-obk
Yuki Okushi [Fri, 30 Oct 2020 09:00:56 +0000 (18:00 +0900)]
Rollup merge of #78545 - jackh726:anonymous, r=oli-obk

Make anonymous binders start at 0

A few changes to some test outputs, but these actually look *more* correct to me.

3 years agoRollup merge of #78524 - tmiasko:source-files-borrow, r=Aaron1011
Yuki Okushi [Fri, 30 Oct 2020 09:00:54 +0000 (18:00 +0900)]
Rollup merge of #78524 - tmiasko:source-files-borrow, r=Aaron1011

Avoid BorrowMutError with RUSTC_LOG=debug

```console
$ touch empty.rs
$ env RUSTC_LOG=debug rustc +stage1 --crate-type=lib empty.rs
```

Fails with a `BorrowMutError` because source map files are already
borrowed while `features_query` attempts to format a log message
containing a span.

Release the borrow before the query to avoid the issue.

3 years agoRollup merge of #78523 - estebank:fix-return-type-parse-regression, r=dtolnay
Yuki Okushi [Fri, 30 Oct 2020 09:00:53 +0000 (18:00 +0900)]
Rollup merge of #78523 - estebank:fix-return-type-parse-regression, r=dtolnay

Revert invalid `fn` return type parsing change

Revert one of the changes in #78379.

Fix #78507.

3 years agoRollup merge of #77921 - wcampbell0x2a:f64-collapsible-if, r=jyn514
Yuki Okushi [Fri, 30 Oct 2020 09:00:49 +0000 (18:00 +0900)]
Rollup merge of #77921 - wcampbell0x2a:f64-collapsible-if, r=jyn514

f64: Refactor collapsible_if

3 years agoRollup merge of #77888 - LingMan:ast_pretty_tt_prepend_space, r=jyn514
Yuki Okushi [Fri, 30 Oct 2020 09:00:45 +0000 (18:00 +0900)]
Rollup merge of #77888 - LingMan:ast_pretty_tt_prepend_space, r=jyn514

Simplify a nested bool match

Logically this first eliminates the innermost match by merging the patterns.
Then, in a second step, turns the newly innermost match into a `matches!` call.

3 years agoRollup merge of #77334 - pickfire:patch-4, r=jyn514
Yuki Okushi [Fri, 30 Oct 2020 09:00:41 +0000 (18:00 +0900)]
Rollup merge of #77334 - pickfire:patch-4, r=jyn514

Reorder benches const variable

Move LEN so it is is read in order.

3 years agoAuto merge of #78393 - SNCPlay42:match-if-guard, r=tmandry
bors [Fri, 30 Oct 2020 07:05:57 +0000 (07:05 +0000)]
Auto merge of #78393 - SNCPlay42:match-if-guard, r=tmandry

Always record reference to binding in match if guards

When encountering a binding from a `match` pattern in its `if` guard when computing a generator's interior types, we must always record the type of a reference to the binding because of how `if` guards are lowered to MIR. This was missed in #75213 because the binding in that test case was autorefed and we recorded that adjusted type anyway.

Fixes #78366

3 years agoLink to pass docs from NRVO module docs
Camelid [Fri, 30 Oct 2020 06:05:45 +0000 (23:05 -0700)]
Link to pass docs from NRVO module docs

3 years agoImprove wording of `core::ptr::drop_in_place` docs
Camelid [Fri, 30 Oct 2020 03:09:29 +0000 (20:09 -0700)]
Improve wording of `core::ptr::drop_in_place` docs

And two small intra-doc link conversions in `std::{f32, f64}`.

3 years agoAuto merge of #78432 - sexxi-goose:fix-77993-take3, r=nikomatsakis
bors [Fri, 30 Oct 2020 03:00:13 +0000 (03:00 +0000)]
Auto merge of #78432 - sexxi-goose:fix-77993-take3, r=nikomatsakis

Handle type errors in closure/generator upvar_tys

Fixes #77993

3 years agoAuto merge of #78540 - RalfJung:miri, r=RalfJung
bors [Fri, 30 Oct 2020 00:28:32 +0000 (00:28 +0000)]
Auto merge of #78540 - RalfJung:miri, r=RalfJung

update Miri

Cc `@rust-lang/miri` r? `@ghost`

3 years agoMake anonymous binders start at 0
Jack Huey [Thu, 29 Oct 2020 22:42:31 +0000 (18:42 -0400)]
Make anonymous binders start at 0

3 years agoAuto merge of #78528 - jonas-schievink:rollup-e70g9zk, r=jonas-schievink
bors [Thu, 29 Oct 2020 20:56:25 +0000 (20:56 +0000)]
Auto merge of #78528 - jonas-schievink:rollup-e70g9zk, r=jonas-schievink

Rollup of 11 pull requests

Successful merges:

 - #75078 (Improve documentation for slice strip_* functions)
 - #76138 (Explain fully qualified syntax for `Rc` and `Arc`)
 - #78244 (Dogfood {exclusive,half-open} ranges in compiler (nfc))
 - #78422 (Do not ICE on invalid input)
 - #78423 (rustc_span: improve bounds checks in byte_pos_to_line_and_col)
 - #78431 (Prefer new associated numeric consts in float error messages)
 - #78462 (Use unwrapDIPtr because the Scope may be null.)
 - #78493 (Update cargo)
 - #78499 (Prevent String::retain from creating non-utf8 strings when abusing panic)
 - #78505 (Update Clippy - temporary_cstring_as_ptr deprecation)
 - #78527 (Fix some more typos)

Failed merges:

r? `@ghost`

3 years agoupdate Miri
Ralf Jung [Thu, 29 Oct 2020 20:33:37 +0000 (21:33 +0100)]
update Miri

3 years agoAuto merge of #78508 - wesleywiser:optimize_visit_scopes, r=petrochenkov
bors [Thu, 29 Oct 2020 18:34:59 +0000 (18:34 +0000)]
Auto merge of #78508 - wesleywiser:optimize_visit_scopes, r=petrochenkov

[resolve] Use `unwrap_or_else` instead of `unwrap_or` in a hot path

This improves the performance of the `resolve_crate` function by 30% for
a very large single file crate with auto-generated C bindings.

cc `@rylev`

3 years agoRollup merge of #78527 - bugadani:typo3, r=jonas-schievink
Jonas Schievink [Thu, 29 Oct 2020 16:05:31 +0000 (17:05 +0100)]
Rollup merge of #78527 - bugadani:typo3, r=jonas-schievink

Fix some more typos

3 years agoRollup merge of #78505 - ebroto:clippyup, r=oli-obk
Jonas Schievink [Thu, 29 Oct 2020 16:05:30 +0000 (17:05 +0100)]
Rollup merge of #78505 - ebroto:clippyup, r=oli-obk

Update Clippy - temporary_cstring_as_ptr deprecation

In #75671 `clippy::temporary_cstr_as_ptr` was removed instead of being deprecated. This will trigger an error (unknown lint) for users that refer to that lint to e.g. allow it, instead of a more informative warning.

This update should fix that for nightly users.

r? @oli-obk

3 years agoRollup merge of #78499 - SkiFire13:fix-string-retain, r=m-ou-se
Jonas Schievink [Thu, 29 Oct 2020 16:05:28 +0000 (17:05 +0100)]
Rollup merge of #78499 - SkiFire13:fix-string-retain, r=m-ou-se

Prevent String::retain from creating non-utf8 strings when abusing panic

Fixes #78498

The idea is the same as `Vec::drain`, set the len to 0 so that nobody can observe the broken invariant if it escapes the function (in this case if `f` panics)

3 years agoRollup merge of #78493 - ehuss:update-cargo, r=ehuss
Jonas Schievink [Thu, 29 Oct 2020 16:05:26 +0000 (17:05 +0100)]
Rollup merge of #78493 - ehuss:update-cargo, r=ehuss

Update cargo

8 commits in dd83ae55c871d94f060524656abab62ec40b4c40..becb4c282b8f37469efb8f5beda45a5501f9d367
2020-10-20 19:31:26 +0000 to 2020-10-28 16:41:55 +0000
- List available packages if providing `--package` with an empty value (rust-lang/cargo#8808)
- Add a future-compatibility warning on allowed feature name characters. (rust-lang/cargo#8814)
- New namespaced features implementation. (rust-lang/cargo#8799)
- Remove redundant "For example, " (rust-lang/cargo#8810)
- Document platform-specific build-dependencies (rust-lang/cargo#8809)
- Remove some unused code. (rust-lang/cargo#8807)
- Some minor clippy fixes. (rust-lang/cargo#8804)
- Update TOML website links. (rust-lang/cargo#8803)

3 years agoRollup merge of #78462 - danielframpton:fixnullisa, r=nagisa
Jonas Schievink [Thu, 29 Oct 2020 16:05:23 +0000 (17:05 +0100)]
Rollup merge of #78462 - danielframpton:fixnullisa, r=nagisa

Use unwrapDIPtr because the Scope may be null.

I ran into an assertion when using debug information on Windows with LLVM assertions enabled.

It seems like we are using unwrap here (which in turn calls isa and requires the pointer to be non-null) but we expect the value to be null because that is what we are passing from rustc.

This change uses unwrapDIPtr which explicitly allows nullptr.

The FFI prototype for this method on the rust side has the `LLVMMetadataRef` parameter as `Scope: Option<&'a DIScope>`, and we always pass `None` when `msvc_like_names` is true.

3 years agoRollup merge of #78431 - Rustin-Liu:rustin-patch-lint, r=estebank
Jonas Schievink [Thu, 29 Oct 2020 16:05:21 +0000 (17:05 +0100)]
Rollup merge of #78431 - Rustin-Liu:rustin-patch-lint, r=estebank

Prefer new associated numeric consts in float error messages

Fix https://github.com/rust-lang/rust/issues/78382

3 years agoRollup merge of #78423 - tgnottingham:caching_source_map_bounds_check, r=oli-obk
Jonas Schievink [Thu, 29 Oct 2020 16:05:17 +0000 (17:05 +0100)]
Rollup merge of #78423 - tgnottingham:caching_source_map_bounds_check, r=oli-obk

rustc_span: improve bounds checks in byte_pos_to_line_and_col

The effect of this change is to consider edge-case spans that start or
end at the position one past the end of a file to be valid during span
hashing and encoding. This change means that these spans will be
preserved across incremental compilation sessions when they are part of
a serialized query result, instead of causing the dummy span to be used.

3 years agoRollup merge of #78422 - estebank:fix-78372, r=pnkfelix
Jonas Schievink [Thu, 29 Oct 2020 16:05:14 +0000 (17:05 +0100)]
Rollup merge of #78422 - estebank:fix-78372, r=pnkfelix

Do not ICE on invalid input

Fix #78372.

3 years agoRollup merge of #78244 - workingjubilee:dogfood-fancy-ranges, r=varkor
Jonas Schievink [Thu, 29 Oct 2020 16:05:11 +0000 (17:05 +0100)]
Rollup merge of #78244 - workingjubilee:dogfood-fancy-ranges, r=varkor

Dogfood {exclusive,half-open} ranges in compiler (nfc)

In particular, this allows us to write more explicit matches that
avoid the pitfalls of using a fully general fall-through case, yet
remain fairly ergonomic. Less logic is in guard cases, more is in
the actual exhaustive case analysis.

No functional changes.

3 years agoRollup merge of #76138 - camelid:rc-fully-qualified-syntax, r=steveklabnik
Jonas Schievink [Thu, 29 Oct 2020 16:05:08 +0000 (17:05 +0100)]
Rollup merge of #76138 - camelid:rc-fully-qualified-syntax, r=steveklabnik

Explain fully qualified syntax for `Rc` and `Arc`

Also cleaned up some other small things.

@rustbot modify labels: T-doc

3 years agoRollup merge of #75078 - ijackson:slice-strip, r=steveklabnik
Jonas Schievink [Thu, 29 Oct 2020 16:05:00 +0000 (17:05 +0100)]
Rollup merge of #75078 - ijackson:slice-strip, r=steveklabnik

Improve documentation for slice strip_* functions

Prompted by the stabilisation tracking issue #73413 I looked at the docs for `strip_prefix` and `strip_suffix` for both `str` and `slice`, and I felt they could be slightly improved.

Thanks for your attention.

3 years agoFix typos
Dániel Buga [Thu, 29 Oct 2020 15:51:46 +0000 (16:51 +0100)]
Fix typos

3 years agoAdd regression test
Esteban Küber [Thu, 29 Oct 2020 15:32:13 +0000 (08:32 -0700)]
Add regression test

3 years agoRevert invalid `fn` return type parsing change
Esteban Küber [Thu, 29 Oct 2020 15:26:42 +0000 (08:26 -0700)]
Revert invalid `fn` return type parsing change

Fix #78507.

3 years agoAuto merge of #78446 - RalfJung:box, r=Amanieu
bors [Thu, 29 Oct 2020 12:08:16 +0000 (12:08 +0000)]
Auto merge of #78446 - RalfJung:box, r=Amanieu

fix Box::into_unique

https://github.com/rust-lang/rust/pull/77187/ broke Stacked Borrows pointer tagging around `Box::into_unique` (this is caused by `Box` being a special case in the type system, which box-internal code needs to account for). This PR fixes that.

r? `@Amanieu` Cc `@TimDiekmann`

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

3 years agoAdded test for issue #78498
Giacomo Stevanato [Thu, 29 Oct 2020 10:48:56 +0000 (11:48 +0100)]
Added test for issue #78498

3 years agoPrevent String::retain from creating non-utf8 strings when abusing panic
Giacomo Stevanato [Wed, 28 Oct 2020 17:52:45 +0000 (18:52 +0100)]
Prevent String::retain from creating non-utf8 strings when abusing panic

3 years agoAuto merge of #78506 - cuviper:ubuntu-lts, r=pietroalbini
bors [Thu, 29 Oct 2020 09:27:08 +0000 (09:27 +0000)]
Auto merge of #78506 - cuviper:ubuntu-lts, r=pietroalbini

ci: update x86_64-gnu and x86_64-gnu-debug to ubuntu:20.04

The former `ubuntu:19.10` reached EOL in July, 2020, whereas
`ubuntu:20.04` is an LTS release supported until 2025.

These are non-dist CI images, so the impact should be low.

3 years agoAuto merge of #78486 - pietroalbini:manifest-artifacts, r=Mark-Simulacrum
bors [Thu, 29 Oct 2020 06:18:12 +0000 (06:18 +0000)]
Auto merge of #78486 - pietroalbini:manifest-artifacts, r=Mark-Simulacrum

Include non-rustup artifacts in the manifest

This PR fixes https://github.com/rust-lang/promote-release/issues/22 by including all the files we ship in the generated manifests, even the ones that are not installable through rustup. In practice this adds the following "artifacts":

* `source-code`: the tarball containing the full source code used to build the release (`rustc-{channel}-src.tar.xz`)
* `installer-msi`: the MSI installer for Windows systems (`rust-{channel}-{target}.msi`)
* `installer-pkg`: the PKG installer for macOS systems (`rust-{channel}-{target}.pkg`)

These files are included in a new `artifacts` table of the manifest, like so:

```toml
[[artifacts.installer-msi.target.aarch64-pc-windows-msvc]]
url = "https://example.com/2020-10-28/rust-nightly-aarch64-pc-windows-msvc.msi"
hash-sha256 = "6b41d5b829d20834c5d93628d008ec618f8914ee79303363bd13a86fd5f305dd"

[[artifacts.installer-msi.target.i686-pc-windows-gnu]]
url = "https://example.com/2020-10-28/rust-nightly-i686-pc-windows-gnu.msi"
hash-sha256 = "83f020de6e180c155add9fce1cea2ac6e5f744edbd6dc1581e24de8f56b2ca7a"

[[artifacts.installer-msi.target.i686-pc-windows-msvc]]
url = "https://example.com/2020-10-28/rust-nightly-i686-pc-windows-msvc.msi"
hash-sha256 = "dbc80c24e9d5df01616c6f216114b4351f51a94218e2368b5cebe4165b270702"

[[artifacts.installer-msi.target.x86_64-pc-windows-gnu]]
url = "https://example.com/2020-10-28/rust-nightly-x86_64-pc-windows-gnu.msi"
hash-sha256 = "8196eca3f02d72d4c8776ad4fcc72897125e2cf6404ae933e31c07e197e3c9fa"

[[artifacts.installer-msi.target.x86_64-pc-windows-msvc]]
url = "https://example.com/2020-10-28/rust-nightly-x86_64-pc-windows-msvc.msi"
hash-sha256 = "b2e7fd6463790732fcf9c726b9448068712341943199cb40fc11d1138b8a207b"

[[artifacts.installer-pkg.target.aarch64-apple-darwin]]
url = "https://example.com/2020-10-28/rust-nightly-aarch64-apple-darwin.pkg"
hash-sha256 = "70421c191752fb33886f8033b029e634bcc993b72308cef52a38405840e91f5c"

[[artifacts.installer-pkg.target.x86_64-apple-darwin]]
url = "https://example.com/2020-10-28/rust-nightly-x86_64-apple-darwin.pkg"
hash-sha256 = "ebd7a5acb61e82d85e855146cc9bd856f32228ee7f40dd94c659b00614ed4f1f"

[[artifacts.source-code.target."*"]]
url = "https://example.com/2020-10-28/rustc-nightly-src.tar.gz"
hash-sha256 = "5fcc487ee4c15c689de8ddf7daac7ff6a65c80498197b9aea58622dc2b3bca10"

[[artifacts.source-code.target."*"]]
url = "https://example.com/2020-10-28/rustc-nightly-src.tar.xz"
hash-sha256 = "0c618ef0ec5f64da1801e9d0df6c755f6ed1a8780ec5c8ee75e55614be51d42c"

```

Each artifact can be available for multiple targets, and each target can have multiple versions of the same file (for example, a `gz`-compressed one and a `xz`-compressed one). In the future rustup might add functionality to let users retrieve the artifacts, but that's not needed to land this PR, and whether to do the implementation is up to the rustup maintainers.

r? `@kinnison`
cc `@Mark-Simulacrum`

3 years agoAuto merge of #78512 - JohnTitor:rollup-a7qwjah, r=JohnTitor
bors [Thu, 29 Oct 2020 03:57:54 +0000 (03:57 +0000)]
Auto merge of #78512 - JohnTitor:rollup-a7qwjah, r=JohnTitor

Rollup of 11 pull requests

Successful merges:

 - #77213 (rustdoc options to set default theme (and other settings))
 - #78224 (min_const_generics: allow ty param in repeat expr)
 - #78428 (MinConstGenerics UI test for invalid values for bool & char)
 - #78460 (Adjust turbofish help message for const generics)
 - #78470 (Clean up intra-doc links in `std::path`)
 - #78475 (fix a comment in validity check)
 - #78478 (Add const generics tests for supertraits + dyn traits.)
 - #78487 (Fix typo "compiltest")
 - #78491 (Inline NonZeroN::from(n))
 - #78492 (Update books)
 - #78494 (Fix typos)

Failed merges:

r? `@ghost`

3 years agoDogfood {exclusive,half-open} ranges in compiler (nfc)
Jubilee Young [Thu, 22 Oct 2020 18:42:44 +0000 (11:42 -0700)]
Dogfood {exclusive,half-open} ranges in compiler (nfc)

In particular, this allows us to write more explicit matches that
avoid the pitfalls of using a fully general fall-through case, yet
remain fairly ergonomic. Less logic is in guard cases, more is in
the actual exhaustive case analysis.

No functional changes.

3 years agoRollup merge of #78494 - bugadani:typo2, r=jonas-schievink
Yuki Okushi [Thu, 29 Oct 2020 03:09:03 +0000 (12:09 +0900)]
Rollup merge of #78494 - bugadani:typo2, r=jonas-schievink

Fix typos

3 years agoRollup merge of #78492 - ehuss:update-books, r=ehuss
Yuki Okushi [Thu, 29 Oct 2020 03:09:01 +0000 (12:09 +0900)]
Rollup merge of #78492 - ehuss:update-books, r=ehuss

Update books

## nomicon

7 commits in 6e57e64501f61873ab80cb78a07180a22751a5d6..69333eddb1de92fd17e272ce4677cc983d3bd71d
2020-09-14 11:40:23 -0400 to 2020-10-17 15:44:12 -0700
- Tweak GHA config (rust-lang-nursery/nomicon#240)
- Fix link for `[T]` (rust-lang-nursery/nomicon#239)
- Update casts.md (rust-lang-nursery/nomicon#232)
- [WIP] Add more links (rust-lang-nursery/nomicon#180)
- Data Race definition should be more precise (rust-lang-nursery/nomicon#219)
- Update the diagnostic of `error[E0597]` in dropck.md (rust-lang-nursery/nomicon#157)
- fix typo in Lifetimes mutable reference aliasing section (rust-lang-nursery/nomicon#225)

## reference

3 commits in 1b78182e71709169dc0f1c3acdc4541b6860e1c4..10c16caebe475d0d11bec0531b95d7697856c13c
2020-10-11 13:53:47 -0700 to 2020-10-25 20:51:26 -0700
- Add `unsafe` for `mod` and `extern`. (rust-lang-nursery/reference#898)
- mention how unions interact with dropping (rust-lang-nursery/reference#897)
- Add `move_ref_pattern` docs (rust-lang-nursery/reference#881)

## book

2 commits in 451a1e30f2dd137aa04e142414eafb8d05f87f84..13e1c05420bca86ecc79e4ba5b6d02de9bd53c62
2020-10-05 09:11:18 -0500 to 2020-10-20 14:57:32 -0500
- Referencing to Appendix B (rust-lang/book#2481)
- Use GITHUB_PATH instead of add-path (rust-lang/book#2477)

## rust-by-example

2 commits in 152475937a8d8a1f508d8eeb57db79139bc803d9..99eafee0cb14e6ec641bf02a69d7b30f6058349a
2020-10-09 09:29:50 -0300 to 2020-10-21 14:21:55 -0300
- Formatting footer items. (rust-lang/rust-by-example#1385)
- Add partial moves example for `move_ref_pattern` stabilization (rust-lang/rust-by-example#1377)

## edition-guide

3 commits in 81f16863014de60b53de401d71ff904d163ee030..7bc9b7a5e800f79df62947cb7d566fd2fbaf19fe
2020-08-27 13:56:31 -0700 to 2020-10-23 18:31:23 -0500
- A few small updates. (rust-lang/edition-guide#221)
- Clarify the limitation of ? in main and tests (rust-lang/edition-guide#219)
- Update deprecated GitHub Actions commands. (rust-lang/edition-guide#220)

3 years agoRollup merge of #78491 - petertodd:2020-inline-from-nonzero, r=sfackler
Yuki Okushi [Thu, 29 Oct 2020 03:08:59 +0000 (12:08 +0900)]
Rollup merge of #78491 - petertodd:2020-inline-from-nonzero, r=sfackler

Inline NonZeroN::from(n)

Currently this results in the generated assembly having a function call for this trivial conversion.

3 years agoRollup merge of #78487 - rust-lang:GuillaumeGomez-patch-1, r=steveklabnik
Yuki Okushi [Thu, 29 Oct 2020 03:08:58 +0000 (12:08 +0900)]
Rollup merge of #78487 - rust-lang:GuillaumeGomez-patch-1, r=steveklabnik

Fix typo "compiltest"

Part of #70898.

3 years agoRollup merge of #78478 - hameerabbasi:const-generics-supertraits, r=lcnr
Yuki Okushi [Thu, 29 Oct 2020 03:08:56 +0000 (12:08 +0900)]
Rollup merge of #78478 - hameerabbasi:const-generics-supertraits, r=lcnr

Add const generics tests for supertraits + dyn traits.

Partially addresses #78433

3 years agoRollup merge of #78475 - RalfJung:validity-comment, r=oli-obk
Yuki Okushi [Thu, 29 Oct 2020 03:08:55 +0000 (12:08 +0900)]
Rollup merge of #78475 - RalfJung:validity-comment, r=oli-obk

fix a comment in validity check

A few things changed since that comment was written; update it to the current reality.

r? @oli-obk

3 years agoRollup merge of #78470 - camelid:fixup-std-path-intra-doc, r=jyn514
Yuki Okushi [Thu, 29 Oct 2020 03:08:53 +0000 (12:08 +0900)]
Rollup merge of #78470 - camelid:fixup-std-path-intra-doc, r=jyn514

Clean up intra-doc links in `std::path`

3 years agoRollup merge of #78460 - varkor:turbofish-string-generic, r=lcnr
Yuki Okushi [Thu, 29 Oct 2020 03:08:50 +0000 (12:08 +0900)]
Rollup merge of #78460 - varkor:turbofish-string-generic, r=lcnr

Adjust turbofish help message for const generics

Types are no longer special. (This message arguably only makes sense with `min_const_generics` or more, but we'll be there soon.)

r? @lcnr

3 years agoRollup merge of #78428 - JulianKnodt:invalid_patterns, r=lcnr
Yuki Okushi [Thu, 29 Oct 2020 03:08:48 +0000 (12:08 +0900)]
Rollup merge of #78428 - JulianKnodt:invalid_patterns, r=lcnr

MinConstGenerics UI test for invalid values for bool & char

This adds a test for `feature(min_const_generics)` with some invalid values for bools and chars and ensures that they do not ICE and error with understandable messages.

r? @lcnr

3 years agoRollup merge of #78224 - lcnr:repeat-expr, r=varkor
Yuki Okushi [Thu, 29 Oct 2020 03:08:40 +0000 (12:08 +0900)]
Rollup merge of #78224 - lcnr:repeat-expr, r=varkor

min_const_generics: allow ty param in repeat expr

implements https://rust-lang.zulipchat.com/#narrow/stream/260443-project-const-generics/topic/repeat.20expressions

Even with `min_const_generics` active, now keeps resulting in future compat warnings instead of hard errors.
Const parameters, for example `[0; N + 1]`, still result in hard errors during resolve.
```rust
#![allow(dead_code)]

fn foo<T>() {
    [0; std::mem::size_of::<*mut T>()];
}

struct Foo<T>(T);

impl<T> Foo<T> {
    const ASSOC: usize = 4;

    fn test() {
        [0; Self::ASSOC];
    }
}
```

r? @varkor cc @petrochenkov

3 years agoRollup merge of #77213 - ijackson:wip-rustdoc-settings, r=jyn514,GuillaumeGomez
Yuki Okushi [Thu, 29 Oct 2020 03:08:38 +0000 (12:08 +0900)]
Rollup merge of #77213 - ijackson:wip-rustdoc-settings, r=jyn514,GuillaumeGomez

rustdoc options to set default theme (and other settings)

Hi.  This is the MR I promised in #77024

It is a little more general than I envisaged there.  Once I had found the settings-handling machinery it seemed foolish to add this feature just for the theme.

Closes #77024

3 years ago[resolve] Use `unwrap_or_else` instead of `unwrap_or` in a hot path
Wesley Wiser [Wed, 28 Oct 2020 12:53:55 +0000 (08:53 -0400)]
[resolve] Use `unwrap_or_else` instead of `unwrap_or` in a hot path

This improves the performance of the `resolve_crate` function by 30% for
a very large single file crate with auto-generated C bindings.

3 years agoAuto merge of #78430 - Nadrieril:taking-constructors-seriously2, r=varkor
bors [Thu, 29 Oct 2020 01:37:49 +0000 (01:37 +0000)]
Auto merge of #78430 - Nadrieril:taking-constructors-seriously2, r=varkor

Clarify main code paths in exhaustiveness checking

This PR massively clarifies the main code paths of exhaustiveness checking, by using the `Constructor` enum to a fuller extent. I've been itching to write it for more than a year, but the complexity of matching consts had prevented me. Behold a massive simplification :D.
This in particular removes a fair amount of duplication between various parts, localizes code into methods of relevant types when applicable, makes some implicit assumptions explicit, and overall improves legibility a lot (or so I hope). Additionally, after my changes undoing #76918 turned out to be a noticeable perf gain.

As usual I tried my best to make the commits self-contained and easy to follow. I've also tried to keep the code well-commented, but I tend to forget how complex this file is; I'm happy to clarify things as needed.
My measurements show good perf improvements on the two match-heavy benchmarks (-18.0% on `unicode_normalization-check`! :D); I'd like a perf run to check the overall impact.

r? `@varkor`
`@rustbot` modify labels: +A-exhaustiveness-checking

3 years agoci: update x86_64-gnu and x86_64-gnu-debug to ubuntu:20.04
Josh Stone [Thu, 29 Oct 2020 00:26:03 +0000 (17:26 -0700)]
ci: update x86_64-gnu and x86_64-gnu-debug to ubuntu:20.04

The former `ubuntu:19.10` reached EOL in July, 2020, whereas
`ubuntu:20.04` is an LTS release supported until 2025.

These are non-dist CI images, so the impact should be low.

3 years agoTest building of libraries with rustc logging enabled
Tomasz Miąsko [Thu, 29 Oct 2020 00:00:00 +0000 (00:00 +0000)]
Test building of libraries with rustc logging enabled

3 years agoAdd support for rustc-env and unset-rustc-env for aux-builds
Tomasz Miąsko [Thu, 29 Oct 2020 00:00:00 +0000 (00:00 +0000)]
Add support for rustc-env and unset-rustc-env for aux-builds

3 years agoUse RwLock instead of Lock for SourceMap::files
Tomasz Miąsko [Thu, 29 Oct 2020 00:00:00 +0000 (00:00 +0000)]
Use RwLock instead of Lock for SourceMap::files

3 years agoAvoid BorrowMutError with RUSTC_LOG=debug
Tomasz Miąsko [Thu, 29 Oct 2020 00:00:00 +0000 (00:00 +0000)]
Avoid BorrowMutError with RUSTC_LOG=debug

$ touch empty.rs
$ env RUSTC_LOG=debug rustc +stage1 --crate-type=lib empty.rs

Fails with a `BorrowMutError` because source map files are already
borrowed while `features_query` attempts to format a log message
containing a span.

Release the borrow before the query to avoid the issue.

3 years agoDon't say you "should" use fully qualified syntax
Camelid [Wed, 28 Oct 2020 23:47:05 +0000 (16:47 -0700)]
Don't say you "should" use fully qualified syntax

That recommendation was removed last year; there isn't a particular
style that is officially recommended anymore.

3 years agoFix broken intra-doc link
Camelid [Mon, 31 Aug 2020 04:22:10 +0000 (21:22 -0700)]
Fix broken intra-doc link

3 years agoExplain fully qualified syntax for `Rc` and `Arc`
Camelid [Mon, 31 Aug 2020 01:40:56 +0000 (18:40 -0700)]
Explain fully qualified syntax for `Rc` and `Arc`

3 years agoMerge commit '645ef505da378b6f810b1567806d1bcc2856395f' into clippyup
Eduardo Broto [Wed, 28 Oct 2020 22:36:07 +0000 (23:36 +0100)]
Merge commit '645ef505da378b6f810b1567806d1bcc2856395f' into clippyup

3 years agoAuto merge of #6257 - giraffate:sync-from-rust, r=ebroto
bors [Wed, 28 Oct 2020 21:53:23 +0000 (21:53 +0000)]
Auto merge of #6257 - giraffate:sync-from-rust, r=ebroto

Rustup

changelog: none

3 years agoReinstate link to temporary_cstr_as_ptr
Eduardo Broto [Wed, 28 Oct 2020 21:36:22 +0000 (22:36 +0100)]
Reinstate link to temporary_cstr_as_ptr

3 years agoDeprecate temporary_cstr_as_ptr
Eduardo Broto [Wed, 28 Oct 2020 21:32:13 +0000 (22:32 +0100)]
Deprecate temporary_cstr_as_ptr

3 years agorustdoc: Use Vec::into_iter() rather than drain()
Ian Jackson [Wed, 28 Oct 2020 21:29:21 +0000 (21:29 +0000)]
rustdoc: Use Vec::into_iter() rather than drain()

This allows removing a `mut` which is nicer.

Suggested-by: @jyn514
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoAdd a comment about non-panicking of splitn().next().unwrap()
Ian Jackson [Wed, 28 Oct 2020 21:25:47 +0000 (21:25 +0000)]
Add a comment about non-panicking of splitn().next().unwrap()

Co-authored-by: Joshua Nelson <joshua@yottadb.com>
3 years agorustdoc: Fix some nits
Ian Jackson [Wed, 28 Oct 2020 20:12:15 +0000 (20:12 +0000)]
rustdoc: Fix some nits

* Remove a needless comma in the Rust code
* Replace double spaces after full stops with single spaces

Requested-by: @GuillaumeGomez
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoAuto merge of #78415 - tgnottingham:expn_id_tag_hash, r=Aaron1011
bors [Wed, 28 Oct 2020 20:03:55 +0000 (20:03 +0000)]
Auto merge of #78415 - tgnottingham:expn_id_tag_hash, r=Aaron1011

rustc_span: avoid hashing ExpnId tag when using cached hash

3 years agoApply suggestions from code review
Nadrieril [Wed, 28 Oct 2020 19:03:49 +0000 (19:03 +0000)]
Apply suggestions from code review

Co-authored-by: Who? Me?! <mark-i-m@users.noreply.github.com>
Co-authored-by: varkor <github@varkor.com>
3 years agoFix typos
Dániel Buga [Wed, 28 Oct 2020 18:31:16 +0000 (19:31 +0100)]
Fix typos

3 years agoUpdate cargo
Eric Huss [Wed, 28 Oct 2020 18:14:47 +0000 (11:14 -0700)]
Update cargo

3 years agorustdoc: Provide a --default-theme THEME option
Ian Jackson [Wed, 28 Oct 2020 17:53:12 +0000 (17:53 +0000)]
rustdoc: Provide a --default-theme THEME option

This is a fairly simple special case of --default-eetting.  We must
set both "theme" and "use-system-theme".

Providing it separately enables us to document a way to set the theme
without expoosing the individual settings keywords, which are quite
complex.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agorustdoc: Provide a general --default-setting SETTING[=VALUE] option
Ian Jackson [Tue, 13 Oct 2020 17:52:43 +0000 (18:52 +0100)]
rustdoc: Provide a general --default-setting SETTING[=VALUE] option

We just plumb through what the user tells us.

This is flagged as unstable, mostly because I don't understand the
compatibility rules that rustdoc obeys for local storage data, and how
error handling of invalid data works.

We collect() the needed HashMap from Vec of Vecs of (key, value)
pairs, so that there is a nice place to add new more-specific options.
It would have been possible to use Extend::extend but doing it this
way ensures that all the used inputs are (and will stay) right next to
each other.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agorustdoc: Provide a way to set the default settings from Rust code
Ian Jackson [Wed, 23 Sep 2020 21:44:54 +0000 (22:44 +0100)]
rustdoc: Provide a way to set the default settings from Rust code

rustdoc has various user-configurable preferences.  These are recorded
in web Local Storage (where available).  But we want to provide a way
to configure the default default, including for when web storage is
not available.

getSettingValue is the function responsible for looking up these
settings.  Here we make it fall back some in-DOM data, which
ultimately comes from RenderOptions.default_settings.

Using HTML data atrtributes is fairly convenient here, dsspite the
need to transform between snake and kebab case to avoid the DOM
converting kebab case to camel case (!)

We cache the element and dataset lookup in a global variable, to
ensure that getSettingValue remains fast.

The DOM representation has to be in an element which precedes the
inclusion of storage.js.  That means it has to be in the <head> and we
should not use an empty <div> as the container (although most browsers
will accept that).  An empty <script> element provides a convenient
and harmless container object.  <meta> would be another possibility
but runs a greater risk of having unwanted behaviours on weird
browsers.

We trust the RenderOptions not to contain unhelpful setting names,
which don't fit nicely into an HTML attribute.  It's awkward to quote
dataset keys.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoUpdate books
Eric Huss [Wed, 28 Oct 2020 17:53:15 +0000 (10:53 -0700)]
Update books

3 years agoAuto merge of #78414 - nox:function-sections, r=nagisa,bjorn3
bors [Wed, 28 Oct 2020 17:47:36 +0000 (17:47 +0000)]
Auto merge of #78414 - nox:function-sections, r=nagisa,bjorn3

Implement -Z function-sections=yes|no

This lets rustc users tweak whether all functions should be put in their own TEXT section, using whatever default value the target defines if the flag is missing.

I'm having fun experimenting with musl libc and trying to implement the start symbol in Rust, that means avoiding code that requires relocations, and AFAIK putting everything in its own section makes the toolchain generate `GOTPCREL` relocations for symbols that could use plain old PC-relative addressing (at least on `x86_64`) if they were all in the same section.

3 years agoInline NonZeroN::from(n)
Peter Todd [Wed, 28 Oct 2020 17:26:44 +0000 (13:26 -0400)]
Inline NonZeroN::from(n)

3 years agoUse `double_neg.stderr`
Takayuki Nakata [Wed, 28 Oct 2020 16:02:09 +0000 (01:02 +0900)]
Use `double_neg.stderr`

3 years agorustdoc: js: Use getSettingValue for all rustdoc-* values
Ian Jackson [Wed, 23 Sep 2020 21:14:43 +0000 (22:14 +0100)]
rustdoc: js: Use getSettingValue for all rustdoc-* values

Currently, storage.js and main.js have many open-coded calls to
getCurrentValue for "rustdoc-" values, but these are settings and
should be handled by getSettingValue.

So make getSettingValue part of storage.js (where everyone can call
it) and use it everywhere.

No functional change yet.  We are going to make getSettingValue do
something more sophisticated in a moment.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoAuto merge of #78409 - pietroalbini:build-manifest-checksum-cache, r=Mark-Simulacrum
bors [Wed, 28 Oct 2020 14:52:20 +0000 (14:52 +0000)]
Auto merge of #78409 - pietroalbini:build-manifest-checksum-cache, r=Mark-Simulacrum

Add checksums cache to build-manifest

During the release process we're currently calculating the SHA256 of each file three times:

1. In `build-manifest`, to fill the `hash = "f00"` keys of the manifests.
2. In `promote-release`, to generate the `.sha256` files.
3. In `promote-release`, to generate the `.asc` GPG signatures.

Calculations 1. and 2. could be merged into a single one if there was a way for `build-manifest` to pass the checksums it generated over to `promote-release`. Unfortunately calculation 3. can't be merged as GPG requires extra metadata to be hashed.

This PR adds support for merging 1. and 2. by creating the `BUILD_MANIFEST_CHECKSUM_CACHE` environment variable, which points to a JSON file storing a cache of all the calculated checksums. `build-manifest` will load it at startup and avoid generating existing checksums, and it will dump its internal checksums cache into it when it exits successfully.

This PR also allows to run `build-manifest` multiple times without the need to wait for checksums to be calculated in the following invocations. The speedup will allow to work torwards a fix for https://github.com/rust-lang/promote-release/issues/15 without impacting the release process duration nor our storage costs.

This PR can be reviewed commit-by-commit.
r? `@Mark-Simulacrum`

3 years agoFix typo "compiltest"
Guillaume Gomez [Wed, 28 Oct 2020 14:51:26 +0000 (15:51 +0100)]
Fix typo "compiltest"

3 years agobuild-manifest: include artifacts in a new table
Pietro Albini [Wed, 28 Oct 2020 13:41:02 +0000 (14:41 +0100)]
build-manifest: include artifacts in a new table

This commit adds to the generated manifest all files we ship that are
not rustup components, namely:

* Source code tarballs (rustc-{channel}-src.tar.xz)
* Windows installers (rust-{channel}-{target}.msi)
* macOS installers (rust-{channel}-{target}.pkg)

Those files are included in a new "artifacts" table of the manifest, to
avoid interfering with existing rustup installations.

3 years agoAssert in every case.
Hameer Abbasi [Wed, 28 Oct 2020 12:51:15 +0000 (12:51 +0000)]
Assert in every case.

3 years agoExtend test to cover dyn methods/functions.
Hameer Abbasi [Wed, 28 Oct 2020 12:29:13 +0000 (12:29 +0000)]
Extend test to cover dyn methods/functions.

3 years agoRemove irrelevant FIXME
varkor [Wed, 28 Oct 2020 00:46:53 +0000 (00:46 +0000)]
Remove irrelevant FIXME

3 years agoAdjust turbofish help message for const generics
varkor [Wed, 28 Oct 2020 00:41:40 +0000 (00:41 +0000)]
Adjust turbofish help message for const generics

3 years agoAdd const generics tests for supertraits + dyn traits.
Hameer Abbasi [Wed, 28 Oct 2020 10:36:19 +0000 (10:36 +0000)]
Add const generics tests for supertraits + dyn traits.

3 years agofix a comment in validity check
Ralf Jung [Wed, 28 Oct 2020 09:39:21 +0000 (10:39 +0100)]
fix a comment in validity check