]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoAuto merge of #59071 - Manishearth:clippyup, r=oli-obk
bors [Mon, 11 Mar 2019 09:08:45 +0000 (09:08 +0000)]
Auto merge of #59071 - Manishearth:clippyup, r=oli-obk

Update clippy

r? @oli-obk

5 years agoAuto merge of #58788 - matthewjasper:compare-children, r=pnkfelix
bors [Mon, 11 Mar 2019 06:10:31 +0000 (06:10 +0000)]
Auto merge of #58788 - matthewjasper:compare-children, r=pnkfelix

Make migrate mode work at item level granularity

Migrate mode now works entirely at the item level rather than the body level,
ensuring that we don't lose any errors in contained closures.

Closes #58776

r? @pnkfelix

5 years agoAuto merge of #58784 - oli-obk:accidental_promotion, r=eddyb
bors [Mon, 11 Mar 2019 01:28:16 +0000 (01:28 +0000)]
Auto merge of #58784 - oli-obk:accidental_promotion, r=eddyb

Don't promote function calls to nonpromotable things

fixes https://github.com/rust-lang/rust/issues/58767 and fixes https://github.com/rust-lang/rust/issues/58634

r? @eddyb

should we additionally check the function call return type? It might be a promotable function (or any `const fn` inside a `const fn`), but its return type might contain interior mutability.

5 years agoAuto merge of #59054 - ehuss:ci-i686-gnu-tests, r=pietroalbini
bors [Sun, 10 Mar 2019 20:34:15 +0000 (20:34 +0000)]
Auto merge of #59054 - ehuss:ci-i686-gnu-tests, r=pietroalbini

CI: Trim some tests from i686-gnu

This removes some tests from the i686-gnu job. This job clocks in at 2hr 56min, and removing these should cut about 10 to 15 minutes, giving a little more breathing room. I suspect these don't need to be tested on every platform.

5 years agoMake migrate mode work at item level granularity
Matthew Jasper [Wed, 27 Feb 2019 21:01:42 +0000 (21:01 +0000)]
Make migrate mode work at item level granularity

5 years agoUpdate clippy
Manish Goregaokar [Sun, 10 Mar 2019 16:44:43 +0000 (09:44 -0700)]
Update clippy

5 years agoCI: Trim some tests from i686-gnu
Eric Huss [Sat, 9 Mar 2019 23:40:39 +0000 (15:40 -0800)]
CI: Trim some tests from i686-gnu

This removes some tests from the i686-gnu job. This job clocks in at 2hr 56min, and removing these should cut about 10 to 15 minutes, giving a little more breathing room. I suspect these don't need to be tested on every platform.

5 years agoAuto merge of #56732 - Zoxc:rustc-interface, r=oli-obk
bors [Sun, 10 Mar 2019 06:31:42 +0000 (06:31 +0000)]
Auto merge of #56732 - Zoxc:rustc-interface, r=oli-obk

Make the rustc driver and interface demand driven

This introduces a new crate `rustc_interface` which is the canonical interface for creating and using the compiler. It allows you to access a `Compiler` type in a closure and that types have methods to run passes on demand. The interesting parts are found [here (defining the queries)](https://github.com/Zoxc/rust/blob/rustc-interface/src/librustc_interface/queries.rs#L78) and [here (methods to create a `Compiler`)](https://github.com/Zoxc/rust/blob/rustc-interface/src/librustc_interface/interface.rs).

cc @rust-lang/compiler @rust-lang/dev-tools @rust-lang/rustdoc

5 years agoMake the rustc driver and interface demand driven
John Kåre Alsaker [Sat, 8 Dec 2018 19:30:23 +0000 (20:30 +0100)]
Make the rustc driver and interface demand driven

5 years agoAuto merge of #58498 - euclio:e0432-suggestions, r=estebank
bors [Sun, 10 Mar 2019 03:36:17 +0000 (03:36 +0000)]
Auto merge of #58498 - euclio:e0432-suggestions, r=estebank

use structured suggestions for E0432

5 years agoAuto merge of #59050 - Centril:rollup, r=Centril
bors [Sat, 9 Mar 2019 18:22:05 +0000 (18:22 +0000)]
Auto merge of #59050 - Centril:rollup, r=Centril

Rollup of 13 pull requests

Successful merges:

 - #58518 (Use early unwraps instead of bubbling up errors just to unwrap in the end)
 - #58626 (rustdoc: add option to calculate "documentation coverage")
 - #58629 (rust-lldb: fix crash when printing empty string)
 - #58660 (MaybeUninit: add read_initialized, add examples)
 - #58670 (fixes rust-lang#52482)
 - #58676 (look for python2 symlinks before bootstrap python)
 - #58679 (Refactor passes and pass execution to be more parallel)
 - #58750 (Make `Unique::as_ptr`, `NonNull::dangling` and `NonNull::cast` const)
 - #58762 (Mention `unwind(aborts)` in diagnostics for `#[unwind]`)
 - #58924 (Add as_slice() to slice::IterMut and vec::Drain)
 - #58990 (Actually publish miri in the manifest)
 - #59018 (std: Delete a by-definition spuriously failing test)
 - #59045 (Expose new_sub_parser_from_file)

Failed merges:

r? @ghost

5 years agoRollup merge of #59045 - topecongiro:expose-new_sub_parser_from_file, r=Centril
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:28 +0000 (17:18 +0100)]
Rollup merge of #59045 - topecongiro:expose-new_sub_parser_from_file, r=Centril

