Commit Graph

91305 Commits

Author SHA1 Message Date
Felix S. Klock II
6046f4a673 Do not lint dyn tokens under macros.
The existing `KeywordIdents` lint blindly scans the token stream for a
macro or macro definition. It does not attempt to parse the input,
which means it cannot distinguish between occurrences of `dyn` that
are truly instances of it as an identifier (e.g. `let dyn = 3;`)
versus occurrences that follow its usage as a contextual keyword (e.g.
the type `Box<dyn Trait>`).

In an ideal world the lint would parse the token stream in order to
distinguish such occurrences; but in general we cannot do this,
because a macro_rules definition does not specify what parsing
contexts the macro being defined is allowed to be used within.

So rather than put a lot of work into attempting to come up with a
more precise but still incomplete solution, I am just taking the short
cut of not linting any instance of `dyn` under a macro. This prevents
`rustfix` from injecting bugs into legal 2015 edition code.
2019-03-27 14:43:29 +01:00
bors
267fb90b55 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
2019-03-27 05:25:50 +00:00
bors
dd363d14ae Auto merge of #59285 - cuviper:llvm-8.0.0, r=alexcrichton
Rebase LLVM to 8.0.0 final

r? @alexcrichton
2019-03-27 01:56:14 +00:00
Guillaume Gomez
cbb13f496c
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.
2019-03-26 22:26:46 +01:00
Guillaume Gomez
616ee876c1
Rollup merge of #59427 - czipperz:non_null_doc_links, r=Mark-Simulacrum
Link to PhantomData in NonNull documentation
2019-03-26 22:26:45 +01:00
Guillaume Gomez
07c83488d5
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">
2019-03-26 22:26:43 +01:00
Guillaume Gomez
4e19b7a0e9
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
2019-03-26 22:26:42 +01:00
Guillaume Gomez
3747868889
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
2019-03-26 22:26:40 +01:00
Guillaume Gomez
5f390f7a66
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
2019-03-26 22:26:39 +01:00
Guillaume Gomez
f131f042c2
Rollup merge of #59004 - GuillaumeGomez:generics-handling, r=QuietMisdreavus
[rustdoc] Improve "in parameters" search and search more generally

Fixes #58230.

r? @QuietMisdreavus
2019-03-26 22:26:36 +01:00
bors
fbd34efb32 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
2019-03-26 17:25:16 +00:00
bors
07d350897c 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
2019-03-26 13:58:30 +00:00
Mazdak Farrokhzad
d976dbe853 bump bootstrap; adjust stage0 uses in libsyntax_pos 2019-03-26 09:57:42 +01:00
Mazdak Farrokhzad
0b46f0e649 bump bootstrap; adjust stage0 uses in core::ptr. 2019-03-26 09:57:25 +01:00
Mazdak Farrokhzad
750983d356 bump bootstrap => 2019-03-20 2019-03-26 09:53:47 +01:00
Mazdak Farrokhzad
822b4fcb3b
Rollup merge of #59419 - frewsxcv:frewsxcv-qu, r=varkor
Utilize `?` instead of `return None`.

None
2019-03-26 09:05:53 +01:00
Mazdak Farrokhzad
0677eb1eaa
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.
2019-03-26 09:05:52 +01:00
Mazdak Farrokhzad
95e7a50166
Rollup merge of #59389 - euclio:deprecated-suggestion, r=varkor
replace redundant note in deprecation warning
2019-03-26 09:05:51 +01:00
Mazdak Farrokhzad
e298691ee9
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.
2019-03-26 09:05:48 +01:00
Mazdak Farrokhzad
0616b73c2f
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.
2019-03-26 09:05:47 +01:00
Mazdak Farrokhzad
e132e43e85
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
2019-03-26 09:05:46 +01:00
Mazdak Farrokhzad
4fbe25cc6b
Rollup merge of #59315 - Zoxc:move-query, r=oli-obk
Add no_hash to query macro and move some queries over

