]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoAdd test for #66930
Yuki Okushi [Thu, 28 May 2020 07:43:03 +0000 (16:43 +0900)]
Add test for #66930

4 years agoAuto merge of #72494 - lcnr:predicate-cleanup, r=nikomatsakis
bors [Thu, 28 May 2020 00:18:52 +0000 (00:18 +0000)]
Auto merge of #72494 - lcnr:predicate-cleanup, r=nikomatsakis

Pass more `Copy` types by value.

There are a lot of locations where we pass `&T where T: Copy` by reference,
which should both be slightly less performant and less readable IMO.

This PR currently consists of three fairly self contained commits:

- passes `ty::Predicate` by value and stops depending on `AsRef<ty::Predicate>`.
- changes `<&List<_>>::into_iter` to iterate over the elements by value. This would break `List`s
  of non copy types. But as the only list constructor requires `T` to be copy anyways, I think
  the improved readability is worth this potential future restriction.
- passes `mir::PlaceElem` by value. Mir currently has quite a few copy types which are passed by reference, e.g. `Local`. As I don't have a lot of experience working with MIR, I mostly did this to get some feedback from people who use MIR more frequently
- tries to reuse `ty::Predicate` in case it did not change in some places, which should hopefully
  fix the regression caused by #72055

r? @nikomatsakis for the first commit, which continues the work of #72055 and makes adding `PredicateKind::ForAll` slightly more pleasant. Feel free to reassign though

4 years agoAuto merge of #71996 - Marwes:detach_undo_log, r=nikomatsakis
bors [Wed, 27 May 2020 18:31:45 +0000 (18:31 +0000)]
Auto merge of #71996 - Marwes:detach_undo_log, r=nikomatsakis

perf: Revert accidental inclusion of a part of #69218

This was accidentally included in #69464 after a rebase and given
how much `inflate` and `keccak` stresses the obligation forest seems
like a likely culprit to the regression in those benchmarks.

(It is necessary in #69218 as obligation forest needs to accurately
track the root variables or unifications will get lost)

4 years agoAuto merge of #72601 - JohnTitor:deps, r=Mark-Simulacrum
bors [Wed, 27 May 2020 14:48:33 +0000 (14:48 +0000)]
Auto merge of #72601 - JohnTitor:deps, r=Mark-Simulacrum

Update transitive dependencies to remove some deps

Similar to #71919, this removes some (duplicate) dependencies.

4 years agoAuto merge of #72639 - Dylan-DPC:rollup-76upj51, r=Dylan-DPC
bors [Wed, 27 May 2020 11:18:53 +0000 (11:18 +0000)]
Auto merge of #72639 - Dylan-DPC:rollup-76upj51, r=Dylan-DPC

Rollup of 6 pull requests

Successful merges:

 - #72348 (Fix confusing error message for comma typo in multiline statement)
 - #72533 (Resolve UB in Arc/Weak interaction (2))
 - #72548 (Add test for old compiler ICE when using `Borrow`)
 - #72606 (Small cell example update)
 - #72610 (Remove font-display settings)
 - #72626 (Add remark regarding DoubleEndedIterator)

Failed merges:

r? @ghost

4 years agoRollup merge of #72626 - phimuemue:doubleendediter_doc, r=dtolnay
Dylan DPC [Wed, 27 May 2020 01:09:23 +0000 (03:09 +0200)]
Rollup merge of #72626 - phimuemue:doubleendediter_doc, r=dtolnay

Add remark regarding DoubleEndedIterator

While reviewing https://github.com/rust-itertools/itertools/pull/442/commits/14293bd18f01b6bd4856816222f808f46603eccd#diff-2c16d2ada06ad2fd1fc754679646d471, I realized that a `DoubleEndedIterator` may yield different elements depending on whether it is traversed forwards or backwards. (Not only the *order*, but possibly also the yielded values.)

I found this remarkable, but could not find anything in the current docs, so I thought it may be worth mentioning this explicitly.

Unfortunately, I could not test these changes locally (`rustdoc` complains about `unresolved import`). Sorry if this causes headache.

If I should change something, please let me know. If it seems too trivial, feel free to just close this PR.

4 years agoRollup merge of #72610 - GuillaumeGomez:revert-unwanted-css-changes, r=Dylan-DPC
Dylan DPC [Wed, 27 May 2020 01:09:21 +0000 (03:09 +0200)]
Rollup merge of #72610 - GuillaumeGomez:revert-unwanted-css-changes, r=Dylan-DPC

Remove font-display settings

Since for the moment, the result isn't as expected since #72092 when not using docs locally, let's revert them.

r? @Dylan-DPC

4 years agoRollup merge of #72606 - GuillaumeGomez:cell-example-update, r=Dylan-DPC
Dylan DPC [Wed, 27 May 2020 01:09:19 +0000 (03:09 +0200)]
Rollup merge of #72606 - GuillaumeGomez:cell-example-update, r=Dylan-DPC

Small cell example update

r? @Dylan-DPC

4 years agoRollup merge of #72548 - rossmacarthur:add-mcve-for-50687, r=nikomatsakis
Dylan DPC [Wed, 27 May 2020 01:09:15 +0000 (03:09 +0200)]
Rollup merge of #72548 - rossmacarthur:add-mcve-for-50687, r=nikomatsakis

Add test for old compiler ICE when using `Borrow`

The original issue was caused by implementing `Borrow` on a local type and using the tokio-reactor crate which had this impl: https://github.com/tokio-rs/tokio/blob/tokio-0.1.4/tokio-reactor/src/poll_evented.rs#L547-L577

This causes an ICE on Rust 1.27.0:

```console
$ RUSTUP_TOOLCHAIN=1.27.0 rustc src/test/ui/issues/issue-50687-ice-on-borrow.rs
error: internal compiler error: librustc/traits/structural_impls.rs:180: impossible case reached

thread 'main' panicked at 'Box<Any>', librustc_errors/lib.rs:554:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: aborting due to previous error

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.27.0 (3eda71b00 2018-06-19) running on x86_64-apple-darwin
```