Expose new_sub_parser_from_file

This function is useful when external tools like rustfmt want to parse
internal files without parsing a whole crate.

cc https://github.com/rust-lang/rustfmt/issues/3427.

5 years agoRollup merge of #59018 - alexcrichton:omg, r=sfackler
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:27 +0000 (17:18 +0100)]
Rollup merge of #59018 - alexcrichton:omg, r=sfackler

std: Delete a by-definition spuriously failing test

This commit deletes the `connect_timeout_unbound` test from the standard
library which, unfortunately, is by definition eventually going to be a
spuriously failing test. There's no way to reserve a port as unbound so
we can rely on ecosystem testing for this feature for now.

Closes #52590

5 years agoRollup merge of #58990 - oli-obk:miri_manifest, r=alexcrichton
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:26 +0000 (17:18 +0100)]
Rollup merge of #58990 - oli-obk:miri_manifest, r=alexcrichton

Actually publish miri in the manifest

5 years agoRollup merge of #58924 - cuviper:more-as_slice, r=dtolnay
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:24 +0000 (17:18 +0100)]
Rollup merge of #58924 - cuviper:more-as_slice, r=dtolnay

Add as_slice() to slice::IterMut and vec::Drain

In bluss/indexmap#88, we found that there was no easy way to implement
`Debug` for our `IterMut` and `Drain` iterators. Those are built on
`slice::IterMut` and `vec::Drain`, which implement `Debug` themselves,
but have no other way to access their data. With a new `as_slice()`
method, we can read the data and customize its presentation.

5 years agoRollup merge of #58762 - petrochenkov:unwind, r=Mark-Simulacrum
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:23 +0000 (17:18 +0100)]
Rollup merge of #58762 - petrochenkov:unwind, r=Mark-Simulacrum

Mention `unwind(aborts)` in diagnostics for `#[unwind]`

Simplify input validation for `#[unwind]`, add tests

cc https://github.com/rust-lang/rust/issues/58760
r? @Mark-Simulacrum

5 years agoRollup merge of #58750 - TimDiekmann:master, r=oli-obk
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:21 +0000 (17:18 +0100)]
Rollup merge of #58750 - TimDiekmann:master, r=oli-obk

Make `Unique::as_ptr`, `NonNull::dangling` and `NonNull::cast` const

5 years agoRollup merge of #58679 - Zoxc:passes-refactor, r=michaelwoerister
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:20 +0000 (17:18 +0100)]
Rollup merge of #58679 - Zoxc:passes-refactor, r=michaelwoerister

Refactor passes and pass execution to be more parallel

For `syntex_syntax` (with 16 threads and 8 cores):
- Cuts `misc checking 1` from `0.096s` to `0.08325s`.
- Cuts `misc checking 2` from `0.3575s` to `0.2545s`.
- Cuts `misc checking 3` from `0.34625s` to `0.21375s`.
- Cuts `wf checking` from `0.3085s` to `0.05025s`.

Reduces overall execution time for `syntex_syntax` (with 8 threads and cores) from `4.92s` to `4.34s`.

Subsumes https://github.com/rust-lang/rust/pull/58494
Blocked on https://github.com/rust-lang/rust/pull/58250

r? @michaelwoerister

5 years agoRollup merge of #58676 - euclio:bootstrap-python, r=alexcrichton
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:18 +0000 (17:18 +0100)]
Rollup merge of #58676 - euclio:bootstrap-python, r=alexcrichton

look for python2 symlinks before bootstrap python

Before this commit, if you're running x.py directly on a system where
`python` is symlinked to Python 3, then the `python` config option will
default to a Python 3 interpreter. This causes debuginfo tests to fail
with an opaque error message, since they have a hard requirement on
Python 2.

This commit modifies the Python probe behavior to look for python2.7 and
python2 *before* using the interpreter used to execute `x.py`.

5 years agoRollup merge of #58670 - saleemjaffer:refactor_typecast_check_kinds, r=oli-obk
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:17 +0000 (17:18 +0100)]
Rollup merge of #58670 - saleemjaffer:refactor_typecast_check_kinds, r=oli-obk

fixes rust-lang#52482

5 years agoRollup merge of #58660 - RalfJung:maybe-uninit, r=Centril
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:16 +0000 (17:18 +0100)]
Rollup merge of #58660 - RalfJung:maybe-uninit, r=Centril

MaybeUninit: add read_initialized, add examples

This adds a new `read_initialized` method, similar to suggestions by @Amanieu and @shepmaster. I also added examples to this and other methods.

5 years agoRollup merge of #58629 - euclio:debug-empty-str, r=alexcrichton
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:14 +0000 (17:18 +0100)]
Rollup merge of #58629 - euclio:debug-empty-str, r=alexcrichton

rust-lldb: fix crash when printing empty string

Fixes #52185.

~Re-enables the pretty-std debuginfo test and tweaks the test as necessary to get it to pass again. This reveals that lldb's formatting of enums is broken (#58492). I also removed the emoji from the test because I couldn't get the docker image's gdb to print the emoji, just octal escapes (https://github.com/rust-lang/rust/pull/53154/files#r208263904).~

5 years agoRollup merge of #58626 - QuietMisdreavus:doc-coverage, r=GuillaumeGomez
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:13 +0000 (17:18 +0100)]
Rollup merge of #58626 - QuietMisdreavus:doc-coverage, r=GuillaumeGomez

