]> git.lizzy.rs Git - rust.git/log
rust.git
5 years agoAuto merge of #55780 - ogoffart:span_source_text, r=petrochenkov
bors [Wed, 27 Mar 2019 08:58:40 +0000 (08:58 +0000)]
Auto merge of #55780 - ogoffart:span_source_text, r=petrochenkov

Introduce proc_macro::Span::source_text

A function to extract the actual source behind a Span.

Background: I would like to use `syn` in a `build.rs` script to parse the rust code, and extract part of the source code. However, `syn` only gives access to proc_macro2::Span, and i would like to get the source code behind that.
I opened an issue on proc_macro2 bug tracker for this feature https://github.com/alexcrichton/proc-macro2/issues/110  and @alexcrichton said the feature should first go upstream in proc_macro.  So there it is!

Since most of the Span API is unstable anyway, this is guarded by the same `proc_macro_span` feature as everything else.

5 years agoAuto merge of #59447 - GuillaumeGomez:rollup, r=GuillaumeGomez
bors [Wed, 27 Mar 2019 05:25:50 +0000 (05:25 +0000)]
Auto merge of #59447 - GuillaumeGomez:rollup, r=GuillaumeGomez

Rollup of 7 pull requests

Successful merges:

 - #59004 ([rustdoc] Improve "in parameters" search and search more generally)
 - #59026 (Fix moving text in search tabs headers)
 - #59197 (Exclude old book redirect stubs from search engines)
 - #59330 (Improve the documentation for std::convert (From, Into, AsRef and AsMut))
 - #59424 (Fix code block display in portability element in dark theme)
 - #59427 (Link to PhantomData in NonNull documentation)
 - #59432 (Improve some compiletest documentation)

Failed merges:

r? @ghost

5 years agoAuto merge of #59285 - cuviper:llvm-8.0.0, r=alexcrichton
bors [Wed, 27 Mar 2019 01:56:14 +0000 (01:56 +0000)]
Auto merge of #59285 - cuviper:llvm-8.0.0, r=alexcrichton

Rebase LLVM to 8.0.0 final

r? @alexcrichton

5 years agoRollup merge of #59432 - phansch:compiletest_docs, r=alexcrichton
Guillaume Gomez [Tue, 26 Mar 2019 21:26:46 +0000 (22:26 +0100)]
Rollup merge of #59432 - phansch:compiletest_docs, r=alexcrichton

Improve some compiletest documentation

This adds some missing documentation for rustfix related things and adds
a test for the `is_test` function.

5 years agoRollup merge of #59427 - czipperz:non_null_doc_links, r=Mark-Simulacrum
Guillaume Gomez [Tue, 26 Mar 2019 21:26:45 +0000 (22:26 +0100)]
Rollup merge of #59427 - czipperz:non_null_doc_links, r=Mark-Simulacrum

Link to PhantomData in NonNull documentation

5 years agoRollup merge of #59424 - GuillaumeGomez:fix-stability-css, r=QuietMisdreavus
Guillaume Gomez [Tue, 26 Mar 2019 21:26:43 +0000 (22:26 +0100)]
Rollup merge of #59424 - GuillaumeGomez:fix-stability-css, r=QuietMisdreavus

Fix code block display in portability element in dark theme

Fixes #59261.

r? @QuietMisdreavus

A little screenshot:

<img width="521" alt="Screenshot 2019-03-26 at 00 37 49" src="https://user-images.githubusercontent.com/3050060/54961082-9a41c600-4f5f-11e9-8040-ae6f26d368ff.png">

5 years agoRollup merge of #59330 - DevQps:improve-std-convert-documentation, r=steveklabnik
Guillaume Gomez [Tue, 26 Mar 2019 21:26:42 +0000 (22:26 +0100)]
Rollup merge of #59330 - DevQps:improve-std-convert-documentation, r=steveklabnik

Improve the documentation for std::convert (From, Into, AsRef and AsMut)

# Description
In this PR I updated the documentation of From, Into, AsRef and AsMut, as well as the general std::convert module documentation. The discussion in #59163 provided information that was not yet present in the docs, or was not expressed clearly enough. I tried to clarify the examples that were already present in the docs as well as add more information about considered best-practices that came out of the discussion in #59163

@steveklabnik I hope I didn't change too much. This is an initial version! I will scan through everything tomorrow as well again to see if I made any typo's or errors, and maybe make some small changes here and there.

All suggestions are welcome!

closes #59163

5 years agoRollup merge of #59197 - kornelski:redir, r=steveklabnik
Guillaume Gomez [Tue, 26 Mar 2019 21:26:40 +0000 (22:26 +0100)]
Rollup merge of #59197 - kornelski:redir, r=steveklabnik