Closes #50687

4 years agoRollup merge of #72533 - Diggsey:db-fix-arc-ub2, r=dtolnay
Dylan DPC [Wed, 27 May 2020 01:09:12 +0000 (03:09 +0200)]
Rollup merge of #72533 - Diggsey:db-fix-arc-ub2, r=dtolnay

Resolve UB in Arc/Weak interaction (2)

Use raw pointers to avoid making any assertions about the data field.

Follow up from #72479, see that PR for more detail on the motivation.

@RalfJung I was able to avoid a lot of the changes to `Weak`, by making a helper type (`WeakInner`) - because of auto-deref and because the fields have the same name, the rest of the code continues to compile.

4 years agoRollup merge of #72348 - chrissimpkins:fix-72253, r=estebank
Dylan DPC [Wed, 27 May 2020 01:09:11 +0000 (03:09 +0200)]
Rollup merge of #72348 - chrissimpkins:fix-72253, r=estebank

Fix confusing error message for comma typo in multiline statement

Fixes #72253.  Expands on the issue with a colon typo check.

r? @estebank

cc @ehuss

4 years agoAuto merge of #72596 - ehuss:update-cargo, r=ehuss
bors [Wed, 27 May 2020 01:08:36 +0000 (01:08 +0000)]
Auto merge of #72596 - ehuss:update-cargo, r=ehuss

Update cargo

