127156 Commits

Author SHA1 Message Date
Dylan DPC
1083833b3e
Rollup merge of #76401 - JulianKnodt:i68366, r=lcnr
Add help note to unconstrained const parameter

Resolves #68366, since it is currently intended behaviour.
If demonstrating `T -> U` is injective, there should be an additional word that it is not **yet** supported.

r? @lcnr
2020-09-09 01:35:20 +02:00
Dylan DPC
d45faff0bf
Rollup merge of #76396 - dylni:fix-typo-in-tracking-issue-template, r=jonas-schievink
Fix typo in tracking issue template
2020-09-09 01:35:18 +02:00
Dylan DPC
222b88501d
Rollup merge of #76389 - MaulingMonkey:pr-natvis-hashmap-vsc, r=petrochenkov
Fix HashMap visualizers in Visual Studio (Code)

CDB (as used in unit tests) doesn't care that we're using static_cast between unrelated types (`u8*` to `tuple<$T1, $T2>*`).
Visual Studio & Visual Studio Code care.  These should've been reinterpret_cast or C casts.

Credit to @petrochenkov per https://github.com/rust-lang/rust/issues/76352 for helping catch this.

### Testing

```cmd
x.py test --stage 1 src/tools/tidy
x.py test --stage 1 --build x86_64-pc-windows-msvc src\test\debuginfo
```
2020-09-09 01:35:17 +02:00
Dylan DPC
b2ca5131ed
Rollup merge of #76379 - petrochenkov:nodegen, r=Mark-Simulacrum
rustbuild: Remove `Mode::Codegen`

It's no longer used.
2020-09-09 01:35:15 +02:00
Dylan DPC
3cec71e9b4
Rollup merge of #76374 - pickfire:patch-4, r=Cldfire
Improve ayu doc source line number contrast

Improve contrast of foreground line number.

Before