Exclude old book redirect stubs from search engines

Adds `<meta name="robots" content="noindex,follow">` to the `<head>` of old stub pages pointing to the second edition of the book.

This is continuation of https://github.com/rust-lang/book/pull/1788

5 years agoRollup merge of #59026 - GuillaumeGomez:search-tabs-header, r=QuietMisdreavus
Guillaume Gomez [Tue, 26 Mar 2019 21:26:39 +0000 (22:26 +0100)]
Rollup merge of #59026 - GuillaumeGomez:search-tabs-header, r=QuietMisdreavus

Fix moving text in search tabs headers

Fixes #59005.

Now, the text in the search tabs headers isn't moving anymore.

r? @QuietMisdreavus

5 years agoRollup merge of #59004 - GuillaumeGomez:generics-handling, r=QuietMisdreavus
Guillaume Gomez [Tue, 26 Mar 2019 21:26:36 +0000 (22:26 +0100)]
Rollup merge of #59004 - GuillaumeGomez:generics-handling, r=QuietMisdreavus

[rustdoc] Improve "in parameters" search and search more generally

Fixes #58230.

r? @QuietMisdreavus

5 years agoAuto merge of #59433 - Centril:rollup, r=Centril
bors [Tue, 26 Mar 2019 17:25:16 +0000 (17:25 +0000)]
Auto merge of #59433 - Centril:rollup, r=Centril

Rollup of 10 pull requests

Successful merges:

 - #59150 (Expand suggestions for type ascription parse errors)
 - #59232 (Merge `Promoted` and `Static` in `mir::Place`)
 - #59267 (Provide suggestion when using field access instead of path)
 - #59315 (Add no_hash to query macro and move some queries over)
 - #59334 (Update build instructions in README.md)
 - #59362 (Demo `FromIterator` short-circuiting)
 - #59374 (Simplify checked_duration_since)
 - #59389 (replace redundant note in deprecation warning)
 - #59410 (Clarify `{Ord,f32,f64}::clamp` docs a little)
 - #59419 (Utilize `?` instead of `return None`.)

Failed merges:

r? @ghost

5 years agoAuto merge of #59434 - Centril:bootstrap-to-2019-03-20, r=Mark-Simulacrum
bors [Tue, 26 Mar 2019 13:58:30 +0000 (13:58 +0000)]
Auto merge of #59434 - Centril:bootstrap-to-2019-03-20, r=Mark-Simulacrum

Bump bootstrap compiler to 2019-03-20

Includes https://github.com/rust-lang/rust/pull/59295 and by extension https://github.com/rust-lang/rust/pull/59047, which unblocks https://github.com/rust-lang/rust/pull/58253, https://github.com/rust-lang/rust/pull/58837, and possibly https://github.com/rust-lang/rust/pull/59336, and so therefore:

@bors p=50

r? @Mark-Simulacrum

cc @pietroalbini

5 years agobump bootstrap; adjust stage0 uses in libsyntax_pos
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:57:42 +0000 (09:57 +0100)]
bump bootstrap; adjust stage0 uses in libsyntax_pos

5 years agobump bootstrap; adjust stage0 uses in core::ptr.
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:57:25 +0000 (09:57 +0100)]
bump bootstrap; adjust stage0 uses in core::ptr.

5 years agobump bootstrap => 2019-03-20
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:53:47 +0000 (09:53 +0100)]
bump bootstrap => 2019-03-20

5 years agoRollup merge of #59419 - frewsxcv:frewsxcv-qu, r=varkor
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:53 +0000 (09:05 +0100)]
Rollup merge of #59419 - frewsxcv:frewsxcv-qu, r=varkor

Utilize `?` instead of `return None`.

None

5 years agoRollup merge of #59410 - tbu-:pr_doc_clarifyclamp, r=joshtriplett
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:52 +0000 (09:05 +0100)]
Rollup merge of #59410 - tbu-:pr_doc_clarifyclamp, r=joshtriplett

Clarify `{Ord,f32,f64}::clamp` docs a little

Explicitly call out when it returns NaN, adhere to the panic doc
guidelines.

5 years agoRollup merge of #59389 - euclio:deprecated-suggestion, r=varkor
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:51 +0000 (09:05 +0100)]
Rollup merge of #59389 - euclio:deprecated-suggestion, r=varkor

replace redundant note in deprecation warning

5 years agoRollup merge of #59374 - faern:simplify-checked-duration-since, r=shepmaster
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:48 +0000 (09:05 +0100)]
Rollup merge of #59374 - faern:simplify-checked-duration-since, r=shepmaster

Simplify checked_duration_since