rustdoc: add option to calculate "documentation coverage"

This PR adds a new flag to rustdoc, `--show-coverage`. When passed, this flag will make rustdoc count the number of items in a crate with documentation instead of generating docs. This count will be output as a table of each file in the crate, like this (when run on my crate `egg-mode`):

```
+-------------------------------------+------------+------------+------------+
| File                                | Documented |      Total | Percentage |
+-------------------------------------+------------+------------+------------+
| src/auth.rs                         |         16 |         16 |     100.0% |
| src/common/mod.rs                   |          1 |          1 |     100.0% |
| src/common/response.rs              |          9 |          9 |     100.0% |
| src/cursor.rs                       |         24 |         24 |     100.0% |
| src/direct/fun.rs                   |          6 |          6 |     100.0% |
| src/direct/mod.rs                   |         41 |         41 |     100.0% |
| src/entities.rs                     |         50 |         50 |     100.0% |
| src/error.rs                        |         27 |         27 |     100.0% |
| src/lib.rs                          |          1 |          1 |     100.0% |
| src/list/fun.rs                     |         19 |         19 |     100.0% |
| src/list/mod.rs                     |         22 |         22 |     100.0% |
| src/media/mod.rs                    |         27 |         27 |     100.0% |
| src/place/fun.rs                    |          8 |          8 |     100.0% |
| src/place/mod.rs                    |         35 |         35 |     100.0% |
| src/search.rs                       |         26 |         26 |     100.0% |
| src/service.rs                      |         74 |         74 |     100.0% |
| src/stream/mod.rs                   |         49 |         49 |     100.0% |
| src/tweet/fun.rs                    |         15 |         15 |     100.0% |
| src/tweet/mod.rs                    |         73 |         73 |     100.0% |
| src/user/fun.rs                     |         24 |         24 |     100.0% |
| src/user/mod.rs                     |         87 |         87 |     100.0% |
+-------------------------------------+------------+------------+------------+
| Total                               |        634 |        634 |     100.0% |
+-------------------------------------+------------+------------+------------+
```

Trait implementations are not counted because by default they "inherit" the docs from the trait, even though an impl can override those docs. Similarly, inherent impl blocks are not counted at all, because for the majority of cases such docs are not useful. (The usual pattern for inherent impl blocks is to throw all the methods on a type into a single impl block. Any docs you would put on that block would be better served on the type itself.)

In addition, `--show-coverage` can be combined with `--document-private-items` to get the coverage counts for everything in the crate, not just public items.

The coverage calculation is implemented as a late pass and two new sets of passes which strip out most of the work that rustdoc otherwise does when generating docs. The is because after the new pass is executed, rustdoc immediately closes instead of going on to generate documentation.

Many examples of coverage calculations have been included as `rustdoc-ui` tests.

r? @rust-lang/rustdoc

5 years agoRollup merge of #58518 - oli-obk:unreachable_result_errors, r=RalfJung
Mazdak Farrokhzad [Sat, 9 Mar 2019 16:18:11 +0000 (17:18 +0100)]
Rollup merge of #58518 - oli-obk:unreachable_result_errors, r=RalfJung

Use early unwraps instead of bubbling up errors just to unwrap in the end

r? @RalfJung

5 years agouse structured suggestions for E0432
Andy Russell [Wed, 16 Jan 2019 20:30:41 +0000 (15:30 -0500)]
use structured suggestions for E0432

5 years agoExpose new_sub_parser_from_file
topecongiro [Sat, 9 Mar 2019 12:59:54 +0000 (21:59 +0900)]
Expose new_sub_parser_from_file

This function is useful when external tools like rustfmt want to parse
internal files without parsing a whole crate.

5 years agoAuto merge of #57882 - euclio:unused-doc-attributes, r=estebank
bors [Sat, 9 Mar 2019 08:17:48 +0000 (08:17 +0000)]
Auto merge of #57882 - euclio:unused-doc-attributes, r=estebank

overhaul unused doc comments lint

This PR contains a number of improvements to the `unused_doc_comments` lint.

- Extends the span to cover the entire comment when using sugared doc comments.
- Triggers the lint for all unused doc comments on a node, instead of just the first one.
- Triggers the lint on macro expansions, and provides a help note explaining that doc comments must be expanded by the macro.
- Adds a label pointing at the node that cannot be documented.

Furthermore, this PR fixes any instances in rustc where a macro expansion was erroneously documented.

5 years agoAuto merge of #59012 - pietroalbini:rollup, r=pietroalbini
bors [Sat, 9 Mar 2019 05:19:48 +0000 (05:19 +0000)]
Auto merge of #59012 - pietroalbini:rollup, r=pietroalbini

Rollup of 24 pull requests