![image](https://user-images.githubusercontent.com/4687791/92305696-1bf2ab80-efbc-11ea-8b5c-a24c4f6261e0.png)

After

![image](https://user-images.githubusercontent.com/4687791/92305700-2a40c780-efbc-11ea-9061-dbfcb1e71980.png)

r? @Cldfire

I think we should add the line for light and dark theme too, it looks better and clearer that way.
2020-09-09 01:35:13 +02:00
Dylan DPC
4ac88c01c3
Rollup merge of #76355 - calebcartwright:reduce-rustfmt-visibility, r=nikomatsakis
remove public visibility previously needed for rustfmt

`submod_path_from_attr` in rustc_expand::module was previously public because it was also consumed by rustfmt. However, we've done a bit of refactoring in rustfmt and no longer need to use this function.

This changes the visibility to the parent mod as was originally going to be done before the rustfmt dependency was realized (c189565edc (diff-cd1b379893bae95f7991d5a3f3c6d337R201))
2020-09-09 01:35:11 +02:00
Dylan DPC
87302a297c
Rollup merge of #76162 - abrausch:documentation-fix-duration_since, r=jyn514
Make duration_since documentation more clear
2020-09-09 01:35:10 +02:00
Eric Huss
8b2106f77a Update cargo 2020-09-08 15:10:21 -07:00
Aaron Hill
4434e8cefb
Adjust Clippy for CONST_ITEM_MUTATION lint
We no longer lint assignments to const item fields in the
`temporary_assignment` lint, since this is now covered by the
`CONST_ITEM_MUTATION` lint.

Additionally, we `#![allow(const_item_mutation)]` in the
`borrow_interior_mutable_const.rs` test. Clippy UI tests are run with
`-D warnings`, which seems to cause builtin lints to prevent Clippy
lints from running.
2020-09-08 17:59:56 -04:00
Aaron Hill
f23670ed68 Adjust Clippy for CONST_ITEM_MUTATION lint
We no longer lint assignments to const item fields in the
`temporary_assignment` lint, since this is now covered by the
`CONST_ITEM_MUTATION` lint.

Additionally, we `#![allow(const_item_mutation)]` in the
`borrow_interior_mutable_const.rs` test. Clippy UI tests are run with
`-D warnings`, which seems to cause builtin lints to prevent Clippy
lints from running.
2020-09-08 17:59:56 -04:00
Camelid
325acefee4 Use intra-doc links in core::ptr
The only link that I did not change is a link to a function on the
`pointer` primitive because intra-doc links for the `pointer` primitive
don't work yet (see #63351).
2020-09-08 14:36:36 -07:00
bors
8b54f1e2d9 Auto merge of #6016 - giraffate:restrict_same_item_push, r=ebroto
Restrict `same_item_push` to suppress false positives

It only emits a lint when the pushed item is a literal, a constant and an immutable binding that are initialized with those, as discussed in https://github.com/rust-lang/rust-clippy/pull/5997#pullrequestreview-483005186.

Fix https://github.com/rust-lang/rust-clippy/issues/5985

changelog: Restrict `same_item_push` to literals, constants and immutable bindings that are initialized with those.

r? `@ebroto`
2020-09-08 21:34:55 +00:00
Alexander Brausch
98231bfb95 Make duration_since documentation more clear 2020-09-08 23:27:24 +02:00
bors
8d6cf3a824 Auto merge of #6018 - ebroto:rustup, r=ebroto
Rustup

r? `@ghost`

changelog: none
2020-09-08 20:43:02 +00:00
Eduardo Broto
e83190bdd4 Merge remote-tracking branch 'upstream/master' into rustup 2020-09-08 22:26:31 +02:00
moonheart08
0aaf56f5fc Remove a stray ignore-tidy-undocumented-unsafe
There were no undocumented unsafe blocks in the file.
2020-09-08 15:00:47 -05:00
Guillaume Gomez
1d02f4fdcc Update tests 2020-09-08 21:32:03 +02:00
Guillaume Gomez
e0df2f87b6 Create new E0774 code error 2020-09-08 21:32:03 +02:00
Vadim Petrochenkov
75a2c68fb6 Update comment in config.toml.example 2020-09-08 22:08:25 +03:00
Braden Nelson
e02952c0cc
Update library/alloc/src/collections/vec_deque.rs
Replace lshift with multiply

Co-authored-by: Mara Bos <m-ou.se@m-ou.se>
2020-09-08 13:11:08 -05:00
Mara Bos
caef83282b Fix doc comment on MaybeUninit::drop. 2020-09-08 19:34:23 +02:00
Mara Bos
75e471ade9 Add MaybeUninit::drop.
ManuallyDrop's documentation tells the user to use MaybeUninit instead
when handling uninitialized data. However, the main functionality of
ManuallyDrop (drop) was not available directly on MaybeUninit. Adding it
makes it easier to switch from one to the other.
2020-09-08 19:01:05 +02:00
bors
5099914a16 Auto merge of #76332 - Mark-Simulacrum:bootstrap-llvm, r=pietroalbini
Add rust-dev component to support rustc development

This is preparatory work for permitting rustc developers to use CI-built LLVM rather than building it locally. Unlike distro-built LLVM, CI built LLVM is essentially guaranteed to behave perfectly for local development -- it is fully up to date, and carries all necessary patches.

This is a separate PR from #76349 because it needs to land before that one, since we want a master build with the full CI LLVM to be available for easier testing.
2020-09-08 16:01:26 +00:00
moonheart08
c3c84ad027 Convert MAXIMUM_ZST_CAPACITY to be calculated in a
const instead of multiple target_pointer_width checks.
2020-09-08 10:35:35 -05:00
Bastian Kauschke
4226a17845 fix test 2020-09-08 16:47:19 +02:00
Bastian Kauschke
1dd00e60b9 add tracking issue, fix rebase 2020-09-08 16:39:12 +02:00
Bastian Kauschke
7804644863 add tests 2020-09-08 16:39:12 +02:00
Bastian Kauschke
c10ad0d888 review 2020-09-08 16:39:12 +02:00
Bastian Kauschke
ef6100e846 convert to future compat lint 2020-09-08 16:39:12 +02:00
Bastian Kauschke
c81935e6df make ConstEvaluatable more strict 2020-09-08 16:39:12 +02:00
Hirochika Matsumoto
a899ad2e12 Change suggestion to create_dir_all({}) from std::fs::create_dir_all({}) 2020-09-08 23:35:19 +09:00
Takayuki Nakata
1d8ae3aa12 Address items_after_statement 2020-09-08 23:12:04 +09:00
Takayuki Nakata
952c04674e Refactoring: tests in same_item_push 2020-09-08 23:03:15 +09:00
Takayuki Nakata
2c9f82e7d2 Add some tests to same_item_push
Add tests in which the variable is initialized with a match expression and function call
2020-09-08 22:45:27 +09:00
bors
7bc0bf7254 Auto merge of #76469 - RalfJung:miri, r=RalfJung
update Miri

Fixes https://github.com/rust-lang/rust/issues/76337
r? `@ghost` Cc `@rust-lang/miri`
2020-09-08 11:56:09 +00:00
Matthias Krüger
0065e33c24 rustbuild: don't set PYTHON_EXECUTABLE and WITH_POLLY cmake vars since they are no longer supported by llvm
CMake Warning:
  Manually-specified variables were not used by the project:

    PYTHON_EXECUTABLE
    WITH_POLLY
2020-09-08 11:32:25 +02:00
bors
5a6b426e34 Auto merge of #76308 - wesleywiser:enable_simplifyarmidentity_mir_opt, r=oli-obk
Enable the SimplifyArmIdentity MIR optimization at mir-opt-level=1

r? `@ghost`
2020-09-08 09:27:23 +00:00
ortem
c8262fd87b Add missed spaces to GCC-WARNING.txt 2020-09-08 12:20:49 +03:00
Ralf Jung
fb9702404e update Miri 2020-09-08 10:50:52 +02:00
Pietro Albini
f64ddc60a5
triagebot: enable github releases synchronization 2020-09-08 10:43:52 +02:00
bors
35fc835986 Auto merge of #76423 - Mark-Simulacrum:stable-bootstrap, r=jyn514
Make bootstrap build on beta

This is generally a good idea, and will help with being able to build bootstrap
without Python over time as it means we can "just" build with cargo +beta build
rather than needing the user to set environment variables. This is a minor step,
but a necessary one on that road.

r? `@jyn514`
2020-09-08 07:08:50 +00:00
bors
e82584a77d Auto merge of #75585 - RalfJung:demotion, r=oli-obk
Do not promote &mut of a non-ZST ever

Since ~pre-1.0~ 1.36, we have accepted code like this:
```rust
static mut TEST: &'static mut [i32] = {
    let x = &mut [1,2,3];
    x
};
```
I tracked it back to https://github.com/rust-lang/rust/pull/21744, but unfortunately could not find any discussion or RFC that would explain why we thought this was a good idea. And it's not, it breaks all sorts of things -- see https://github.com/rust-lang/rust/issues/75556.

To fix https://github.com/rust-lang/rust/issues/75556, we have to stop promoting non-ZST mutable references no matter the context, which is what this PR does. It's a breaking change.

Notice that this still works, since it does not rely on promotion:
```rust
static mut TEST: &'static mut [i32] = &mut [0,1,2];
```

Cc `@rust-lang/wg-const-eval`
2020-09-08 05:13:42 +00:00
bors
fa79db83f6 Auto merge of #76210 - Mark-Simulacrum:tracing-update, r=oli-obk
Tracing update

This does not bring the more significant changes that are coming down the pipeline, but since I've already prepared the PR leaving it up :)

See https://github.com/rust-lang/rust/pull/76210#issuecomment-685065938:
> Unfortunately, tracing 0.1.20 — which contained the change to reduce the amount of code generated by the tracing macros — had to be yanked, as it broke previously-compiling code for some downstream crates. I've not yet had the chance to fix this and release a new patch. So, in order to benefit from the changes to reduce generated code, you'll need to wait until there's a new version of tracing as well as tracing-attributes and tracing-core.
2020-09-08 03:22:31 +00:00
Joshua Nelson
0c9bf13f5f Add a script to automatically update Rust/Clang versions 2020-09-07 22:06:23 -04:00
Camelid
98a5506647 Add "For example," 2020-09-07 18:48:22 -07:00
Camelid
1f78509afe Improve wording of E0607 explanation 2020-09-07 18:41:55 -07:00
Ivan Tham
3a3a08585f
Unstable book rust-attrs does not work on generics
Co-authored-by: Peter Todd <pete@petertodd.org>
2020-09-08 09:08:25 +08:00
bors
71569e4201 Auto merge of #75138 - jumbatm:session-diagnostic-derive, r=oli-obk
Add derive macro for specifying diagnostics using attributes.

Introduces `#[derive(SessionDiagnostic)]`, a derive macro for specifying structs that can be converted to Diagnostics using directions given by attributes on the struct and its fields. Currently, the following attributes have been implemented:
- `#[code = "..."]` -- this sets the Diagnostic's error code, and must be provided on the struct iself (ie, not on a field). Equivalent to calling `code`.
- `#[message = "..."]` -- this sets the Diagnostic's primary error message.
- `#[label = "..."]` -- this must be applied to fields of type `Span`, and is equivalent to `span_label`
- `#[suggestion(..)]` -- this allows a suggestion message to be supplied. This attribute must be applied to a field of type `Span` or `(Span, Applicability)`, and is equivalent to calling `span_suggestion`. Valid arguments are:
    - `message = "..."` -- this sets the suggestion message.
    - (Optional) `code = "..."` -- this suggests code for the suggestion. Defaults to empty.

`suggestion`also  comes with other variants: `#[suggestion_short(..)]`, `#[suggestion_hidden(..)]` and `#[suggestion_verbose(..)]` which all take the same keys.

Within the strings passed to each attribute, fields can be referenced without needing to be passed explicitly into the format string -- eg, `#[error = "{ident} already declared"] ` will set the error message to `format!("{} already declared", &self.ident)`. Any fields on the struct can be referenced in this way.

Additionally, for any of these attributes, Option fields can be used to only optionally apply the decoration -- for example:

```rust
#[derive(SessionDiagnostic)]
#[code = "E0123"]
struct SomeKindOfError {
    ...
    #[suggestion(message = "informative error message")]
    opt_sugg: Option<(Span, Applicability)>
    ...
}
```
will not emit a suggestion if `opt_sugg` is `None`.

We plan on iterating on this macro further; this PR is a start.

Closes #61132.

r? `@oli-obk`
2020-09-08 00:58:43 +00:00
Joshua Nelson
ed4dcc04d8 Make rustdoc output deterministic for UI tests 2020-09-07 20:32:09 -04:00
marmeladema
b869aa5f31 Add saturating methods for Duration 2020-09-08 00:42:56 +01:00