This follows the same design as we updated to in #56490. Internally, all the system specific time implementations are checked, no panics. Then the panicking publicly exported API can just call the checked version of itself and make do with a single panic (`expect`) at the top.

Since the internal sys implementations are now checked, this gets rid of the extra `if self >= &earlier` check in `checked_duration_since`. Except likely making the generated machine code simpler, it also reduces the algorithm from "Check panic condition -> call possibly panicking method" to just "call non panicking method".

Added two test cases:
* Edge case: Make sure `checked_duration_since` on two equal `Instant`s produce a zero duration, not a `None`.
* Most common/intended usage: Make sure `later.checked_duration_since(earlier)`, returns an expected value.

5 years agoRollup merge of #59362 - pnkfelix:demo-from-iterator-short-circuiting, r=Centril
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:47 +0000 (09:05 +0100)]
Rollup merge of #59362 - pnkfelix:demo-from-iterator-short-circuiting, r=Centril

Demo `FromIterator` short-circuiting

while looking at a FIXME in `FromIterator for Option` and `FromIterator for Result`, I realized that the current documentation does not have example code showing exactly what is meant by "no further elements are taken."

The code snippets provided here are meant to correct that.

5 years agoRollup merge of #59334 - ewk:readme, r=Mark-Simulacrum
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:46 +0000 (09:05 +0100)]
Rollup merge of #59334 - ewk:readme, r=Mark-Simulacrum

Update build instructions in README.md

Add additional instructions when `sudo ./x.py install` fails to
complete the build.

This resolves issues #40108 and #49269.

r? @steveklabnik

5 years agoRollup merge of #59315 - Zoxc:move-query, r=oli-obk
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:44 +0000 (09:05 +0100)]
Rollup merge of #59315 - Zoxc:move-query, r=oli-obk

Add no_hash to query macro and move some queries over

r? @oli-obk

5 years agoRollup merge of #59267 - estebank:assoc-const-as-field, r=davidtwco
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:43 +0000 (09:05 +0100)]
Rollup merge of #59267 - estebank:assoc-const-as-field, r=davidtwco

Provide suggestion when using field access instead of path

When trying to access an associated constant as if it were a field of
an instance, provide a suggestion for the correct syntax.

Fix #57316.

5 years agoRollup merge of #59232 - saleemjaffer:mir_place_refactor, r=oli-obk
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:40 +0000 (09:05 +0100)]
Rollup merge of #59232 - saleemjaffer:mir_place_refactor, r=oli-obk

Merge `Promoted` and `Static` in `mir::Place`

fixes #53848

5 years agoRollup merge of #59150 - estebank:type-ascription, r=varkor
Mazdak Farrokhzad [Tue, 26 Mar 2019 08:05:39 +0000 (09:05 +0100)]
Rollup merge of #59150 - estebank:type-ascription, r=varkor

Expand suggestions for type ascription parse errors

Fix #51222. CC #48016, #47666, #54516, #34255.

5 years agoImprove some compiletest documentation
Philipp Hansch [Tue, 26 Mar 2019 06:47:38 +0000 (07:47 +0100)]
Improve some compiletest documentation

This adds some missing documentation for rustfix related things and adds
a test for the `is_test` function.

5 years agoAuto merge of #59136 - jethrogb:jb/sgx-std-test, r=sanxiyn
bors [Tue, 26 Mar 2019 01:48:34 +0000 (01:48 +0000)]
Auto merge of #59136 - jethrogb:jb/sgx-std-test, r=sanxiyn

SGX target: fix std unit tests

This fixes some tests and some code in the SGX sys implementation to make the `std` unit test suite pass.

#59009 must be merged first.

5 years agoFix code block display in portability element in dark theme
Guillaume Gomez [Mon, 25 Mar 2019 23:30:33 +0000 (00:30 +0100)]
Fix code block display in portability element in dark theme

5 years agoUtilize `?` instead of `return None`.
Corey Farwell [Mon, 25 Mar 2019 22:16:40 +0000 (23:16 +0100)]
Utilize `?` instead of `return None`.

5 years agoLink to PhantomData in NonNull documentation
Chris Gregory [Mon, 25 Mar 2019 22:04:42 +0000 (18:04 -0400)]
Link to PhantomData in NonNull documentation

5 years agoFormatting changes, including better wrapping and creating short summary lines.
Christian [Mon, 25 Mar 2019 21:21:05 +0000 (22:21 +0100)]
Formatting changes, including better wrapping and creating short summary lines.

5 years agoSGX target: fix std unit tests
Jethro Beekman [Tue, 12 Mar 2019 17:58:30 +0000 (10:58 -0700)]
SGX target: fix std unit tests