Successful merges:

 - #58080 (Add FreeBSD armv6 and armv7 targets)
 - #58204 (On return type `impl Trait` for block with no expr point at last semi)
 - #58269 (Add librustc and libsyntax to rust-src distribution.)
 - #58369 (Make the Entry API of HashMap<K, V> Sync and Send)
 - #58861 (Expand where negative supertrait specific error is shown)
 - #58877 (Suggest removal of `&` when borrowing macro and appropriate)
 - #58883 (Suggest appropriate code for unused field when destructuring pattern)
 - #58891 (Remove stray ` in the docs for the FromIterator implementation for Option)
 - #58893 (race condition in thread local storage example)
 - #58906 (Monomorphize generator field types for debuginfo)
 - #58911 (Regression test for #58435.)
 - #58912 (Regression test for #58813)
 - #58916 (Fix release note problems noticed after merging.)
 - #58918 (Regression test added for an async ICE.)
 - #58921 (Add an explicit test for issue #50582)
 - #58926 (Make the lifetime parameters of tcx consistent.)
 - #58931 (Elide invalid method receiver error when it contains TyErr)
 - #58940 (Remove JSBackend from config.toml)
 - #58950 (Add self to mailmap)
 - #58961 (On incorrect cfg literal/identifier, point at the right span)
 - #58963 (libstd: implement Error::source for io::Error)
 - #58970 (delay_span_bug in wfcheck's ty.lift_to_tcx unwrap)
 - #58984 (Teach `-Z treat-err-as-bug` to take a number of errors to emit)
 - #59007 (Add a test for invalid const arguments)

Failed merges:

 - #58959 (Add release notes for PR #56243)

r? @ghost

5 years agoAuto merge of #58920 - ehuss:update-cargo-rls, r=ehuss
bors [Sat, 9 Mar 2019 02:22:02 +0000 (02:22 +0000)]
Auto merge of #58920 - ehuss:update-cargo-rls, r=ehuss

Update cargo, rls, books

## cargo