7 commits in 500b2bd01c958f5a33b6aa3f080bea015877b83c..9fcb8c1d20c17f51054f7aa4e08ff28d381fe096
2020-05-18 17:12:54 +0000 to 2020-05-25 16:25:36 +0000
- Bump to semver 0.10 for `VersionReq::is_exact` (rust-lang/cargo#8279)
- Fix panic with `cargo tree --target=all -Zfeatures=all` (rust-lang/cargo#8269)
- Fix nightly tests with llvm-tools. (rust-lang/cargo#8272)
- Provide better error messages for a bad `patch`. (rust-lang/cargo#8248)
- Try installing exact versions before updating (rust-lang/cargo#8022)
- Document unstable `strip` profile feature (rust-lang/cargo#8262)
- Add option to strip binaries (rust-lang/cargo#8246)

4 years agoAuto merge of #72627 - Dylan-DPC:rollup-bavnoq5, r=Dylan-DPC
bors [Tue, 26 May 2020 20:58:52 +0000 (20:58 +0000)]
Auto merge of #72627 - Dylan-DPC:rollup-bavnoq5, r=Dylan-DPC

Rollup of 6 pull requests

Successful merges:

 - #72270 (add a lint against references to packed fields)
 - #72294 (JS cleanup)
 - #72342 (Warn about unused crate deps)
 - #72401 (Use correct function for detecting `const fn` in unsafety checking)
 - #72581 (Allow unlabeled breaks from desugared `?` in labeled blocks)
 - #72592 (Update books)

Failed merges:

r? @ghost

4 years agoimprove error message for unexpected comma token in multiline block
Chris Simpkins [Tue, 26 May 2020 20:52:16 +0000 (16:52 -0400)]
improve error message for unexpected comma token in multiline block

confusing diagnostics, issue #72253

add test for confusing error message, issue-72253

remove is_multiline check, refactor to self.expect(&token:Semi)

update issue-72253 tests

return Ok

4 years agoRollup merge of #72592 - ehuss:update-books, r=ehuss
Dylan DPC [Tue, 26 May 2020 20:11:34 +0000 (22:11 +0200)]
Rollup merge of #72592 - ehuss:update-books, r=ehuss

Update books

## reference

7 commits in 892b928b565e35d25b6f9c47faee03b94bc41489..becdca9477c9eafa96a4eea5156fe7a2730d9dd2
2020-05-11 11:13:51 -0700 to 2020-05-21 21:08:02 +0100
- Update tuple index token. (rust-lang-nursery/reference#814)
- Fixes minor errors (rust-lang-nursery/reference#818)
- Update that macros can be deprecated. (rust-lang-nursery/reference#813)
- work on char/str descriptions (rust-lang-nursery/reference#809)
- cfg_attr needs a valid predicate (rust-lang-nursery/reference#812)
- Account for removal of UB in float-to-int casts (rust-lang-nursery/reference#810)
- Fix stray plus signs. (rust-lang-nursery/reference#811)

## book

6 commits in 6247be15a7f7509559f7981ee2209b9e0cc121df..e8a4714a9d8a6136a59b8e63544e149683876e36
2020-05-03 10:55:09 -0500 to 2020-05-25 10:29:27 -0500
- code is 1024 now, not 512
- Clean up install a bit
- We don't need build.sh anymore
- Fix CI status in README
- Port to github actions (rust-lang/book#2337)
- operating system -&gt; allocator

## rust-by-example

5 commits in ab072b14393cbd9e8a1d1d75879bf51e27217bbb..7aa82129aa23e7e181efbeb8da03a2a897ef6afc
2020-05-09 08:46:39 -0300 to 2020-05-25 14:54:26 -0300
- Person of age 0 is alive (rust-lang/rust-by-example#1348)
- Gramatical fix in std/rc.md (rust-lang/rust-by-example#1347)
- Capture example should use String (rust-lang/rust-by-example#1331)
- Fix empty bound examples (rust-lang/rust-by-example#1343)
- Fix an inline comment in macros/repeat.md (rust-lang/rust-by-example#1344)

## edition-guide

1 commits in 49270740c7a4bff2763e6bc730b191d45b7d5167..0a8ab5046829733eb03df0738c4fafaa9b36b348
2020-05-11 08:50:29 -0500 to 2020-05-18 08:34:23 -0500
- Changes for Rust 1.32 & setup for edition-next (rust-lang-nursery/edition-guide#213)

## embedded-book

3 commits in 366c50a03bed928589771eba8a6f18e0c0c01d23..5555a97f04ad7974ac6fb8fb47c267c4274adf4a
2020-05-07 09:04:42 +0000 to 2020-05-25 18:00:51 +0000
- Remove reference to const-fn feature of cortex-m. Closes rust-embedded/book#242.  (rust-embedded/book#243)
- Spelling: Appplication -&gt; Application  (rust-embedded/book#241)
- QEMU debugging updates  (rust-embedded/book#239)

4 years agoRollup merge of #72581 - samrat:allow-desugared-break-in-labeled-block, r=davidtwco
Dylan DPC [Tue, 26 May 2020 20:11:33 +0000 (22:11 +0200)]
Rollup merge of #72581 - samrat:allow-desugared-break-in-labeled-block, r=davidtwco

Allow unlabeled breaks from desugared `?` in labeled blocks

`?` is desugared into a `break` targeting the innermost `try` scope in which it resides. The `break` however will not have a label. https://github.com/rust-lang/rust/blob/master/src/librustc_ast_lowering/expr.rs#L1560

Since the `target` of the `break` is known, the compiler should not complain about an unlabeled jump for `break`s desugared from `?`.

Closes https://github.com/rust-lang/rust/issues/72483

4 years agoRollup merge of #72401 - ecstatic-morse:issue-72394, r=eddyb
Dylan DPC [Tue, 26 May 2020 20:11:31 +0000 (22:11 +0200)]
Rollup merge of #72401 - ecstatic-morse:issue-72394, r=eddyb

Use correct function for detecting `const fn` in unsafety checking

Resolves #72394.

4 years agoRollup merge of #72342 - jsgf:warn-unused-deps, r=petrochenkov
Dylan DPC [Tue, 26 May 2020 20:11:29 +0000 (22:11 +0200)]
Rollup merge of #72342 - jsgf:warn-unused-deps, r=petrochenkov

Warn about unused crate deps

Implements #57274 by adding -Wunused-crate-dependencies. This will warn about any `--extern` option on the command line which isn't referenced by the crate source either via `use` or `extern crate`.

Crates which are added for some side effect but are otherwise unreferenced - such as for symbols they define - the warning can be suppressed with `use somecrate as _;`.

If a crate has multiple aliases (eg using `foo = { package = "bar" }` in `Cargo.toml`), then it will warn about each unused alias.

This does not consider crate added by some other means than `--extern`, including the standard library. It also doesn't consider any crate without `add_prelude` set (though I'm not sure about this).

Unfortunately this probably [does not yet work well with Cargo](https://github.com/rust-lang/rust/issues/57274#issuecomment-624839355) as it will over-specify crates, causing spurious warnings. As a result, this lint is "allow" by default and must be explicitly enabled either via `#![warn(unused_crate_deps)]` or with `-Wunused-crate-deps`.

4 years agoRollup merge of #72294 - GuillaumeGomez:js-cleanup, r=kinnison
Dylan DPC [Tue, 26 May 2020 20:11:26 +0000 (22:11 +0200)]
Rollup merge of #72294 - GuillaumeGomez:js-cleanup, r=kinnison

JS cleanup

The goal here is just to improve the source code a bit. I recommend to review one commit at a time, otherwise it might not make much sense. :)

The biggest commit is the second one: to prevent to have "global" variables declared in `main.js` (and thus prevent name conflict or overwriting), I moved such code into anonymous functions.

r? @kinnison

cc @rust-lang/rustdoc

4 years agoRollup merge of #72270 - RalfJung:lint-ref-to-packed, r=oli-obk
Dylan DPC [Tue, 26 May 2020 20:11:22 +0000 (22:11 +0200)]
Rollup merge of #72270 - RalfJung:lint-ref-to-packed, r=oli-obk

add a lint against references to packed fields

Creating a reference to an insufficiently aligned packed field is UB and should be disallowed, both inside and outside of `unsafe` blocks. However, currently there is no stable alternative (https://github.com/rust-lang/rust/issues/64490) so all we do right now is have a future incompatibility warning when doing this outside `unsafe` (https://github.com/rust-lang/rust/issues/46043).

This adds an allow-by-default lint. @retep998 suggested this can help early adopters avoid issues. It also means we can then do a crater run where this is deny-by-default as suggested by @joshtriplett.

I guess the main thing to bikeshed is the lint name. I am not particularly happy with "packed_references" as it sounds like the packed field has reference type. I chose this because it is similar to "safe_packed_borrows". What about "reference_to_packed" or "unaligned_reference" or so?

4 years agoAdd remark regarding DoubleEndedIterator
philipp [Tue, 26 May 2020 19:38:44 +0000 (21:38 +0200)]
Add remark regarding DoubleEndedIterator

4 years agoAuto merge of #71931 - alexcrichton:reproducible-macos, r=eddyb
bors [Tue, 26 May 2020 17:38:47 +0000 (17:38 +0000)]
Auto merge of #71931 - alexcrichton:reproducible-macos, r=eddyb

Export ZERO_AR_DATE for macos linker invocations

This commit attempts to improve reproducibility of builds on macOS by
exporting the `ZERO_AR_DATE=1` environment variable for all invocations
of the linker. While it looks like this env var is targeted at just the
`ar` command (which does actually read this) it appears that recent-ish
versions of the linker *also* read this environment variable. This
env var forces the linker to set a deterministic zero value for the
mtime in the N_OSO field of the object file.

Currently it's believe that older versions of the linker will simply
ignore this env var, while newer versions will read it and produce a
deterministic output for compilations with debuginfo.

Closes #47086
Closes #66568

4 years agoExport ZERO_AR_DATE for macos linker invocations
Alex Crichton [Tue, 5 May 2020 21:25:58 +0000 (14:25 -0700)]
Export ZERO_AR_DATE for macos linker invocations

This commit attempts to improve reproducibility of builds on macOS by
exporting the `ZERO_AR_DATE=1` environment variable for all invocations
of the linker. While it looks like this env var is targeted at just the
`ar` command (which does actually read this) it appears that recent-ish
versions of the linker *also* read this environment variable. This
env var forces the linker to set a deterministic zero value for the
mtime in the N_OSO field of the object file.

Currently it's believe that older versions of the linker will simply
ignore this env var, while newer versions will read it and produce a
deterministic output for compilations with debuginfo.

Closes #47086
Closes #66568

4 years agoImport missing functions from storage.js
Guillaume Gomez [Tue, 26 May 2020 13:11:36 +0000 (15:11 +0200)]
Import missing functions from storage.js

4 years agoImprove formatting
Guillaume Gomez [Tue, 26 May 2020 09:48:59 +0000 (11:48 +0200)]
Improve formatting

4 years agoRemove font-display settings
Guillaume Gomez [Tue, 26 May 2020 12:11:35 +0000 (14:11 +0200)]
Remove font-display settings

4 years agoAuto merge of #71900 - GuillaumeGomez:clean-up-rustdoc, r=ollie27,kinnison
bors [Tue, 26 May 2020 10:42:41 +0000 (10:42 +0000)]
Auto merge of #71900 - GuillaumeGomez:clean-up-rustdoc, r=ollie27,kinnison

Clean up rustdoc source code

Fixes #70498.

r? @kinnison

cc @rust-lang/rustdoc

4 years agoFix eslint lints
Guillaume Gomez [Sun, 17 May 2020 13:34:59 +0000 (15:34 +0200)]
Fix eslint lints

4 years agoReexported functions are now declared directly as "windows" field
Guillaume Gomez [Sun, 17 May 2020 12:57:19 +0000 (14:57 +0200)]
Reexported functions are now declared directly as "windows" field

4 years agoMove "global" code into anonymous functions
Guillaume Gomez [Sun, 17 May 2020 12:49:04 +0000 (14:49 +0200)]
Move "global" code into anonymous functions

4 years agoMove focusSearchBar and defocusSearchBar functions to the top of the file with other...
Guillaume Gomez [Sun, 17 May 2020 12:06:21 +0000 (14:06 +0200)]
Move focusSearchBar and defocusSearchBar functions to the top of the file with other functions

4 years agoSmall cell example update
Guillaume Gomez [Tue, 26 May 2020 08:47:54 +0000 (10:47 +0200)]
Small cell example update

4 years agoUpdate allowed crates list
Yuki Okushi [Tue, 26 May 2020 07:38:09 +0000 (16:38 +0900)]
Update allowed crates list

4 years agoAuto merge of #72093 - jonas-schievink:unmut, r=oli-obk
bors [Tue, 26 May 2020 07:20:52 +0000 (07:20 +0000)]
Auto merge of #72093 - jonas-schievink:unmut, r=oli-obk

Avoid `Operand::Copy` with `&mut T`

This is generally unsound to do, as the copied type is assumed to implement
`Copy`.

Closes https://github.com/rust-lang/rust/issues/46420

4 years agoImplement warning for unused dependencies.
Jeremy Fitzhardinge [Sun, 17 May 2020 08:48:01 +0000 (01:48 -0700)]
Implement warning for unused dependencies.

This will print a diagnostic for crates which are mentioned as `--extern`
arguments on the command line, but are never referenced from the source.

This diagnostic is controlled by `-Wunused-crate-dependencies` or
`#![warn(unused_crate_dependencies)]` and is "allow" by default.

There are cases where certain crates need to be linked in but are not
directly referenced - for example if they are providing symbols for C
linkage. In this case the warning can be suppressed with
`use needed_crate as _;`.

Thanks to @petrochenkov for simplified core.

Resolves issue #57274

4 years agocargo update -p atty --aggressive
Yuki Okushi [Tue, 26 May 2020 04:35:21 +0000 (13:35 +0900)]
cargo update -p atty --aggressive

    Updating atty v0.2.11 -> v0.2.14
    Removing c2-chacha v0.2.3
    Updating cc v1.0.52 -> v1.0.54
    Updating ppv-lite86 v0.2.6 -> v0.2.8
    Updating rand_chacha v0.2.1 -> v0.2.2
    Removing redox_termios v0.1.1
    Removing termion v1.5.1

4 years agocargo update -p rls-analysis
Yuki Okushi [Tue, 26 May 2020 04:33:06 +0000 (13:33 +0900)]
cargo update -p rls-analysis

    Removing itertools v0.7.8
    Updating rls-analysis v0.18.0 -> v0.18.1
    Updating rls-span v0.5.1 -> v0.5.2

4 years agocargo update -p regex --aggressive
Yuki Okushi [Tue, 26 May 2020 04:04:59 +0000 (13:04 +0900)]
cargo update -p regex --aggressive

    Updating aho-corasick v0.7.3 -> v0.7.10
    Updating memchr v2.3.2 -> v2.3.3
    Updating regex v1.1.6 -> v1.3.7
    Updating regex-syntax v0.6.6 -> v0.6.17
    Removing thread_local v0.3.6
    Removing ucd-util v0.1.3
    Removing utf8-ranges v1.0.2

4 years agocargo update -p colored
Yuki Okushi [Tue, 26 May 2020 04:00:42 +0000 (13:00 +0900)]
cargo update -p colored

    Updating colored v1.6.0 -> v1.9.3
    Removing lazy_static v0.2.11

4 years agoAuto merge of #71487 - rcoh:71471-shebang, r=petrochenkov
bors [Tue, 26 May 2020 01:43:40 +0000 (01:43 +0000)]
Auto merge of #71487 - rcoh:71471-shebang, r=petrochenkov

Fix bug in shebang handling

Shebang handling was too agressive in stripping out the first line in cases where it is actually _not_ a shebang, but instead, valid rust (#70528). This is a second attempt at resolving this issue (the first attempt was reverted, for, among other reasons, causing an ICE in certain cases (#71372, #71471).

The behavior is now codified by a number of UI tests, but simply:
For the first line to be a shebang, the following must all be true:
1. The line must start with `#!`
2. The line must contain a non-whitespace character after `#!`
3. The next character in the file, ignoring comments & whitespace must not be `[`

I believe this is a strict superset of what we used to allow, so perhaps a crater run is unnecessary, but probably not a terrible idea.

Fixes #70528

4 years agoUpdate cargo
Eric Huss [Tue, 26 May 2020 00:56:32 +0000 (17:56 -0700)]
Update cargo

4 years agoUpdate books
Eric Huss [Tue, 26 May 2020 00:17:27 +0000 (17:17 -0700)]
Update books

4 years agoAuto merge of #72589 - Dylan-DPC:rollup-7l2a2bo, r=Dylan-DPC
bors [Mon, 25 May 2020 22:04:44 +0000 (22:04 +0000)]
Auto merge of #72589 - Dylan-DPC:rollup-7l2a2bo, r=Dylan-DPC

Rollup of 5 pull requests

Successful merges:

 - #72061 (add regression tests for stalled_on const vars)
 - #72424 (fix ICE when debug-printing MIR)
 - #72450 (Fix ice-#72442)
 - #72451 (Perform MIR NRVO even if types don't match)
 - #72538 (Removed all instances of const_field.)

Failed merges:

r? @ghost

4 years agoRollup merge of #72538 - rakshith-ravi:refactor/remove-const-query, r=oli-obk
Dylan DPC [Mon, 25 May 2020 21:58:59 +0000 (23:58 +0200)]
Rollup merge of #72538 - rakshith-ravi:refactor/remove-const-query, r=oli-obk

Removed all instances of const_field.

Fixes #72264

r? @oli-obk

4 years agoRollup merge of #72451 - ecstatic-morse:nrvo-type-mismatch, r=matthewjasper
Dylan DPC [Mon, 25 May 2020 21:58:57 +0000 (23:58 +0200)]
Rollup merge of #72451 - ecstatic-morse:nrvo-type-mismatch, r=matthewjasper

Perform MIR NRVO even if types don't match

This is the most straightforward way to resolve #72428, but it could cause problems in codegen since the type of `_0` may no longer match the return type of the body.

4 years agoRollup merge of #72450 - csmoe:issue-72442, r=oli-obk
Dylan DPC [Mon, 25 May 2020 21:58:56 +0000 (23:58 +0200)]
Rollup merge of #72450 - csmoe:issue-72442, r=oli-obk

Fix ice-#72442

Closes #72442
Closes #72426
r? @oli-obk

4 years agoRollup merge of #72424 - RalfJung:mir-print-ice, r=oli-obk
Dylan DPC [Mon, 25 May 2020 21:58:54 +0000 (23:58 +0200)]
Rollup merge of #72424 - RalfJung:mir-print-ice, r=oli-obk

fix ICE when debug-printing MIR

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

This bug also makes debugging Miri harder as `MIRI_LOG=info` ICEs.

4 years agoRollup merge of #72061 - lcnr:const-inference-test, r=eddyb
Dylan DPC [Mon, 25 May 2020 21:58:53 +0000 (23:58 +0200)]
Rollup merge of #72061 - lcnr:const-inference-test, r=eddyb

add regression tests for stalled_on const vars

closes #70180

Afaict this has been fixed sometime after #70213

`trait_ref_type_vars` correctly adds const infers and I did not find any remaining `FIXME`s which correspond to this issue.
https://github.com/rust-lang/rust/blob/7c59a81a5fcbaaca311f744cd7c68d99bfbb05d3/src/librustc_trait_selection/traits/fulfill.rs#L555-L557

Added both examples from the issue as regression tests and renamed `trait_ref_type_vars` -> `trait_ref_infer_vars`.

r? @eddyb

4 years agoAlways validate MIR after optimizing
Jonas Schievink [Mon, 25 May 2020 20:04:48 +0000 (22:04 +0200)]
Always validate MIR after optimizing

4 years agoAllow unlabeled breaks from desugared `?` in labeled blocks
Samrat Man Singh [Mon, 25 May 2020 15:15:26 +0000 (20:45 +0530)]
Allow unlabeled breaks from desugared `?` in labeled blocks

4 years agoAdd a small MIR validation pass
Jonas Schievink [Sat, 23 May 2020 22:55:44 +0000 (00:55 +0200)]
Add a small MIR validation pass

4 years agoAvoid `Operand::Copy` with `&mut T`
Jonas Schievink [Sat, 23 May 2020 18:01:36 +0000 (20:01 +0200)]
Avoid `Operand::Copy` with `&mut T`

4 years agoAuto merge of #72575 - Dylan-DPC:rollup-zo679hv, r=Dylan-DPC
bors [Mon, 25 May 2020 17:14:44 +0000 (17:14 +0000)]
Auto merge of #72575 - Dylan-DPC:rollup-zo679hv, r=Dylan-DPC

Rollup of 4 pull requests

Successful merges:

 - #72153 (exhaustively check `ty::Kind` during structural match checking)
 - #72308 (Emit a better diagnostic when function actually has a 'self' parameter)
 - #72560 (Enable `glacier` command via triagebot)
 - #72567 (Clean up E0608 explanation)

Failed merges:

r? @ghost

4 years agoRollup merge of #72567 - GuillaumeGomez:cleanup-e0608, r=Dylan-DPC
Dylan DPC [Mon, 25 May 2020 16:07:48 +0000 (18:07 +0200)]
Rollup merge of #72567 - GuillaumeGomez:cleanup-e0608, r=Dylan-DPC

Clean up E0608 explanation

r? @Dylan-DPC

4 years agoRollup merge of #72560 - JohnTitor:glacier, r=Mark-Simulacrum
Dylan DPC [Mon, 25 May 2020 16:07:46 +0000 (18:07 +0200)]
Rollup merge of #72560 - JohnTitor:glacier, r=Mark-Simulacrum

Enable `glacier` command via triagebot

I noticed this was required by https://github.com/rust-lang/rust/issues/72554#issuecomment-633393847.

4 years agoRollup merge of #72308 - Aaron1011:fix/hygiene-error-message, r=matthewjasper
Dylan DPC [Mon, 25 May 2020 16:07:44 +0000 (18:07 +0200)]
Rollup merge of #72308 - Aaron1011:fix/hygiene-error-message, r=matthewjasper

Emit a better diagnostic when function actually has a 'self' parameter

Fixes #66898

When we are unable to resolve a reference to `self`, we current assume
that the containing function doesn't have a `self` parameter, and
emit an error message accordingly.

However, if the reference to `self` was created by a macro invocation,
then resolution will correctly fail, due to hygiene. In this case, we
don't want to tell the user that the containing fuction doesn't have a
'self' paramter if it actually has one.

This PR checks for the precense of a 'self' parameter, and adjusts the
error message we emit accordingly.

TODO: The exact error message we emit could probably be improved. Should
we explicitly mention hygiene?

4 years agoRollup merge of #72153 - lcnr:exhaustively-match, r=pnkfelix
Dylan DPC [Mon, 25 May 2020 16:07:42 +0000 (18:07 +0200)]
Rollup merge of #72153 - lcnr:exhaustively-match, r=pnkfelix

exhaustively check `ty::Kind` during structural match checking

This was prone to errors as we may forget new kinds in the future.

I am also not yet sure about some kinds.

`ty::GeneratorWitness(..) | ty::Infer(_) | ty::Placeholder(_) | ty::UnnormalizedProjection(..)  | ty::Bound(..)` might be unreachable here.

We may want to forbid `ty::Projection`, similar to `ty::Param`.

`ty::Opaque` seems fine afaict, should not be possible in a match atm.

I believe `ty::Foreign` should not be structurally match, as I don't even know what
that would actually mean.

r? @pnkfelix cc @eddyb

4 years agoFix bug in shebang handling
Russell Cohen [Thu, 23 Apr 2020 19:51:12 +0000 (15:51 -0400)]
Fix bug in shebang handling

Shebang handling was too agressive in stripping out the first line in cases where it is actually _not_ a shebang, but instead, valid rust (#70528). This is a second attempt at resolving this issue (the first attempt was flawed, for, among other reasons, causing an ICE in certain cases (#71372, #71471).

The behavior is now codified by a number of UI tests, but simply:
For the first line to be a shebang, the following must all be true:
1. The line must start with `#!`
2. The line must contain a non whitespace character after `#!`
3. The next character in the file, ignoring comments & whitespace must not be `[`

I believe this is a strict superset of what we used to allow, so perhaps a crater run is unnecessary, but probably not a terrible idea.

4 years agoAuto merge of #72354 - tamird:remove-copyright, r=Mark-Simulacrum
bors [Mon, 25 May 2020 13:40:42 +0000 (13:40 +0000)]
Auto merge of #72354 - tamird:remove-copyright, r=Mark-Simulacrum

Remove dangling COPYRIGHT references

Missed in 2a663555ddf36f6b041445894a8c175cd1bc718c.

r? @Mark-Simulacrum

4 years agorename lint
Ralf Jung [Mon, 25 May 2020 13:32:46 +0000 (15:32 +0200)]
rename lint

4 years agoClean up E0608 explanation
Guillaume Gomez [Mon, 25 May 2020 11:03:38 +0000 (13:03 +0200)]
Clean up E0608 explanation

4 years agoFix UB in Arc
Diggory Blake [Sun, 24 May 2020 12:11:12 +0000 (13:11 +0100)]
Fix UB in Arc

Use raw pointers to avoid making any assertions about the data field.

4 years agoAuto merge of #72562 - RalfJung:rollup-2ngjgwi, r=RalfJung
bors [Mon, 25 May 2020 09:43:59 +0000 (09:43 +0000)]
Auto merge of #72562 - RalfJung:rollup-2ngjgwi, r=RalfJung

Rollup of 5 pull requests

Successful merges:

 - #71940 (Add `len` and `slice_from_raw_parts` to `NonNull<[T]>`)
 - #72525 (Miri casts: do not blindly rely on dest type)
 - #72537 (Fix InlineAsmOperand expresions being visited twice during liveness checking)
 - #72544 (librustc_middle: Rename upvars query to upvars_mentioned)
 - #72551 (First draft documenting Debug stability.)

Failed merges:

r? @ghost

4 years agomore test ref-to-packed tests
Ralf Jung [Mon, 25 May 2020 09:15:38 +0000 (11:15 +0200)]
more test ref-to-packed tests

4 years agoRollup merge of #72551 - alilleybrinker:document-debug-stability, r=KodrAus
Ralf Jung [Mon, 25 May 2020 09:01:10 +0000 (11:01 +0200)]
Rollup merge of #72551 - alilleybrinker:document-debug-stability, r=KodrAus

First draft documenting Debug stability.

Debug implementations of std types aren't stable, and neither are derived Debug implementations for any types, including user-defined types. This commit adds a section to the Debug documentation noting this stability status.

This issue is tracked by #62794.

4 years agoRollup merge of #72544 - sexxi-goose:upvars_mentioned, r=matthewjasper
Ralf Jung [Mon, 25 May 2020 09:01:08 +0000 (11:01 +0200)]
Rollup merge of #72544 - sexxi-goose:upvars_mentioned, r=matthewjasper

librustc_middle: Rename upvars query to upvars_mentioned

As part of supporting RFC 2229, we will be capturing all the Places that
were mentioned in the closure.

This commit modifies the name of the upvars query to upvars_mentioned.

r? @nikomatsakis @blitzerr @matthewjasper

4 years agoRollup merge of #72537 - Amanieu:fix-asm-liveness, r=petrochenkov
Ralf Jung [Mon, 25 May 2020 09:01:07 +0000 (11:01 +0200)]
Rollup merge of #72537 - Amanieu:fix-asm-liveness, r=petrochenkov

Fix InlineAsmOperand expresions being visited twice during liveness checking

4 years agoRollup merge of #72525 - RalfJung:miri-cast-checks, r=eddyb
Ralf Jung [Mon, 25 May 2020 09:01:05 +0000 (11:01 +0200)]
Rollup merge of #72525 - RalfJung:miri-cast-checks, r=eddyb

Miri casts: do not blindly rely on dest type

Make sure that we notice when the MIR is bad and the casted-to and destination type are e.g. of different size, as suggested by @eddyb.

4 years agoRollup merge of #71940 - SimonSapin:nonnull-slice, r=kennytm
Ralf Jung [Mon, 25 May 2020 09:01:03 +0000 (11:01 +0200)]
Rollup merge of #71940 - SimonSapin:nonnull-slice, r=kennytm

Add `len` and `slice_from_raw_parts` to `NonNull<[T]>`

This follows the precedent of the recently-added `<*const [T]>::len` (adding to its tracking issue https://github.com/rust-lang/rust/issues/71146) and `ptr::slice_from_raw_parts`.

4 years agoremove some unused types from the tests
Ralf Jung [Sat, 16 May 2020 14:29:27 +0000 (16:29 +0200)]
remove some unused types from the tests

4 years agoadd a lint against references to packed fields
Ralf Jung [Sat, 16 May 2020 14:17:07 +0000 (16:17 +0200)]
add a lint against references to packed fields

4 years agoAdd test for old compiler ICE when using `Borrow`
Ross MacArthur [Mon, 25 May 2020 07:23:00 +0000 (09:23 +0200)]
Add test for old compiler ICE when using `Borrow`

4 years agofix ICE when debug-printing MIR
Ralf Jung [Mon, 25 May 2020 06:52:16 +0000 (08:52 +0200)]
fix ICE when debug-printing MIR

4 years agoAuto merge of #72520 - jonas-schievink:cleanup-userty, r=matthewjasper
bors [Mon, 25 May 2020 06:17:15 +0000 (06:17 +0000)]
Auto merge of #72520 - jonas-schievink:cleanup-userty, r=matthewjasper

Clear MIR local type annotations after borrowck

4 years agoEnable `glacier` command via triagebot
Yuki Okushi [Mon, 25 May 2020 06:07:55 +0000 (15:07 +0900)]
Enable `glacier` command via triagebot

4 years agoAuto merge of #72472 - LeSeulArtichaut:sync-command, r=dtolnay
bors [Mon, 25 May 2020 02:48:55 +0000 (02:48 +0000)]
Auto merge of #72472 - LeSeulArtichaut:sync-command, r=dtolnay

Implement `Sync` for `process::Command on unix and vxworks

Closes #72387.
r? @cuviper

4 years agoFirst draft documenting Debug stability.
Andrew Lilley Brinker [Sun, 24 May 2020 22:30:48 +0000 (15:30 -0700)]
First draft documenting Debug stability.

Debug implementations of std types aren't stable, and neither are
derived Debug implementations for any types, including user-defined
types. This commit adds a section to the Debug documentatio noting this
stability status.

4 years agoAuto merge of #72287 - Aaron1011:feature/min-token-collect, r=petrochenkov
bors [Sun, 24 May 2020 22:11:12 +0000 (22:11 +0000)]
Auto merge of #72287 - Aaron1011:feature/min-token-collect, r=petrochenkov

Store tokens inside `ast::Expr`

This is a smaller version of #70091.

We now store captured tokens inside `ast::Expr`, which allows us to avoid some reparsing in `nt_to_tokenstream`. To try to mitigate the performance impact, we only collect tokens when we've seen an outer attribute.

This makes progress towards solving #43081. There are still many things left to do:

* Collect tokens for other AST items.
* Come up with a way to handle inner attributes (we need to be collecting tokens by the time we encounter them)
* Avoid re-parsing when a `#[cfg]` attr is used.

However, this is enough to fix spans for a simple example, which I've included as a test case.

4 years agoperf: Add inline on commonly used methods added in 69464
Markus Westerlind [Sun, 24 May 2020 13:22:23 +0000 (15:22 +0200)]
perf: Add inline on commonly used methods added in 69464

Reclaims most of the regression in inflate

4 years agoCollect tokens for `ast::Expr`
Aaron Hill [Tue, 19 May 2020 20:56:20 +0000 (16:56 -0400)]
Collect tokens for `ast::Expr`

4 years agoAuto merge of #72539 - RalfJung:rollup-8yfidi8, r=RalfJung
bors [Sun, 24 May 2020 18:40:28 +0000 (18:40 +0000)]
Auto merge of #72539 - RalfJung:rollup-8yfidi8, r=RalfJung

Rollup of 5 pull requests

Successful merges:

 - #72402 (Remove all uses of `NodeId` in `ResolverOutputs`)
 - #72527 (bootstrap: propagate test-args to miri and clippy test suites)
 - #72530 (Clean up E0602 explanation)
 - #72532 (Use `dyn` trait syntax in more comments and docs)
 - #72535 (Use sort_unstable_by in its own docs)

Failed merges:

r? @ghost

4 years agolibrustc_middle: Rename upvars query to upvars_mentioned
Aman Arora [Sat, 23 May 2020 23:29:49 +0000 (19:29 -0400)]
librustc_middle: Rename upvars query to upvars_mentioned

As part of supporting RFC 2229, we will be capturing all the Places that
were mentioned in the closure.

This commit modifies the name of the upvars query to upvars_mentioned.

Co-authored-by: Aman Arora <me@aman-arora.com>
Co-authored-by: Chris Pardy <chrispardy36@gmail.com>
4 years agocomment nit
Ralf Jung [Sun, 24 May 2020 17:28:44 +0000 (19:28 +0200)]
comment nit

4 years agouse helper method for determining size of int type
Ralf Jung [Sun, 24 May 2020 17:17:30 +0000 (19:17 +0200)]
use helper method for determining size of int type

4 years agoRollup merge of #72535 - saschanaz:patch-1, r=jonas-schievink
Ralf Jung [Sun, 24 May 2020 14:51:36 +0000 (16:51 +0200)]
Rollup merge of #72535 - saschanaz:patch-1, r=jonas-schievink

Use sort_unstable_by in its own docs

Currently it uses `sort_by` instead of itself.

4 years agoRollup merge of #72532 - ratijas:dyn-trait-object-doc, r=jonas-schievink
Ralf Jung [Sun, 24 May 2020 14:51:34 +0000 (16:51 +0200)]
Rollup merge of #72532 - ratijas:dyn-trait-object-doc, r=jonas-schievink

Use `dyn` trait syntax in more comments and docs

Probably missed it out during earlier dyn refactoring.

033cbfe#diff-a0ba6bbf82d9ee83a4c9525873f85b04

4 years agoRollup merge of #72530 - GuillaumeGomez:cleanup-e0602, r=Dylan-DPC
Ralf Jung [Sun, 24 May 2020 14:51:32 +0000 (16:51 +0200)]
Rollup merge of #72530 - GuillaumeGomez:cleanup-e0602, r=Dylan-DPC

Clean up E0602 explanation

r? @Dylan-DPC

4 years agoRollup merge of #72527 - RalfJung:miri-clippy-test-args, r=Mark-Simulacrum
Ralf Jung [Sun, 24 May 2020 14:51:30 +0000 (16:51 +0200)]
Rollup merge of #72527 - RalfJung:miri-clippy-test-args, r=Mark-Simulacrum

bootstrap: propagate test-args to miri and clippy test suites

For Miri I verified this works. For clippy, unfortunately it doesn't seem to work as a stage 0 tool:
```
./x.py --stage 0 test src/tools/clippy --test-args init
```
gives
```
   Compiling clippy-mini-macro-test v0.2.0 (/home/r/src/rust/rustc.3/src/tools/clippy/mini-macro)
error[E0658]: procedural macros cannot be expanded to expressions
  --> src/tools/clippy/mini-macro/src/lib.rs:11:5
   |
11 | /     quote!(
12 | |         #[allow(unused)]
13 | |         fn needless_take_by_value(s: String) {
14 | |             println!("{}", s.len());
...  |
24 | |         }
25 | |     )
   | |_____^
   |
   = note: see issue #54727 <https://github.com/rust-lang/rust/issues/54727> for more information
   = help: add `#![feature(proc_macro_hygiene)]` to the crate attributes to enable

   Compiling proc-macro2 v1.0.3
   Compiling syn v1.0.11
error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
error: could not compile `clippy-mini-macro-test`.
```
But propagating `--test-args` to the test suite seems to make sense regardless.
Cc @rust-lang/clippy

4 years agoRollup merge of #72402 - marmeladema:resolver-outputs-def-id, r=ecstatic-morse
Ralf Jung [Sun, 24 May 2020 14:51:28 +0000 (16:51 +0200)]
Rollup merge of #72402 - marmeladema:resolver-outputs-def-id, r=ecstatic-morse

Remove all uses of `NodeId` in `ResolverOutputs`

cc #50928

r? @ecstatic-morse

4 years agoAuto merge of #72531 - RalfJung:miri-upd, r=RalfJung
bors [Sun, 24 May 2020 14:49:54 +0000 (14:49 +0000)]
Auto merge of #72531 - RalfJung:miri-upd, r=RalfJung

bump Miri

Fixes https://github.com/rust-lang/rust/issues/72358
r? @ghost Cc @rust-lang/miri

4 years agoRemoved all instances of const_field.
Rakshith Ravi [Sun, 24 May 2020 14:08:54 +0000 (19:38 +0530)]
Removed all instances of const_field.

4 years agoFix InlineAsmOperand expresions being visited twice during liveness checking
Amanieu d'Antras [Sun, 24 May 2020 13:26:20 +0000 (14:26 +0100)]
Fix InlineAsmOperand expresions being visited twice during liveness checking

4 years agobump Miri
Ralf Jung [Sun, 24 May 2020 11:59:15 +0000 (13:59 +0200)]
bump Miri

4 years agoFix unsizing casts
Ralf Jung [Sun, 24 May 2020 13:10:15 +0000 (15:10 +0200)]
Fix unsizing casts

4 years agoUse sort_unstable_by in its own docs
Kagami Sascha Rosylight [Sun, 24 May 2020 12:56:57 +0000 (14:56 +0200)]
Use sort_unstable_by in its own docs

4 years agoUse `dyn` trait syntax in more comments and docs
ratijas [Sun, 24 May 2020 11:46:50 +0000 (14:46 +0300)]
Use `dyn` trait syntax in more comments and docs

Probably missed it out during earlier `dyn` refactoring.

4 years agoAuto merge of #72529 - RalfJung:rollup-ydthv90, r=RalfJung
bors [Sun, 24 May 2020 11:02:23 +0000 (11:02 +0000)]
Auto merge of #72529 - RalfJung:rollup-ydthv90, r=RalfJung

Rollup of 3 pull requests

Successful merges:

 - #72284 (Remove `macro_defs` map)
 - #72393 (Rewrite `Parser::collect_tokens`)
 - #72528 (Fix typo in doc comment.)

Failed merges:

r? @ghost

4 years agoClean up E0602 explanation
Guillaume Gomez [Sun, 24 May 2020 10:52:45 +0000 (12:52 +0200)]
Clean up E0602 explanation

4 years agoRollup merge of #72528 - emosenkis:patch-1, r=dtolnay
Ralf Jung [Sun, 24 May 2020 10:17:12 +0000 (12:17 +0200)]
Rollup merge of #72528 - emosenkis:patch-1, r=dtolnay

Fix typo in doc comment.

call_one_force -> call_on**c**e_force

4 years agoRollup merge of #72393 - Aaron1011:feature/rewrite-collect-tokens, r=petrochenkov
Ralf Jung [Sun, 24 May 2020 10:17:11 +0000 (12:17 +0200)]
Rollup merge of #72393 - Aaron1011:feature/rewrite-collect-tokens, r=petrochenkov

Rewrite `Parser::collect_tokens`

The previous implementation did not work when called on an opening
delimiter, or when called re-entrantly from the same `TokenCursor` stack
depth.

I'm not sure how to test this apart from https://github.com/rust-lang/rust/pull/72287