5 years agoAuto merge of #59258 - euclio:suggestions-filter-crate, r=oli-obk
bors [Mon, 25 Mar 2019 16:34:15 +0000 (16:34 +0000)]
Auto merge of #59258 - euclio:suggestions-filter-crate, r=oli-obk

filter suggestions from extern prelude

Fixes #59027.

Modifies the candidate gathering code to call `filter_fn` on extern crates, which causes them to be filtered out when looking for a type.

5 years agoAuto merge of #59256 - petrochenkov:derval2, r=Zoxc
bors [Mon, 25 Mar 2019 12:21:46 +0000 (12:21 +0000)]
Auto merge of #59256 - petrochenkov:derval2, r=Zoxc

Make meta-item API compatible with `LocalInternedString::get` soundness fix

r? @Zoxc

5 years agoClarify `{Ord,f32,f64}::clamp` docs a little
Tobias Bucher [Mon, 25 Mar 2019 11:52:42 +0000 (12:52 +0100)]
Clarify `{Ord,f32,f64}::clamp` docs a little

Explicitly call out when it returns NaN, adhere to the panic doc
guidelines.

5 years agoadd missing braces
Felix S Klock II [Mon, 25 Mar 2019 10:50:11 +0000 (11:50 +0100)]
add missing braces

add missing braces analogous to those suggested by killercup

5 years agoUpdate src/libcore/option.rs
Pascal Hertleif [Mon, 25 Mar 2019 10:48:08 +0000 (11:48 +0100)]
Update src/libcore/option.rs

Co-Authored-By: pnkfelix <pnkfelix@pnkfx.org>
5 years agoAuto merge of #59242 - euclio:asm-ice, r=nagisa
bors [Mon, 25 Mar 2019 09:05:00 +0000 (09:05 +0000)]
Auto merge of #59242 - euclio:asm-ice, r=nagisa

make asm diagnostic instruction optional

`DiagnosticInfoInlineAsm::getInstruction` may return a null pointer, so
the instruction shouldn't be blindly unwrapped.

Reopening from #55193. I was unable to trigger the assertion on Windows after rebasing.

Fixes #23458.
Fixes #55216.

5 years agoAuto merge of #59240 - euclio:struct-field-span, r=oli-obk
bors [Mon, 25 Mar 2019 05:40:12 +0000 (05:40 +0000)]
Auto merge of #59240 - euclio:struct-field-span, r=oli-obk

use the identifier span for missing struct field

5 years agoDeduplicate code for path suggestion
Esteban Küber [Wed, 20 Mar 2019 23:03:29 +0000 (16:03 -0700)]
Deduplicate code for path suggestion

5 years agoProvide suggestion when using field access instead of path
Esteban Küber [Mon, 18 Mar 2019 04:18:06 +0000 (21:18 -0700)]
Provide suggestion when using field access instead of path

When trying to access an associated constant as if it were a field of
an instance, provide a suggestion for the correct syntax.

5 years agoAuto merge of #59195 - estebank:for-loop-move, r=petrochenkov
bors [Mon, 25 Mar 2019 00:38:15 +0000 (00:38 +0000)]
Auto merge of #59195 - estebank:for-loop-move, r=petrochenkov

When moving out of a for loop head, suggest borrowing it

When encountering code like the following, suggest borrowing the for loop
head to avoid moving it into the for loop pattern:

```
fn main() {
    let a = vec![1, 2, 3];
    for i in &a {
        for j in a {
            println!("{} * {} = {}", i, j, i * j);
        }
    }
}
```

Fix #25534.

5 years agoAuto merge of #59382 - davidtwco:rfc-2008-refactoring, r=petrochenkov
bors [Sun, 24 Mar 2019 21:26:57 +0000 (21:26 +0000)]
Auto merge of #59382 - davidtwco:rfc-2008-refactoring, r=petrochenkov

Separate `DefId`s for variants and their constructors

Part of #44109. Split off from #59376. See [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/rfc-2008/near/132663140) for previous discussion.

r? @petrochenkov

5 years agoAdd nll test
Esteban Küber [Sun, 24 Mar 2019 19:58:30 +0000 (12:58 -0700)]
Add nll test

5 years agoWhen moving out of a for loop head, suggest borrowing it
Esteban Küber [Thu, 14 Mar 2019 23:09:47 +0000 (16:09 -0700)]
When moving out of a for loop head, suggest borrowing it

When encountering code like the following, suggest borrowing the for loop
head to avoid moving it into the for loop pattern:

```
fn main() {
    let a = vec![1, 2, 3];
    for i in &a {
        for j in a {
            println!("{} * {} = {}", i, j, i * j);
        }
    }
}
```

