Commit Graph

120724 Commits

Author SHA1 Message Date
Niko Matsakis
e0ec3d5dc6
fix URLs, include ARM 2020-06-09 18:01:58 -04:00
Santiago Pastorino
474b16b002
Add windows group to triagebot 2020-05-28 16:09:48 -03:00
bors
4512721156 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
2020-05-28 00:18:52 +00:00
bors
664fcd3f04 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)
2020-05-27 18:31:45 +00:00
bors
2873165725 Auto merge of #72601 - JohnTitor:deps, r=Mark-Simulacrum
Update transitive dependencies to remove some deps

Similar to #71919, this removes some (duplicate) dependencies.
2020-05-27 14:48:33 +00:00
bors
acfc558401 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
2020-05-27 11:18:53 +00:00
Dylan DPC
e6353aac9d
Rollup merge of #72626 - phimuemue:doubleendediter_doc, r=dtolnay
Add remark regarding DoubleEndedIterator

While reviewing 14293bd18f (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.
2020-05-27 03:09:23 +02:00
Dylan DPC
9e061f35e8
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
2020-05-27 03:09:21 +02:00
Dylan DPC
36d6118666
Rollup merge of #72606 - GuillaumeGomez:cell-example-update, r=Dylan-DPC
Small cell example update

r? @Dylan-DPC
2020-05-27 03:09:19 +02:00
Dylan DPC
2b3b115a4d
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
2020-05-27 03:09:15 +02:00
Dylan DPC
8f95dc8d4e
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.
2020-05-27 03:09:12 +02:00
Dylan DPC
cbe7b908b1
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
2020-05-27 03:09:11 +02:00
bors
783139bd8f 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)
2020-05-27 01:08:36 +00:00
bors
e5335592e7 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
2020-05-26 20:58:52 +00:00
Chris Simpkins
f384cdcbec
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
2020-05-26 16:52:16 -04:00
Dylan DPC
e061c402ae
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)
2020-05-26 22:11:34 +02:00
Dylan DPC
5fb7210799
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
2020-05-26 22:11:33 +02:00
Dylan DPC
401b3aefe9
Rollup merge of #72401 - ecstatic-morse:issue-72394, r=eddyb
Use correct function for detecting `const fn` in unsafety checking

Resolves #72394.
2020-05-26 22:11:31 +02:00
Dylan DPC
e38fdda243
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`.
2020-05-26 22:11:29 +02:00
Dylan DPC
0747f586eb
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
2020-05-26 22:11:26 +02:00
Dylan DPC
6e6bd630e6
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?
2020-05-26 22:11:22 +02:00
philipp
b60fe399f3 Add remark regarding DoubleEndedIterator 2020-05-26 21:51:51 +02:00
bors
5239f5c57b 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
2020-05-26 17:38:47 +00:00
Alex Crichton
afd88f2a33 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
2020-05-26 07:38:43 -07:00
Guillaume Gomez
398511a135 Import missing functions from storage.js 2020-05-26 15:11:44 +02:00
Guillaume Gomez
a423d2d4b0 Improve formatting 2020-05-26 15:11:44 +02:00
Guillaume Gomez
05a221216a Remove font-display settings 2020-05-26 14:11:35 +02:00
bors
aeca4d6428 Auto merge of #71900 - GuillaumeGomez:clean-up-rustdoc, r=ollie27,kinnison
Clean up rustdoc source code

Fixes #70498.

r? @kinnison

cc @rust-lang/rustdoc
2020-05-26 10:42:41 +00:00
Guillaume Gomez
f41d284ea0 Fix eslint lints 2020-05-26 11:18:10 +02:00
Guillaume Gomez
872ddf243e Reexported functions are now declared directly as "windows" field 2020-05-26 11:18:10 +02:00
Guillaume Gomez
deaf5e200e Move "global" code into anonymous functions 2020-05-26 11:18:10 +02:00
Guillaume Gomez
0fa4762a80 Move focusSearchBar and defocusSearchBar functions to the top of the file with other functions 2020-05-26 11:18:10 +02:00
Guillaume Gomez
b9ba4b3810
Small cell example update 2020-05-26 10:47:54 +02:00
Yuki Okushi
3d4f4787a6
Update allowed crates list 2020-05-26 16:38:09 +09:00
bors
cb272d5d21 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
2020-05-26 07:20:52 +00:00
Jeremy Fitzhardinge
ffa493ab57 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
2020-05-25 22:47:55 -07:00
Yuki Okushi
9f8628b38c
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
2020-05-26 13:35:21 +09:00
Yuki Okushi
a6e58ae3ce
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
2020-05-26 13:33:06 +09:00
Yuki Okushi
b4b76b8206
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
2020-05-26 13:06:07 +09:00
Yuki Okushi
1f0a395079
cargo update -p colored
Updating colored v1.6.0 -> v1.9.3
    Removing lazy_static v0.2.11
2020-05-26 13:05:49 +09:00
bors
9eedd138ee 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
2020-05-26 01:43:40 +00:00
Eric Huss
a0431e26fe Update cargo 2020-05-25 17:56:32 -07:00
Eric Huss
0fdbfd3f05 Update books 2020-05-25 17:17:27 -07:00
bors
698c5c6d95 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
2020-05-25 22:04:44 +00:00
Dylan DPC
b6a8915b20
Rollup merge of #72538 - rakshith-ravi:refactor/remove-const-query, r=oli-obk
Removed all instances of const_field.

Fixes #72264

r? @oli-obk
2020-05-25 23:58:59 +02:00
Dylan DPC
036688f875
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.
2020-05-25 23:58:57 +02:00
Dylan DPC
a7ff5a0077
Rollup merge of #72450 - csmoe:issue-72442, r=oli-obk
Fix ice-#72442

Closes #72442
Closes #72426
r? @oli-obk
2020-05-25 23:58:56 +02:00
Dylan DPC
0498845e54
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.
2020-05-25 23:58:54 +02:00
Dylan DPC
b3f1b9541a
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.
7c59a81a5f/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
2020-05-25 23:58:53 +02:00
Jonas Schievink
fe1753af84 Always validate MIR after optimizing 2020-05-25 22:04:48 +02:00