10 commits in 5c6aa46e6f28661270979696e7b4c2f0dff8628f..95b45eca19ac785263fed98ecefe540bb47337ac
2019-02-22 19:32:35 +0000 to 2019-03-06 19:24:30 +0000
- Relax some rustdoc tests. (rust-lang/cargo#6721)
- Include build script execution in the fingerprint. (rust-lang/cargo#6720)
- part of the infrastructure for public & private dependencies in the resolver (rust-lang/cargo#6653)
- Bump to 0.36.0 (rust-lang/cargo#6718)
- Some test/bench-related tweaks (rust-lang/cargo#6707)
- Fix links to the permanent home of the edition guide. (rust-lang/cargo#6703)
- HTTPS all the things (rust-lang/cargo#6614)
- Cargo test quicker by not building untested examples when filtered (rust-lang/cargo#6683)
- Link from ARCHITECTURE.md to docs.rs and github (rust-lang/cargo#6695)
- Update how to install rustfmt (rust-lang/cargo#6696)

## rls

9 commits in 0d6f53e1a4adbaf7d83cdc0cb54720203fcb522e..6a1b5a9cfda2ae19372e0613e76ebefba36edcf5
2019-02-14 07:52:15 +0000 to 2019-03-04 20:24:45 +0000
- Update cargo and clippy. (rust-lang-nursery/rls#1388)
- catch up rust-lang/rust PR#58321 (rust-lang-nursery/rls#1384)
- Apply Clippy fixes (rust-lang-nursery/rls#1327)
- Various cosmetic improvements (rust-lang-nursery/rls#1326)
- Make test `RlsHandle` transport-agnostic (rust-lang-nursery/rls#1317)
- Translate remaining tests (rust-lang-nursery/rls#1320)
- Remove unnecessary #![feature]s (rust-lang-nursery/rls#1323)
- Update Clippy (rust-lang-nursery/rls#1319)
- Update Clippy (rust-lang-nursery/rls#1315)

cc @xanewok

## Books
See #58936 for details.

5 years agoAuto merge of #58985 - dlrobertson:fix_58980, r=alexreg
bors [Fri, 8 Mar 2019 23:24:16 +0000 (23:24 +0000)]
Auto merge of #58985 - dlrobertson:fix_58980, r=alexreg

Fix segfaults in release build C-variadic fns

`va_start` and `va_end` must be called to initialize/cleanup the
"spoofed" `VaList` in a Rust defined C-variadic function even  if
the `VaList` is not used.

r? @alexreg
Fixes: #58980
5 years agoUpdate books
Eric Huss [Fri, 8 Mar 2019 20:25:36 +0000 (12:25 -0800)]
Update books

5 years agoUpdate cargo, rls
Eric Huss [Mon, 4 Mar 2019 21:18:44 +0000 (13:18 -0800)]
Update cargo, rls

5 years agoexpand unused doc comment diagnostic
Andy Russell [Thu, 24 Jan 2019 20:49:03 +0000 (15:49 -0500)]
expand unused doc comment diagnostic

Report the diagnostic on macro expansions, and add a label indicating
why the comment is unused.

5 years agoimprove unused doc comment diagnostic reporting
Andy Russell [Wed, 23 Jan 2019 18:44:43 +0000 (13:44 -0500)]
improve unused doc comment diagnostic reporting

Report all unused attributes on a given doc comment instead of just the
first one, and extend the span of sugared doc comments to encompass the
whole comment.

5 years agostd: Delete a by-definition spuriously failing test
Alex Crichton [Fri, 8 Mar 2019 15:41:19 +0000 (07:41 -0800)]
std: Delete a by-definition spuriously failing test

This commit deletes the `connect_timeout_unbound` test from the standard
library which, unfortunately, is by definition eventually going to be a
spuriously failing test. There's no way to reserve a port as unbound so
we can rely on ecosystem testing for this feature for now.

Closes #52590

5 years agoAuto merge of #58915 - ljedrz:deprecate_nodeid_methods, r=Zoxc
bors [Fri, 8 Mar 2019 13:49:07 +0000 (13:49 +0000)]
Auto merge of #58915 - ljedrz:deprecate_nodeid_methods, r=Zoxc

HirIdification: almost there

The next iteration of HirIdification (#57578).

Replaces a bunch of `NodeId` method calls (mostly `as_local_node_id`) with `HirId` ones.

Removes `NodeId` from:
- [x] `PathSegment`
- [x] `PatKind`
- [x] `Destination` (replaces it with `HirId`)

In addition this PR also removes `Visitor::visit_def_mention`, which doesn't seem to be doing anything.

5 years agoupdate clippy
ljedrz [Fri, 8 Mar 2019 11:29:10 +0000 (12:29 +0100)]
update clippy

5 years agoRollup merge of #59007 - varkor:invalid-const-arg-test, r=petrochenkov
Pietro Albini [Fri, 8 Mar 2019 08:42:15 +0000 (09:42 +0100)]
Rollup merge of #59007 - varkor:invalid-const-arg-test, r=petrochenkov

Add a test for invalid const arguments

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

5 years agoRollup merge of #58984 - estebank:multi-treat-err-as-bug, r=oli-obk
Pietro Albini [Fri, 8 Mar 2019 08:42:13 +0000 (09:42 +0100)]
Rollup merge of #58984 - estebank:multi-treat-err-as-bug, r=oli-obk

Teach `-Z treat-err-as-bug` to take a number of errors to emit

`-Z treat-err-as-bug` will cause `rustc` to panic after the first error is reported, like previously. `-Z treat-err-as-bug=2` will cause `rustc` to panic after 2 errors have been reported.

Fix #58983.

5 years agoRollup merge of #58970 - pnkfelix:issue-58158-size-of-assoc-type-ice, r=petrochenkov
Pietro Albini [Fri, 8 Mar 2019 08:42:12 +0000 (09:42 +0100)]
Rollup merge of #58970 - pnkfelix:issue-58158-size-of-assoc-type-ice, r=petrochenkov

delay_span_bug in wfcheck's ty.lift_to_tcx unwrap

Fix #58158

5 years agoRollup merge of #58963 - seanmonstar:patch-3, r=cramertj
Pietro Albini [Fri, 8 Mar 2019 08:42:10 +0000 (09:42 +0100)]
Rollup merge of #58963 - seanmonstar:patch-3, r=cramertj

libstd: implement Error::source for io::Error

5 years agoRollup merge of #58961 - estebank:issue-58462, r=varkor
Pietro Albini [Fri, 8 Mar 2019 08:42:09 +0000 (09:42 +0100)]
Rollup merge of #58961 - estebank:issue-58462, r=varkor

On incorrect cfg literal/identifier, point at the right span

CC #58462

5 years agoRollup merge of #58950 - Lucretiel:patch-5, r=alexcrichton
Pietro Albini [Fri, 8 Mar 2019 08:42:06 +0000 (09:42 +0100)]
Rollup merge of #58950 - Lucretiel:patch-5, r=alexcrichton

Add self to mailmap

5 years agoRollup merge of #58940 - ThisIsADogHello:patch-1, r=alexcrichton
Pietro Albini [Fri, 8 Mar 2019 08:42:04 +0000 (09:42 +0100)]
Rollup merge of #58940 - ThisIsADogHello:patch-1, r=alexcrichton

Remove JSBackend from config.toml

JSBackend is implied when building the emscripten backend, and not available for the standard llvm backend.  This commit also puts the example config in sync with the defaults in src/bootstrap/native.rs

5 years agoRollup merge of #58931 - estebank:elide-receiver-tyerr, r=varkor
Pietro Albini [Fri, 8 Mar 2019 08:42:03 +0000 (09:42 +0100)]
Rollup merge of #58931 - estebank:elide-receiver-tyerr, r=varkor

Elide invalid method receiver error when it contains TyErr

Fix #58712.

5 years agoRollup merge of #58926 - gabi-250:tcx-lifetimes, r=petrochenkov
Pietro Albini [Fri, 8 Mar 2019 08:42:01 +0000 (09:42 +0100)]
Rollup merge of #58926 - gabi-250:tcx-lifetimes, r=petrochenkov

Make the lifetime parameters of tcx consistent.

I have implemented `codegen_allocator` for my backend, but I've had to make a small change to its signature in `ExtraBackendMethods`. I wonder if this change is justified, or if it is too specific to my use case to be useful to anyone else.

`write_metadata` and `codegen_allocator` are both called from `codegen_crate` (in `librustc_codegen_ssa/base.rs`), and they both receive the same `tcx` as an argument:

https://github.com/rust-lang/rust/blob/c196097e588b05e86b5ce6de992b2a6e6a7027bd/src/librustc_codegen_ssa/base.rs#L555-L557

and:

https://github.com/rust-lang/rust/blob/c196097e588b05e86b5ce6de992b2a6e6a7027bd/src/librustc_codegen_ssa/base.rs#L640-L642

However, `codegen_allocator` accepts a `TyCtxt` with any lifetime parameters (`tcx: TyCtxt<'_, '_, '_>`), while `write_metadata` requires that the `tcx` argument is of type `TyCtxt<'b, 'gcx, 'gcx>`. In my implementation, I've found that it's necessary for `tcx` in `codegen_allocator` to also have the `<'b, 'gcx, 'gcx>` lifetime parameters.

Have I misunderstood the purpose of the parameters of `TyCtxt`? I've read [here](https://rust-lang.github.io/rustc-guide/ty.html) that the last two parameters only need to be distinct if the function needs to be used during type inference, but I don't think that is the case here.

5 years agoRollup merge of #58921 - cuviper:issue-50582, r=varkor
Pietro Albini [Fri, 8 Mar 2019 08:42:00 +0000 (09:42 +0100)]
Rollup merge of #58921 - cuviper:issue-50582, r=varkor

Add an explicit test for issue #50582

This code no longer ICEs, and @yodaldevoid found that it was fixed by
commit fe5710a. While that added a similar test, we can explicitly test
this reproducer too.

Closes #50582.

5 years agoRollup merge of #58918 - gilescope:async-await-issue-testcase, r=petrochenkov
Pietro Albini [Fri, 8 Mar 2019 08:41:58 +0000 (09:41 +0100)]
Rollup merge of #58918 - gilescope:async-await-issue-testcase, r=petrochenkov

Regression test added for an async ICE.

Regression test for #57084 (as suggested in issue).

5 years agoRollup merge of #58916 - tspiteri:release-notes, r=petrochenkov
Pietro Albini [Fri, 8 Mar 2019 08:41:57 +0000 (09:41 +0100)]
Rollup merge of #58916 - tspiteri:release-notes, r=petrochenkov

Fix release note problems noticed after merging.

Cherry picked from stable branch.

5 years agoRollup merge of #58912 - pnkfelix:issue-58813-incr-comp-regress-test, r=petrochenkov
Pietro Albini [Fri, 8 Mar 2019 08:41:55 +0000 (09:41 +0100)]
Rollup merge of #58912 - pnkfelix:issue-58813-incr-comp-regress-test, r=petrochenkov

Regression test for #58813

Fix #58813

5 years agoRollup merge of #58911 - pnkfelix:issue-58435-regression-test, r=alexcrichton
Pietro Albini [Fri, 8 Mar 2019 08:41:54 +0000 (09:41 +0100)]
Rollup merge of #58911 - pnkfelix:issue-58435-regression-test, r=alexcrichton

Regression test for #58435.

Fix #58435

5 years agoRollup merge of #58906 - Nemo157:generator-state-debug-info, r=Zoxc
Pietro Albini [Fri, 8 Mar 2019 08:41:52 +0000 (09:41 +0100)]
Rollup merge of #58906 - Nemo157:generator-state-debug-info, r=Zoxc

Monomorphize generator field types for debuginfo

Fixes #58888

r? @Zoxc

5 years agoRollup merge of #58893 - benaryorg:thread_local_example_join, r=alexcrichton
Pietro Albini [Fri, 8 Mar 2019 08:41:50 +0000 (09:41 +0100)]
Rollup merge of #58893 - benaryorg:thread_local_example_join, r=alexcrichton

race condition in thread local storage example

The example had a potential race condition that would still pass the test.
If the thread which was supposed to modify it's own thread local was slower than the instruction to
modify in the main thread, then the test would pass even in case of a failure.
This is would be minor if the child thread was waited for since it check using an `assert_eq` for the
same thing, but vice versa.
However, if the `assert_eq` failed this would trigger a panic, which is not at all caught by the
example since the thread is not waited on.

Signed-off-by: benaryorg <binary@benary.org>
5 years agoRollup merge of #58891 - Delta-Psi:doc-fixes, r=Centril
Pietro Albini [Fri, 8 Mar 2019 08:41:49 +0000 (09:41 +0100)]
Rollup merge of #58891 - Delta-Psi:doc-fixes, r=Centril

Remove stray ` in the docs for the FromIterator implementation for Option

5 years agoRollup merge of #58883 - estebank:unused-closure-arg, r=varkor
Pietro Albini [Fri, 8 Mar 2019 08:41:47 +0000 (09:41 +0100)]
Rollup merge of #58883 - estebank:unused-closure-arg, r=varkor

Suggest appropriate code for unused field when destructuring pattern

Fix #56472.

5 years agoRollup merge of #58877 - estebank:macro-borrow, r=davidtwco
Pietro Albini [Fri, 8 Mar 2019 08:41:45 +0000 (09:41 +0100)]
Rollup merge of #58877 - estebank:macro-borrow, r=davidtwco

Suggest removal of `&` when borrowing macro and appropriate

Fix #58815.

5 years agoRollup merge of #58861 - estebank:fix-negative-traits, r=petrochenkov
Pietro Albini [Fri, 8 Mar 2019 08:41:43 +0000 (09:41 +0100)]
Rollup merge of #58861 - estebank:fix-negative-traits, r=petrochenkov

Expand where negative supertrait specific error is shown

Fix #58857.

r? @petrochenkov

5 years agoRollup merge of #58369 - nox:sync-hash-map-entry, r=Amanieu
Pietro Albini [Fri, 8 Mar 2019 08:41:42 +0000 (09:41 +0100)]
Rollup merge of #58369 - nox:sync-hash-map-entry, r=Amanieu

Make the Entry API of HashMap<K, V> Sync and Send

Fixes #45219

5 years agoRollup merge of #58269 - taeguk:add-some-sources-to-rust-src-distribution, r=Mark...
Pietro Albini [Fri, 8 Mar 2019 08:41:40 +0000 (09:41 +0100)]
Rollup merge of #58269 - taeguk:add-some-sources-to-rust-src-distribution, r=Mark-Simulacrum

Add librustc and libsyntax to rust-src distribution.

Fixes #58268.

5 years agoRollup merge of #58204 - estebank:impl-trait-semi, r=zackmdavis
Pietro Albini [Fri, 8 Mar 2019 08:41:38 +0000 (09:41 +0100)]
Rollup merge of #58204 - estebank:impl-trait-semi, r=zackmdavis

On return type `impl Trait` for block with no expr point at last semi

Partial solution, doesn't actually validate that the last statement in the function body can satisfy the trait bound, but it's a good incremental improvement over the status quo.

```
error[E0277]: the trait bound `(): Bar` is not satisfied
  --> $DIR/impl-trait-return-trailing-semicolon.rs:3:13
   |
LL | fn foo() -> impl Bar {
   |             ^^^^^^^^ the trait `Bar` is not implemented for `()`
LL |     5;
   |      - consider removing this semicolon
   |
   = note: the return type of a function must have a statically known size
```

Partially addresses #54771.

5 years agoRollup merge of #58080 - MikaelUrankar:freebsd_arm, r=sanxiyn
Pietro Albini [Fri, 8 Mar 2019 08:41:36 +0000 (09:41 +0100)]
Rollup merge of #58080 - MikaelUrankar:freebsd_arm, r=sanxiyn

Add FreeBSD armv6 and armv7 targets

5 years agoAuto merge of #58903 - estebank:forgetful-delims, r=petrochenkov
bors [Fri, 8 Mar 2019 08:39:13 +0000 (08:39 +0000)]
Auto merge of #58903 - estebank:forgetful-delims, r=petrochenkov

Always emit unclosed delimiter diagnostics

Fix #58886.

5 years agoAuto merge of #58013 - Zoxc:stable-hash-macro-simple, r=oli-obk
bors [Fri, 8 Mar 2019 05:46:08 +0000 (05:46 +0000)]
Auto merge of #58013 - Zoxc:stable-hash-macro-simple, r=oli-obk

Create a derive macro for HashStable and allow proc macros in rustc

A combination of https://github.com/rust-lang/rust/pull/56864 and https://github.com/rust-lang/rust/pull/56795. There were complications with using `serde_derive` as rustc doesn't know which crate to use for the host when there is a serde_derive in the sysroot and cargo passes another on the command line built from crates.io.

r? @eddyb (for proc macro changes) @alexcrichton (for rustbuild changes) @michaelwoerister (for the macro itself)

5 years agoAdd a test for invalid const arguments
varkor [Thu, 7 Mar 2019 23:39:01 +0000 (23:39 +0000)]
Add a test for invalid const arguments

5 years agoupdate treat-err-as-bug test
Esteban Küber [Thu, 7 Mar 2019 21:13:13 +0000 (13:13 -0800)]
update treat-err-as-bug test

5 years agoUpdate treat-err-as-bug help text
Esteban Küber [Thu, 7 Mar 2019 19:18:05 +0000 (11:18 -0800)]
Update treat-err-as-bug help text

5 years agoFix with_emitter callers
Esteban Küber [Thu, 7 Mar 2019 19:15:47 +0000 (11:15 -0800)]
Fix with_emitter callers

5 years agofix bad logic
Esteban Küber [Thu, 7 Mar 2019 16:09:41 +0000 (08:09 -0800)]
fix bad logic

5 years agoFix segfaults in release build C-variadic fns
Dan Robertson [Thu, 7 Mar 2019 03:50:50 +0000 (03:50 +0000)]
Fix segfaults in release build C-variadic fns

`va_start` and `va_end` must be called to initialize/cleanup the
"spoofed" `VaList` in a Rust defined C-variadic function even if
the `VaList` is not used.

5 years agohir: remove some obsolete NodeId methods
ljedrz [Thu, 7 Mar 2019 14:46:41 +0000 (15:46 +0100)]
hir: remove some obsolete NodeId methods

5 years agohir: remove Visitor::visit_def_mention
ljedrz [Thu, 7 Mar 2019 11:52:38 +0000 (12:52 +0100)]
hir: remove Visitor::visit_def_mention

5 years agohir: replace NodeId with HirId in Destination
ljedrz [Thu, 7 Mar 2019 11:43:27 +0000 (12:43 +0100)]
hir: replace NodeId with HirId in Destination

5 years agohir: remove NodeId from PatKind
ljedrz [Thu, 7 Mar 2019 11:18:59 +0000 (12:18 +0100)]
hir: remove NodeId from PatKind

5 years agoKeep current behavior while accepting error count
Esteban Küber [Thu, 7 Mar 2019 09:54:53 +0000 (01:54 -0800)]
Keep current behavior while accepting error count

5 years agoActually publish miri in the manifest
Oliver Scherer [Thu, 7 Mar 2019 09:27:58 +0000 (10:27 +0100)]
Actually publish miri in the manifest

5 years agofix bad use of with_emitter
Esteban Küber [Thu, 7 Mar 2019 08:27:41 +0000 (00:27 -0800)]
fix bad use of with_emitter

5 years agohir: remove NodeId from PathSegment
ljedrz [Wed, 6 Mar 2019 13:44:24 +0000 (14:44 +0100)]
hir: remove NodeId from PathSegment

5 years agoHirIdification: replace NodeId method calls
ljedrz [Mon, 4 Mar 2019 08:00:30 +0000 (09:00 +0100)]
HirIdification: replace NodeId method calls

5 years agoFix incorrect default
Esteban Kuber [Thu, 7 Mar 2019 03:57:04 +0000 (19:57 -0800)]
Fix incorrect default

5 years agoMake `-Z treat-err-as-bug` take a number of errors to be emitted
Esteban Küber [Thu, 7 Mar 2019 03:49:39 +0000 (19:49 -0800)]
Make `-Z treat-err-as-bug` take a number of errors to be emitted

`-Z treat-err-as-bug=0` will cause `rustc` to panic after the first
error is reported. `-Z treat-err-as-bug=2` will cause `rustc` to
panic after 3 errors have been reported.

5 years agoRely on drop to emit unclosed delims
Esteban Küber [Thu, 7 Mar 2019 03:09:24 +0000 (19:09 -0800)]
Rely on drop to emit unclosed delims

5 years agoSimplify code
Esteban Küber [Mon, 4 Mar 2019 20:59:43 +0000 (12:59 -0800)]
Simplify code

5 years agoAdd regression test for #58886
Esteban Küber [Mon, 4 Mar 2019 00:59:24 +0000 (16:59 -0800)]
Add regression test for #58886

5 years agoAlways emit mismatched delim errors, never panic
Esteban Küber [Sun, 3 Mar 2019 22:11:41 +0000 (14:11 -0800)]
Always emit mismatched delim errors, never panic

5 years agoCollect unclosed delimiters in parent parser
Esteban Küber [Sun, 3 Mar 2019 20:45:49 +0000 (12:45 -0800)]
Collect unclosed delimiters in parent parser

5 years agoEmit missing unclosed delimiter errors
Esteban Küber [Sun, 3 Mar 2019 20:14:25 +0000 (12:14 -0800)]
Emit missing unclosed delimiter errors

5 years agoPanic when unmatched delimiters aren't emitted
Esteban Küber [Sun, 3 Mar 2019 19:13:19 +0000 (11:13 -0800)]
Panic when unmatched delimiters aren't emitted

5 years agoReduce test case
Esteban Küber [Sat, 2 Mar 2019 06:35:21 +0000 (22:35 -0800)]
Reduce test case

5 years agoEmit unclosed delimiters during recovery
Esteban Küber [Sat, 2 Mar 2019 06:14:22 +0000 (22:14 -0800)]
Emit unclosed delimiters during recovery

5 years agoBail when encountering a second unexpected token in the same span
Esteban Küber [Sat, 2 Mar 2019 05:47:06 +0000 (21:47 -0800)]
Bail when encountering a second unexpected token in the same span

5 years agoDo not panic on missing close paren
Esteban Küber [Sat, 2 Mar 2019 00:28:04 +0000 (16:28 -0800)]
Do not panic on missing close paren

Fix #58856.

5 years agoAuto merge of #58583 - varkor:const-generics-ty, r=oli-obk
bors [Thu, 7 Mar 2019 00:27:07 +0000 (00:27 +0000)]
Auto merge of #58583 - varkor:const-generics-ty, r=oli-obk

Add const generics to ty (and transitive dependencies)

Split out from #53645. This work is a collaborative effort with @yodaldevoid.

There are a number of stubs. Some I plan to leave for the next PRs (e.g. `infer` and `rustdoc`). Others I can either fix up in this PR, or as follow ups (which would avoid the time-consuming rebasing).

It was a little hard to split this up, as so much depends on ty and friends. Apologies for the large diff.

r? @eddyb

5 years agoSurround found token with `
Esteban Küber [Wed, 6 Mar 2019 21:16:52 +0000 (13:16 -0800)]
Surround found token with `

5 years agoApply suggestions from code review
Ralf Jung [Wed, 6 Mar 2019 19:02:50 +0000 (20:02 +0100)]
Apply suggestions from code review

5 years agoApply suggestions from code review
Mazdak Farrokhzad [Wed, 6 Mar 2019 18:57:00 +0000 (19:57 +0100)]
Apply suggestions from code review

Co-Authored-By: RalfJung <post@ralfj.de>
5 years agoMake Cargo a rustc tool again
John Kåre Alsaker [Wed, 6 Mar 2019 17:48:08 +0000 (18:48 +0100)]
Make Cargo a rustc tool again

5 years agorust-lldb: fix crash when printing empty string
Andy Russell [Fri, 22 Feb 2019 01:21:50 +0000 (20:21 -0500)]
rust-lldb: fix crash when printing empty string

5 years agoRegression test for issue #58158.
Felix S. Klock II [Wed, 6 Mar 2019 13:08:53 +0000 (14:08 +0100)]
Regression test for issue #58158.

5 years agoAvoid ICE during `repr(packed)` well-formedness check via delay_span_bug.
Felix S. Klock II [Wed, 6 Mar 2019 12:49:48 +0000 (13:49 +0100)]
Avoid ICE during `repr(packed)` well-formedness check via delay_span_bug.

(It is possible that there is a more fundamental invariant being
violated, in terms of the `check_type_defn` code assuming that lifting
to tcx will always succeed. But I am unaware of any test input that
hits this that isn't already type-incorrect in some fashion.)

5 years agoRegression test for #58813
Felix S. Klock II [Mon, 4 Mar 2019 12:55:32 +0000 (13:55 +0100)]
Regression test for #58813

(Update: Fixed test; revision is meant to introduce compile-failure, w/o ICE.)