5 years agoRe-order fields in `Def::Ctor`.
David Wood [Sun, 24 Mar 2019 18:16:44 +0000 (19:16 +0100)]
Re-order fields in `Def::Ctor`.

This commit moves the `DefId` field of `Def::Ctor` to be the first
field.

5 years agoMove `CtorOf` into `hir::def`.
David Wood [Sun, 24 Mar 2019 17:54:56 +0000 (18:54 +0100)]
Move `CtorOf` into `hir::def`.

This commit moves the definition of `CtorOf` from `rustc::hir` to
`rustc::hir::def` and adds imports wherever it is used.

5 years agoAuto merge of #59397 - kennytm:rollup, r=kennytm
bors [Sun, 24 Mar 2019 17:53:45 +0000 (17:53 +0000)]
Auto merge of #59397 - kennytm:rollup, r=kennytm

Rollup of 7 pull requests

Successful merges:

 - #59213 (Track changes to robots.txt)
 - #59239 (Remove inline assembly from hint::spin_loop)
 - #59251 (Use a valid name for graphviz graphs)
 - #59296 (Do not encode gensymed imports in metadata)
 - #59328 (Implement specialized nth_back() for Box and Windows.)
 - #59355 (Fix ICE with const generic param in struct)
 - #59377 (Correct minimum system LLVM version in tests)

5 years agoRemove `CtorOf` from `Node::Ctor`.
David Wood [Sun, 24 Mar 2019 17:21:59 +0000 (18:21 +0100)]
Remove `CtorOf` from `Node::Ctor`.

This commit removes `CtorOf` from `Node::Ctor` as the parent of the
constructor can be determined by looking at the node's parent in the few
places where knowing this is necessary.

5 years agomake asm diagnostic instruction optional
Andy Russell [Fri, 19 Oct 2018 00:34:01 +0000 (20:34 -0400)]
make asm diagnostic instruction optional

`DiagnosticInfoInlineAsm::getInstruction` may return a null pointer, so
the instruction shouldn't be blindly unwrapped.

5 years agoRevert changes to creation of fictive constructors for struct variants
Vadim Petrochenkov [Sun, 24 Mar 2019 15:41:09 +0000 (18:41 +0300)]
Revert changes to creation of fictive constructors for struct variants

5 years agoreplace redundant note in deprecation warning
Andy Russell [Sun, 24 Mar 2019 01:13:57 +0000 (21:13 -0400)]
replace redundant note in deprecation warning

5 years agoMerge `DefPathData::VariantCtor` and `DefPathData::StructCtor`
Vadim Petrochenkov [Sun, 24 Mar 2019 14:49:58 +0000 (17:49 +0300)]
Merge `DefPathData::VariantCtor` and `DefPathData::StructCtor`

5 years agoRollup merge of #59377 - smaeul:patch/system-llvm, r=nikic
kennytm [Sun, 24 Mar 2019 07:32:57 +0000 (15:32 +0800)]
Rollup merge of #59377 - smaeul:patch/system-llvm, r=nikic

Correct minimum system LLVM version in tests

Since commit 9452a8dfa3ba, the new debug info format is only generated
for LLVM 8 and newer versions. However, the tests still assume that LLVM
7 will use the new debug info format. Fix the tests (and a comment in
the code) to match the actual version check.

5 years agoSlightly more uniform treatment of struct and variant constructors
Vadim Petrochenkov [Sun, 24 Mar 2019 12:29:57 +0000 (15:29 +0300)]
Slightly more uniform treatment of struct and variant constructors

5 years agoAuto merge of #58305 - scalexm:chalk-continued, r=nikomatsakis
bors [Sun, 24 Mar 2019 14:26:11 +0000 (14:26 +0000)]
Auto merge of #58305 - scalexm:chalk-continued, r=nikomatsakis

(WIP) Small fixes in chalkification

Small fixes around region constraints and builtin impls. There are still some type inference errors, for example the following code errors out:
```rust
fn main() {
    let mut x: Vec<i32> = Vec::new();
    //                    ^^^^^^^^ cannot infer type for `std::vec::Vec<_>`
}
```
but explicitly specifying `Vec::<i32>::new` works.

With these few fixes, the following code now passes type-checking:
```rust
fn main() {
    let mut x: Vec<i32> = Vec::<i32>::new();
    x.push(5);
    println!("{:?}", x);
}
```

I also fixed the implied bounds bug as discussed on Zulip and in https://github.com/rust-lang-nursery/chalk/pull/206

cc @tmandry
r? @nikomatsakis

5 years agoRemove `VariantDef::parent_did`
Vadim Petrochenkov [Sun, 24 Mar 2019 09:09:44 +0000 (12:09 +0300)]
Remove `VariantDef::parent_did`