r? @oli-obk
2019-03-26 09:05:44 +01:00
Mazdak Farrokhzad
ba55822801
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.
2019-03-26 09:05:43 +01:00
Mazdak Farrokhzad
90c2d641eb
Rollup merge of #59232 - saleemjaffer:mir_place_refactor, r=oli-obk
Merge `Promoted` and `Static` in `mir::Place`

fixes #53848
2019-03-26 09:05:40 +01:00
Mazdak Farrokhzad
b316514dbd
Rollup merge of #59150 - estebank:type-ascription, r=varkor
Expand suggestions for type ascription parse errors

Fix #51222. CC #48016, #47666, #54516, #34255.
2019-03-26 09:05:39 +01:00
Philipp Hansch
8a9c620340
Improve some compiletest documentation
This adds some missing documentation for rustfix related things and adds
a test for the `is_test` function.
2019-03-26 07:55:00 +01:00
bors
54479c624c 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.
2019-03-26 01:48:34 +00:00
Guillaume Gomez
868833f9a6 Fix code block display in portability element in dark theme 2019-03-26 00:38:29 +01:00
Corey Farwell
28c602a94e Utilize ? instead of return None. 2019-03-25 23:29:49 +01:00
Chris Gregory
fd42918a41 Link to PhantomData in NonNull documentation 2019-03-25 18:04:42 -04:00
Christian
6c479c3d02 Formatting changes, including better wrapping and creating short summary lines. 2019-03-25 22:21:05 +01:00
Jethro Beekman
f229422cc1 SGX target: fix std unit tests 2019-03-25 11:31:19 -07:00
bors
4c27fb19ba 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.
2019-03-25 16:34:15 +00:00
bors
d91b32b4dc Auto merge of #59256 - petrochenkov:derval2, r=Zoxc
Make meta-item API compatible with `LocalInternedString::get` soundness fix

r? @Zoxc
2019-03-25 12:21:46 +00:00
Tobias Bucher
0bb36a2f90 Clarify {Ord,f32,f64}::clamp docs a little
Explicitly call out when it returns NaN, adhere to the panic doc
guidelines.
2019-03-25 12:52:42 +01:00
Felix S Klock II
0e83e96852
add missing braces
add missing braces analogous to those suggested by killercup
2019-03-25 11:50:11 +01:00
Pascal Hertleif
6315221b39
Update src/libcore/option.rs
Co-Authored-By: pnkfelix <pnkfelix@pnkfx.org>
2019-03-25 11:48:08 +01:00
bors
3f36ac4e83 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.
2019-03-25 09:05:00 +00:00
bors
60eca54a7c Auto merge of #59240 - euclio:struct-field-span, r=oli-obk
use the identifier span for missing struct field
2019-03-25 05:40:12 +00:00
Esteban Küber
4beea1720a Deduplicate code for path suggestion 2019-03-24 19:43:02 -07:00
Esteban Küber
5390414379 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.
2019-03-24 19:21:54 -07:00
bors
46914715e2 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.
2019-03-25 00:38:15 +00:00
bors
3752b3d3a5 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
2019-03-24 21:26:57 +00:00
Esteban Küber
66202c113a Add nll test 2019-03-24 12:58:30 -07:00
Esteban Küber
ae883dc826 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);
        }
    }
}
```
2019-03-24 11:46:13 -07:00
David Wood
23cae1d3f0
Re-order fields in Def::Ctor.
This commit moves the `DefId` field of `Def::Ctor` to be the first
field.
2019-03-24 19:16:44 +01:00
David Wood
88f8f07794
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.
2019-03-24 18:54:56 +01:00
bors
0576ac109b 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)
2019-03-24 17:53:45 +00:00
David Wood
db4770f699
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.
2019-03-24 18:21:59 +01:00
Andy Russell
4728433c9e
make asm diagnostic instruction optional
`DiagnosticInfoInlineAsm::getInstruction` may return a null pointer, so
the instruction shouldn't be blindly unwrapped.
2019-03-24 12:21:03 -04:00