127080 Commits

Author SHA1 Message Date
bors
81a769f261 Auto merge of #75584 - RalfJung:union-no-deref, r=matthewjasper
do not apply DerefMut on union field

This implements the part of [RFC 2514](https://github.com/rust-lang/rfcs/blob/master/text/2514-union-initialization-and-drop.md) about `DerefMut`. Unlike described in the RFC, we only apply this warning specifically when doing `DerefMut` of a `ManuallyDrop` field; that is really the case we are worried about here.

@matthewjasper suggested I patch `convert_place_derefs_to_mutable` and `convert_place_op_to_mutable` for this, but I could not find anything to do in `convert_place_op_to_mutable` and this is sufficient to make the test pass. However, maybe there are some other cases this misses? I have no familiarity with this code.

This is a breaking change *in theory*, if someone used `ManuallyDrop<T>` in a union field and relied on automatic `DerefMut`. But on stable this means `T: Copy`, so the `ManuallyDrop` is rather pointless.

Cc https://github.com/rust-lang/rust/issues/55149
2020-09-05 11:47:01 +00:00
Mateusz Mikuła
5a51293f4b Update llvm submodule 2020-09-05 12:31:16 +02:00
Mateusz Mikuła
ad69e66517 Ignore failing PGO/coverage tests on MinGW 2020-09-05 12:31:16 +02:00
bors
02fe30971e Auto merge of #75888 - GuillaumeGomez:trait-impl-assoc-const-doc-alias, r=ollie27
Add check for doc alias on assoc const in trait impl

Fixes #73721.

r? @ollie27
2020-09-05 09:35:17 +00:00
Mara Bos
61ac138b5c Disable atomics on avr target.
`max_atomic_width` was missing in the spec, which means it fell back to
the pointer width of 16 bits.
2020-09-05 11:35:01 +02:00
bors
3cecdc9cdd Auto merge of #6009 - Ryan1729:show-line_count-and-max_lines-in-too_many_lines-lint-message, r=phansch
Show line count and max lines in too_many_lines lint message

This PR adds the current amount of lines and the current maximum number of lines in the message for the `too_many_lines` lint, in a similar way as the `too_many_arguments` lint currently does.

changelog: show the line count and the maximum lines in the message for the `too_many_lines` lint.
2020-09-05 06:05:29 +00:00
Jubilee Young
2df552b406 Fix big endian read/write
Co-authored-by: matthewjasper <mjjasper1@gmail.com>
2020-09-04 21:51:29 -07:00
Jubilee Young
dc00efff9f Explain contract of {read, write}_target_uint 2020-09-04 21:51:28 -07:00
Jubilee
fe2a867125 Be explicit that we're handling bytes
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-09-04 21:51:28 -07:00
Jubilee Young
74b4eea64d Remove reference to byteorder limits 2020-09-04 21:51:28 -07:00
Jubilee Young
b97d4131fe Refactor byteorder to std in rustc_middle
Use std::io::{Read, Write} and {to, from}_{le, be}_bytes methods in
order to remove byteorder from librustc_middle's dependency graph.
2020-09-04 21:51:17 -07:00
Ryan1729
9e7ce9d385 run the specific script suggested by the error message
```
./tests/ui-toml/update-references.sh './target/debug/test_build_base' 'functions_maxlines/test.rs'
```
2020-09-04 21:12:16 -06:00
Josh Stone
86b9f710d0 Move ArrayChunksMut::get_unchecked per #73565 2020-09-04 20:08:12 -07:00
Josh Stone
21903532ee Build the slice directly in array_chunks_mut
Review discussion found that the concern about aliasing was overblown,
so we can simplify this to cast from one slice to another directly.
2020-09-04 19:51:29 -07:00
Josh Stone
864a28e01d Re-export ArrayChunksMut in alloc 2020-09-04 19:51:29 -07:00
Josh Stone
b9fd6734e8 Add tests for array_chunks_mut 2020-09-04 19:51:29 -07:00
Josh Stone
f6a6d2fef6 Add slice::array_chunks_mut 2020-09-04 19:51:29 -07:00
Wilfred Hughes
4806e0ac93
Minor grammar fix in doc comment for soft-deprecated methods 2020-09-04 19:50:54 -07:00
bors
c3364780d2 Auto merge of #75173 - jackh726:chalk-0.21, r=nikomatsakis
Upgrade Chalk to 0.21

Two commits here. First commit actually does the upgrade. Second commit has some changes to make more tests in compare-mode=chalk pass.

The `PlaceholdersCollector` and `RegionsSubstitutor` bits are bit a hacky, but only insomuch as `ParamsSubstitutor` is. These won't be needed eventually.

r? @nikomatsakis
2020-09-05 02:24:05 +00:00
Lzu Tao
dfd219d6e7 Indent a note to make folding work nicer
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-09-05 02:17:22 +00:00
Ryan1729
db16fa26ce run tests/ui/update-all-references.sh 2020-09-04 20:16:02 -06:00
Ryan1729
04ba07bdc3 add line_count and max_lines to too_many_lines lint message 2020-09-04 19:26:35 -06:00
Caleb Cartwright
08e35155b4 rustc_expand: remove pub visibility for rustfmt 2020-09-04 19:44:11 -05:00
Scott McMurray
59e37332b0 Add BREAK too, and improve the comments 2020-09-04 16:28:23 -07:00
Jack Huey
0aa215305a kind -> kind() 2020-09-04 19:17:57 -04:00
bors
70c5f6efc4 Auto merge of #75200 - ssomers:btree_valmut, r=Mark-Simulacrum
BTreeMap: introduce marker::ValMut and reserve Mut for unique access

The mutable BTreeMap iterators (apart from `DrainFilter`) are double-ended, meaning they have to rely on a front and a back handle that each represent a reference into the tree. Reserve a type category `marker::ValMut` for them, so that we guarantee that they cannot reach operations on handles with borrow type `marker::Mut`and that these operations can assume unique access to the tree.

Including #75195, benchmarks report no genuine change:
```
benchcmp old new --threshold 5
 name                                 old ns/iter  new ns/iter  diff ns/iter   diff %  speedup
 btree::map::iter_100                 3,333        3,023                -310   -9.30%   x 1.10
 btree::map::range_unbounded_vs_iter  36,624       31,569             -5,055  -13.80%   x 1.16
```

r? @Mark-Simulacrum
2020-09-04 23:16:23 +00:00
Jack Huey
3a9a4e8b2d Bless changed test output 2020-09-04 19:12:54 -04:00
Jack Huey
f690569465 Review comments 2020-09-04 19:12:54 -04:00
Jack Huey
76c728901e More chalk work 2020-09-04 19:12:54 -04:00
Jack Huey
d66452c3e5 Upgrade chalk to 0.21 2020-09-04 19:12:54 -04:00
bors
f253dd06f9 Auto merge of #6007 - ebroto:sync-from-rust, r=ebroto
Rustup

r? @ghost

changelog: none
2020-09-04 22:19:01 +00:00
Chris Gillespie
5456414d91 Fix nlink example typo 2020-09-04 14:41:27 -07:00
Eduardo Broto
2905fff936 Run cargo dev fmt 2020-09-04 23:30:55 +02:00
Eduardo Broto
7bcf40a13d Fix fallout from rustup 2020-09-04 23:30:06 +02:00
Eduardo Broto
23646e6583 Merge remote-tracking branch 'upstream/master' into sync-from-rust 2020-09-04 23:27:01 +02:00
Camelid
85b11d50b2
Improve docs for std::env::args() 2020-09-04 14:00:09 -07:00
bors
c59199efca Auto merge of #76292 - Aaron1011:fix/proc-macro-panic-hide, r=petrochenkov
Respect `-Z proc-macro-backtrace` flag for panics inside libproc_macro

Fixes #76270

Previously, any panic occuring during a call to a libproc_macro method
(e.g. calling `Ident::new` with an invalid identifier) would always
cause an ICE message to be printed.
2020-09-04 20:58:37 +00:00
Jonas Schievink
bcfd15b09c Remove unused duplicated trivial_dropck_outlives 2020-09-04 22:24:03 +02:00
Andy Russell
2ed1a21790
add some intra-doc links to Iterator 2020-09-04 15:51:58 -04:00
bors
42d896afbd Auto merge of #76315 - lcnr:map-track-caller, r=Mark-Simulacrum
add `#[track_caller]` to `local_def_id_to_hir_id`

Improves one of the more frequent ICE
2020-09-04 19:05:20 +00:00
Aaron Hill
9e7ef659e1
Account for version number in NtIdent hack
Issue #74616 tracks a backwards-compatibility hack for certain macros.
This has is implemented by hard-coding the filenames and macro names of
certain code that we want to continue to compile.

However, the initial implementation of the hack was based on the
directory structure when building the crate from its repository (e.g.
`js-sys/src/lib.rs`). When the crate is build as a dependency, it will
include a version number from the clone from the cargo registry (e.g.
`js-sys-0.3.17/src/lib.rs`), which would fail the check.

This commit modifies the backwards-compatibility hack to check that
desired crate name (`js-sys` or `time-macros-impl`) is a prefix of the
proper part of the path.

See https://github.com/rust-lang/rust/issues/76070#issuecomment-687215646
for more details.
2020-09-04 13:10:23 -04:00
bors
d2454643e1 Auto merge of #75077 - LeSeulArtichaut:tys-kind, r=nikomatsakis
Refractor ty.kind -> ty.kind() and ty.flags -> ty.flags()

First step for the ["shared library to represent Rust types"](https://rust-lang.github.io/compiler-team/minutes/design-meeting/2020-03-12-shared-library-for-types/) work (rust-lang/wg-traits#16).

This PR makes the `TyS::kind` field private and adds a `kind()` method to access it.
As noted [on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/144729-wg-traits/topic/Looking.20to.20contribute/near/205185412), this refractoring might require a MCP. I am perfectly fine with having to wait until MCP is accepted and resolving the conflicts that pop up afterwards.

r? @nikomatsakis
2020-09-04 17:07:39 +00:00
LeSeulArtichaut
4286d9c87a ty.flags -> ty.flags() 2020-09-04 18:28:20 +02:00
LeSeulArtichaut
4d28a82c59 ty.flags -> ty.flags() 2020-09-04 18:28:20 +02:00
LeSeulArtichaut
28f9b84042 ty.kind -> ty.kind() in rustdoc and clippy 2020-09-04 18:27:33 +02:00
LeSeulArtichaut
085e417087 ty.kind -> ty.kind() in rustdoc and clippy 2020-09-04 18:27:33 +02:00
LeSeulArtichaut
3e14b684dd Change ty.kind to a method 2020-09-04 17:47:51 +02:00
bors
80cacd7795 Auto merge of #75655 - nielx:fix/haiku-llvm-libz, r=Mark-Simulacrum
Disable zlib in LLVM on Haiku

PR #72696 enabled the option LLVM_ENABLE_ZLIB for the LLVM builds. Like NetBSD and aarch64-apple-darwin (see PR #75500), the LLVM build system not explicitly linking to libz on these platforms cause issues. For Haiku, this meant the runtime loader complaining about undefined symbols..
2020-09-04 14:32:33 +00:00
Amjad Alsharafi
8f2d9069a8 Implementation of incompatible features error
If two features are defined as incompatible, using them together would
result in an error
2020-09-04 22:17:28 +08:00
Mateusz Mikuła
a2fbf39cc8 Fix rust.use-lld when linker is not set 2020-09-04 15:31:53 +02:00