5 years agoRollup merge of #59355 - varkor:const-param-struct-ice, r=petrochenkov
kennytm [Sun, 24 Mar 2019 07:32:54 +0000 (15:32 +0800)]
Rollup merge of #59355 - varkor:const-param-struct-ice, r=petrochenkov

Fix ICE with const generic param in struct

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

r? @petrochenkov

5 years agoRollup merge of #59328 - koalatux:iter-nth-back, r=scottmcm
kennytm [Sun, 24 Mar 2019 07:32:52 +0000 (15:32 +0800)]
Rollup merge of #59328 - koalatux:iter-nth-back, r=scottmcm

Implement specialized nth_back() for Box and Windows.

Hi there, this is my first pull request to rust :-)

I started implementing some specializations for DoubleEndedIterator::nth_back() and these are the first two. The problem has been discussed in #54054 and nth_back() is tracked in #56995.

I'm stuck with the next implementation so I though I do a PR for the ones I'm confident with to get some feedback.

5 years agoRollup merge of #59296 - petrochenkov:stdup, r=estebank
kennytm [Sun, 24 Mar 2019 07:32:49 +0000 (15:32 +0800)]
Rollup merge of #59296 - petrochenkov:stdup, r=estebank

Do not encode gensymed imports in metadata

(Unless they are underscore `_` imports which are re-gensymed on crate loading, see https://github.com/rust-lang/rust/pull/56392.)

We cannot encode gensymed imports properly in metadata and if we encode them improperly, we can get erroneous name conflicts downstream.
Gensymed imports are produced by the compiler, so we control their set, and can be sure that none of them needs being encoded for use from other crates.

A workaround that fixes https://github.com/rust-lang/rust/issues/59243.

5 years agoRollup merge of #59251 - matthewjasper:fix-graphviz, r=petrochenkov
kennytm [Sun, 24 Mar 2019 07:32:48 +0000 (15:32 +0800)]
Rollup merge of #59251 - matthewjasper:fix-graphviz, r=petrochenkov

Use a valid name for graphviz graphs

Hiridification has broken graphviz output because `HirId` has a more complex display implemetation than `NodeId`. Since the id was just used to generate a distinct identifier, we just pull out the various constituent indexed.

5 years agoRemove methods is_struct/is_tuple/is_unit from VariantData
Vadim Petrochenkov [Sat, 23 Mar 2019 21:06:58 +0000 (00:06 +0300)]
Remove methods is_struct/is_tuple/is_unit from VariantData

5 years agoSeparate variant id and variant constructor id.
David Wood [Thu, 21 Mar 2019 22:38:50 +0000 (23:38 +0100)]
Separate variant id and variant constructor id.

This commit makes two changes - separating the `NodeId` that identifies
an enum variant from the `NodeId` that identifies the variant's
constructor; and no longer creating a `NodeId` for `Struct`-style enum
variants and structs.

Separation of the variant id and variant constructor id will allow the
rest of RFC 2008 to be implemented by lowering the visibility of the
variant's constructor without lowering the visbility of the variant
itself.

No longer creating a `NodeId` for `Struct`-style enum variants and
structs mostly simplifies logic as previously this `NodeId` wasn't used.
There were various cases where the `NodeId` wouldn't be used unless
there was an unit or tuple struct or enum variant but not all uses of
this `NodeId` had that condition, by removing this `NodeId`, this must
be explicitly dealt with. This change mostly applied cleanly, but there
were one or two cases in name resolution and one case in type check
where the existing logic required a id for `Struct`-style enum variants
and structs.

5 years agoRollup merge of #59239 - gnzlbg:fix_spin_loop, r=nagisa
kennytm [Sun, 24 Mar 2019 07:32:45 +0000 (15:32 +0800)]
Rollup merge of #59239 - gnzlbg:fix_spin_loop, r=nagisa

Remove inline assembly from hint::spin_loop

This PR removes the inline assembly which was not required since these
instructions are available in core::arch, and extends support of
the spin_loop hint to arm targets with the v6 feature which also
support the yield instruction.

5 years agoRollup merge of #59213 - kornelski:robots, r=Mark-Simulacrum
kennytm [Sun, 24 Mar 2019 07:32:42 +0000 (15:32 +0800)]
Rollup merge of #59213 - kornelski:robots, r=Mark-Simulacrum

Track changes to robots.txt

Currently `robots.txt` of doc.rust-lang.org is not part of any repo, so there's [no way to contribute any changes to it](https://internals.rust-lang.org/t/deadlock-about-fixing-outdated-documentation-links-in-search-engines/9374), such as needed for #44894 and countless dupes of this issue.

I propose adding it to this repo. I'm not in control of the infrastructure, so I can't help to automate deployment of it, but even just having the file under source control is IMHO a step forward.

5 years agoAuto merge of #59199 - estebank:untrack-errors, r=eddyb
bors [Sun, 24 Mar 2019 05:38:10 +0000 (05:38 +0000)]
Auto merge of #59199 - estebank:untrack-errors, r=eddyb

Remove `track_errors` from `check_match`, `typeck_item_bodies` and `register_plugins`

In the spirit of continuing through errors in type checking (#39275), remove `track_errors` from a couple of locations in the codebase.

5 years agocode review fixes
Saleem Jaffer [Sun, 24 Mar 2019 03:29:11 +0000 (08:59 +0530)]
code review fixes

5 years agoAuto merge of #59084 - estebank:diagnostic-spans, r=davidtwco
bors [Sat, 23 Mar 2019 22:26:11 +0000 (22:26 +0000)]
Auto merge of #59084 - estebank:diagnostic-spans, r=davidtwco

Tweak some diagnostic spans

5 years agoFix span after rebase
Esteban Küber [Sat, 23 Mar 2019 21:10:29 +0000 (14:10 -0700)]
Fix span after rebase

5 years agoFix rebase
Esteban Küber [Sun, 17 Mar 2019 01:36:47 +0000 (18:36 -0700)]
Fix rebase

5 years agoMark duplicate import removal suggestion tool only
Esteban Küber [Mon, 11 Mar 2019 16:50:50 +0000 (09:50 -0700)]
Mark duplicate import removal suggestion tool only

5 years agoDeduplicate const eval error spans for better output
Esteban Küber [Mon, 11 Mar 2019 16:43:05 +0000 (09:43 -0700)]
Deduplicate const eval error spans for better output

5 years agoHide obvious suggestion from cli output
Esteban Küber [Mon, 11 Mar 2019 05:25:23 +0000 (22:25 -0700)]
Hide obvious suggestion from cli output

5 years agoTweak unnecessary import suggestion
Esteban Küber [Mon, 11 Mar 2019 03:05:01 +0000 (20:05 -0700)]
Tweak unnecessary import suggestion

5 years agoTweak unsupported negative trait bounds message
Esteban Küber [Mon, 11 Mar 2019 02:46:44 +0000 (19:46 -0700)]
Tweak unsupported negative trait bounds message

5 years agoSwap primary/secondary spans for E0458
Esteban Küber [Mon, 11 Mar 2019 01:03:59 +0000 (18:03 -0700)]
Swap primary/secondary spans for E0458

5 years agoSwap const evaluation lint spans to point at problem in primary span
Esteban Küber [Mon, 11 Mar 2019 00:28:52 +0000 (17:28 -0700)]
Swap const evaluation lint spans to point at problem in primary span

5 years agoTweak spans for E0599
Esteban Küber [Sun, 10 Mar 2019 23:20:15 +0000 (16:20 -0700)]
Tweak spans for E0599

5 years agoAuto merge of #59068 - ljedrz:kill_off_NodeId_stragglers, r=Zoxc
bors [Sat, 23 Mar 2019 17:34:18 +0000 (17:34 +0000)]
Auto merge of #59068 - ljedrz:kill_off_NodeId_stragglers, r=Zoxc

HirIdification: kill off NodeId stragglers

The final stages of HirIdification (#57578).

This PR, along with https://github.com/rust-lang/rust/pull/59042, should finalize the HirIdification process (at least the more straightforward bits).

- replace `NodeId` with `HirId` in `trait_impls`
- remove all `NodeId`s from `borrowck`
- remove all `NodeId`s from `typeck`
- remove all `NodeId`s from `mir`
- remove `trait_auto_impl` (unused)

I would be cool to also remove `NodeId` from `hir::def::Def`, `middle::privacy::AccessLevel`  and `hir::ItemId`, but I don't know if this is feasible.

I'll be happy to do more if I've missed anything.

5 years agoadding mir::StaticKind enum for static and promoted
Saleem Jaffer [Sat, 23 Mar 2019 12:59:02 +0000 (18:29 +0530)]
adding mir::StaticKind enum for static and promoted

5 years agoAdd test
Guillaume Gomez [Thu, 7 Mar 2019 23:16:48 +0000 (00:16 +0100)]
Add test

5 years agocleanup
Guillaume Gomez [Thu, 7 Mar 2019 22:32:42 +0000 (23:32 +0100)]
cleanup

5 years agoUse `if let` instead of `match`
varkor [Sat, 23 Mar 2019 13:05:36 +0000 (13:05 +0000)]
Use `if let` instead of `match`

5 years agoAuto merge of #59096 - ljedrz:HirIdify_AccessLevel, r=Zoxc
bors [Sat, 23 Mar 2019 12:21:27 +0000 (12:21 +0000)]
Auto merge of #59096 - ljedrz:HirIdify_AccessLevel, r=Zoxc

middle: replace NodeId with HirId in AccessLevels

Pushing the limits of HirIdification (#57578).

Replaces `NodeId` with `HirId` in `middle::privacy::AccessLevels`. Actually this time I was more successful and cracked it; I probably tried to HirIdify too much at once when I attempted it last time ^^.

r? @Zoxc

5 years agoAuto merge of #59058 - petrochenkov:assocrecov3, r=estebank
bors [Sat, 23 Mar 2019 05:51:16 +0000 (05:51 +0000)]
Auto merge of #59058 - petrochenkov:assocrecov3, r=estebank

 syntax: Better recovery for `$ty::AssocItem` and `ty!()::AssocItem`

This PR improves on https://github.com/rust-lang/rust/pull/46788 covering a few missing cases.

Fixes https://github.com/rust-lang/rust/issues/52307
Fixes https://github.com/rust-lang/rust/issues/53776
r? @estebank

5 years agoAdd note to address check_match errors
Esteban Küber [Sat, 23 Mar 2019 03:29:28 +0000 (20:29 -0700)]
Add note to address check_match errors

5 years agoaddress review comments
Esteban Küber [Mon, 18 Mar 2019 00:37:56 +0000 (17:37 -0700)]
address review comments

5 years agoDo not `track_errors` in `register_plugins`
Esteban Küber [Fri, 15 Mar 2019 02:38:20 +0000 (19:38 -0700)]
Do not `track_errors` in `register_plugins`

5 years agoContinue running after `typeck_item_bodies` has failed
Esteban Küber [Fri, 15 Mar 2019 02:29:02 +0000 (19:29 -0700)]
Continue running after `typeck_item_bodies` has failed

5 years agoRemove track_errors from check_match
Esteban Küber [Fri, 15 Mar 2019 02:16:31 +0000 (19:16 -0700)]
Remove track_errors from check_match

5 years agoReword type ascription note to reduce verbosity
Esteban Küber [Sat, 23 Mar 2019 03:14:20 +0000 (20:14 -0700)]
Reword type ascription note to reduce verbosity

5 years agoReview comment
Esteban Küber [Wed, 20 Mar 2019 01:16:55 +0000 (18:16 -0700)]
Review comment

5 years agoHide "type ascription is experimental error" unless it's the only one
Esteban Küber [Wed, 13 Mar 2019 23:47:55 +0000 (16:47 -0700)]
Hide "type ascription is experimental error" unless it's the only one

In order to minimize the verbosity of common syntax errors that are parsed
as type ascription, hide the feature gate error unless there are no other
errors being emitted by the parser.

5 years agoOnly suggest let assignment for type ascription if we find an equals sign
Esteban Küber [Wed, 13 Mar 2019 23:07:44 +0000 (16:07 -0700)]
Only suggest let assignment for type ascription if we find an equals sign

5 years agoTweak labels
Esteban Küber [Wed, 13 Mar 2019 22:27:47 +0000 (15:27 -0700)]
Tweak labels

5 years agoExpand suggestions for type ascription parse errors
Esteban Küber [Wed, 13 Mar 2019 02:27:10 +0000 (19:27 -0700)]
Expand suggestions for type ascription parse errors

5 years agoAuto merge of #58929 - estebank:elide-object, r=zackmdavis
bors [Sat, 23 Mar 2019 02:40:15 +0000 (02:40 +0000)]
Auto merge of #58929 - estebank:elide-object, r=zackmdavis

Elide object safety errors on non-existent trait function

Fix #58734.

r? @zackmdavis

5 years agoCorrect minimum system LLVM version in tests
Samuel Holland [Fri, 22 Mar 2019 22:08:06 +0000 (17:08 -0500)]
Correct minimum system LLVM version in tests

Since commit 9452a8dfa3ba, the new debug info format is only generated
for LLVM 8 and newer versions. However, the tests still assume that LLVM
7 will use the new debug info format. Fix the tests (and a comment in
the code) to match the actual version check.

5 years agoUpdate sys::time impls to have checked_sub_instant
Linus Färnstrand [Fri, 22 Mar 2019 21:14:35 +0000 (22:14 +0100)]
Update sys::time impls to have checked_sub_instant

5 years agoMake duration_since use checked_duration_since
Linus Färnstrand [Fri, 22 Mar 2019 21:12:32 +0000 (22:12 +0100)]
Make duration_since use checked_duration_since