Commit Graph

124840 Commits

Author SHA1 Message Date
Manish Goregaokar
9ab750d05d
Rollup merge of #75227 - Amanieu:fix_asm_arch, r=Mark-Simulacrum
Fix ICE when using asm! on an unsupported architecture

Fixes #75220
2020-08-06 23:04:07 -07:00
Manish Goregaokar
25c8e9ac17
Rollup merge of #75203 - canova:btreemap-into-iter, r=dtolnay
Make `IntoIterator` lifetime bounds of `&BTreeMap` match with `&HashMap`

This is a pretty small change on the lifetime bounds of `IntoIterator` implementations of both `&BTreeMap` and `&mut BTreeMap`. This is loosening the lifetime bounds, so more code should be accepted with this PR. This is lifetime bounds will still be implicit since we have `type Item = (&'a K, &'a V);` in the implementation. This change will make the HashMap and BTreeMap share the same signature, so we can share the same function/trait with both HashMap and BTreeMap in the code.

Fixes #74034.
r? @dtolnay hey, I was touching this file on my previous PR and wanted to fix this on the way. Would you mind taking a look at this, or redirecting it if you are busy?
2020-08-06 23:04:05 -07:00
Manish Goregaokar
5b1ed09df0
Rollup merge of #75079 - jyn514:disambiguator, r=Manishearth
Disallow linking to items with a mismatched disambiguator

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

r? @Manishearth
2020-08-06 23:04:03 -07:00
Manish Goregaokar
5f331c0585
Rollup merge of #74774 - oliver-giersch:set_data_ptr, r=dtolnay
adds [*mut|*const] ptr::set_ptr_value

I propose the addition of these two functions to `*mut T` and `*const T`, respectively. The motivation for this is primarily byte-wise pointer arithmetic on (potentially) fat pointers, i.e. for types with a `T: ?Sized` bound. A concrete use-case has been discussed in [this](https://internals.rust-lang.org/t/byte-wise-fat-pointer-arithmetic/12739) thread.
TL;DR: Currently, byte-wise pointer arithmetic with potentially fat pointers in not possible in either stable or nightly Rust without making assumptions about the layout of fat pointers, which is currently still an implementation detail and not formally stabilized. This PR adds one function to `*mut T` and `*const T` each, allowing to circumvent this restriction without exposing any internal implementation details.
One possible alternative would be to add specific byte-wise pointer arithmetic functions to the two pointer types in addition to the already existing count-wise functions. However, I feel this fairly niche use case does not warrant adding a whole set of new functions like `add_bytes`, `offset_bytes`, `wrapping_offset_bytes`, etc. (times two, one for each pointer type) to `libcore`.
2020-08-06 23:04:02 -07:00
MaulingMonkey
122c03745e Handle new HashMap layout in CDB, MSVC, WinDbg, etc. 2020-08-07 07:03:15 +01:00
Amanieu d'Antras
e3283e0331 Handle new HashMap layout in GDB and LLDB 2020-08-07 07:03:15 +01:00
Amanieu d'Antras
d51b7b229a Update hashbrown to 0.8.1 2020-08-07 07:03:12 +01:00
Bastian Kauschke
644c894912 test min_const_generics using revisions 2020-08-07 07:49:48 +02:00
bors
98922795f6 Auto merge of #75121 - tmiasko:str-slicing, r=Mark-Simulacrum
Avoid `unwrap_or_else` in str indexing

This provides a small reduction of generated LLVM IR, and leads to a
simpler assembly code.

Closes #68874.
2020-08-07 04:51:04 +00:00
Joshua Nelson
9914f73f14 Add doc-comment for kind_side_channel 2020-08-06 23:17:15 -04:00
bors
63e34422bb Auto merge of #75233 - RalfJung:miri, r=RalfJung
update Miri

Fixes https://github.com/rust-lang/rust/issues/74999
Cc @rust-lang/miri r? @ghost
2020-08-07 03:04:38 +00:00
bors
6396dbbd62 Auto merge of #75238 - JohnTitor:rollup-llbk0sq, r=JohnTitor
Rollup of 12 pull requests

Successful merges:

 - #74888 (compiletest: ignore-endian-big, fixes #74829, fixes #74885)
 - #75175 (Make doctests of Ipv4Addr::from(u32) easier to read)
 - #75179 (Remove unused FromInner impl for Ipv4Addr)
 - #75181 (Fix typo in  `librustc_feature/active.rs`)
 - #75183 (Label rustfmt toolstate issues with A-rustfmt)
 - #75188 (Handle fieldless tuple structs in diagnostic code)
 - #75190 (Clean up E0746 explanation)
 - #75210 (Change the type of `AssertModuleSource::available_cgus`.)
 - #75211 (Note about endianness of returned value of {integer}::from_be_bytes and friends)
 - #75217 (Clean up E0747 explanation)
 - #75232 (Fix typo "TraitObligatiom" -> "TraitObligation")
 - #75236 (Fix typo "biset" -> "bitset")

Failed merges:

r? @ghost
2020-08-07 01:16:47 +00:00
Yuki Okushi
3c131d6738
Rollup merge of #75236 - syntacticsugarglider:patch-1, r=jonas-schievink
Fix typo "biset" -> "bitset"
2020-08-07 09:35:31 +09:00
Yuki Okushi
6f2fa1ef51
Rollup merge of #75232 - leijurv:patch-1, r=jonas-schievink
Fix typo "TraitObligatiom" -> "TraitObligation"
2020-08-07 09:35:29 +09:00
Yuki Okushi
76086a2d76
Rollup merge of #75217 - GuillaumeGomez:cleanup-e0747, r=Dylan-DPC
Clean up E0747 explanation

r? @Dylan-DPC
2020-08-07 09:35:28 +09:00
Yuki Okushi
26705d5bcb
Rollup merge of #75211 - lzutao:native-endian-notes, r=lcnr
Note about endianness of returned value of {integer}::from_be_bytes and friends

[`u32::from_be`](https://doc.rust-lang.org/nightly/src/core/num/mod.rs.html#2883-2892) documents about endianness of returned value.

I was confused by endianness of `from_be_bytes` in #75086 .
2020-08-07 09:35:26 +09:00
Yuki Okushi
19d4e1dcac
Rollup merge of #75210 - nnethercote:change-type-of-available_cgus, r=ecstatic-morse
Change the type of `AssertModuleSource::available_cgus`.

It's currently a `BTreeSet<Symbol>`, which is a strange type. The
`BTreeSet` suggests that element order is important, but `Symbol` is a
type whose ordering isn't useful to humans. The ordering of the
collection only manifests in an obscure error message ("no module named
`...`") that doesn't appear in any tests.

This commit changes the `Symbol` to a `String`, which is more
typical.
2020-08-07 09:35:24 +09:00
Yuki Okushi
f49e47348d
Rollup merge of #75190 - GuillaumeGomez:cleanup-e0746, r=Dylan-DPC
Clean up E0746 explanation

r? @Dylan-DPC
2020-08-07 09:35:23 +09:00
Yuki Okushi
665138c977
Rollup merge of #75188 - Aaron1011:fix/fieldless-tuple-error, r=varkor
Handle fieldless tuple structs in diagnostic code

Fixes #75062
2020-08-07 09:35:21 +09:00
Yuki Okushi
5542fba2d3
Rollup merge of #75183 - Aaron1011:toolstate/a-rustfmt, r=nikomatsakis
Label rustfmt toolstate issues with A-rustfmt

This makes it easier to filter toolstate issues by the tool involved.
2020-08-07 09:35:19 +09:00
Yuki Okushi
d36087bdac
Rollup merge of #75181 - WaffleLapkin:patch-2, r=ecstaticmorse
Fix typo in  `librustc_feature/active.rs`
2020-08-07 09:35:18 +09:00
Yuki Okushi
1b61fd3ccf
Rollup merge of #75179 - lzutao:unsed-ipv4-frominner, r=alexcrichton
Remove unused FromInner impl for Ipv4Addr

The removed is a unused unstable implementation.
2020-08-07 09:35:16 +09:00
Yuki Okushi
c9c7048038
Rollup merge of #75175 - lzutao:doctest-ipv4-fromu32, r=cuviper
Make doctests of Ipv4Addr::from(u32) easier to read

There are many zeroes in `0x0d0c0b0au32` which makes it hard to read.
2020-08-07 09:35:14 +09:00
Yuki Okushi
9d5bd597ac
Rollup merge of #74888 - infinity0:ignore-endian-big, r=nikomatsakis
compiletest: ignore-endian-big, fixes #74829, fixes #74885

See discussion on #74829

I tested it on a Debian s390x machine, works well.
2020-08-07 09:35:13 +09:00
Izzy Swart
b809f453ca
Fix typo "biset" -> "bitset" 2020-08-06 16:13:29 -07:00
Joshua Nelson
17263bc2da Remove dead code 2020-08-06 18:57:56 -04:00
Joshua Nelson
d240490229 Fix outdated code 2020-08-06 18:53:12 -04:00
Joshua Nelson
ef54cde625 Improve tests 2020-08-06 18:33:29 -04:00
Joshua Nelson
0c99d806ea Use the proper kind for associated items
See comments in the diff; this is such a hack.

The reason this can't be done properly in `register_res` is because
there's no way to get back the parent type: calling
`tcx.parent(assoc_item)` gets you the _impl_, not the type.
You can call `tcx.impl_trait_ref(impl_).self_ty()`, but there's no way
to go from that to a DefId without unwrapping.
2020-08-06 18:16:10 -04:00
Ralf Jung
854d8e8ceb update Miri 2020-08-06 23:55:30 +02:00
Leijurv
6eeae7d420
Fix typo "TraitObligatiom" -> "TraitObligation" 2020-08-06 14:37:32 -07:00
Joshua Nelson
f05e9da493 Still print help even if there's no span 2020-08-06 17:10:52 -04:00
Nicholas Nethercote
ebbf07a154 Change the type of AssertModuleSource::available_cgus.
It's currently a `BTreeSet<Symbol>`, which is a strange type. The
`BTreeSet` suggests that element order is important, but `Symbol` is a
type whose ordering isn't useful to humans. The ordering of the
collection only manifests in an obscure error message ("no module named
`...`") that doesn't appear in any tests.

This commit changes the `Symbol` to a `String`, which is more
typical.
2020-08-07 06:58:14 +10:00
Bastian Kauschke
37c29adabc allow complex expressions in assoc consts 2020-08-06 22:37:20 +02:00
bors
71f8d0c8f1 Auto merge of #75228 - tmiasko:keep-stdout-open, r=ecstatic-morse
Keep stdout open in limit_vector_count test
2020-08-06 20:22:20 +00:00
Vadim Petrochenkov
a7eabec1df Add some comments for magic numbers + Add tests 2020-08-06 22:55:26 +03:00
Vadim Petrochenkov
6b25c50ed4 Fix clippy 2020-08-06 22:13:11 +03:00
Vadim Petrochenkov
712de2b521 rustc_expand: Don not beautify doc comments before passing them to macros
Beautify all doc strings in rustdoc instead, including those in `#[doc]` attributes
2020-08-06 22:13:11 +03:00
Vadim Petrochenkov
000c070b70 rustc_ast/comments: Modernize some enum reexports 2020-08-06 22:13:11 +03:00
Vadim Petrochenkov
46f48d31fe rustc_ast: Stop using "string typing" for doc comment tokens
Explicitly store their kind and style retrieved during lexing in the token
2020-08-06 22:13:11 +03:00
Amanieu d'Antras
9abdb6db6f Fix ICE when using asm! on an unsupported architecture
Fixes #75220
2020-08-06 19:52:15 +01:00
bors
0d75c91def Auto merge of #75218 - Aaron1011:feature/prof-metadata-query, r=Mark-Simulacrum
Record query name when profiling "metadata_decode_entry"
2020-08-06 18:26:50 +00:00
Aaron Hill
bbcacddef6
Don't call a function in function-arguments-naked.rs
Fixes #75096

It's U.B. to use anything other than inline assmebling in a naked
function. Fortunately, the `#break` directive works fine without
anything in the function body.
2020-08-06 12:12:59 -04:00
bors
c15bae53b5 Auto merge of #75086 - lzutao:u32const, r=oli-obk
Use u32::from_ne_bytes to fix a FIXME and add comment about that

`u32::from_ne_bytes` has been const stable since 1.44.
2020-08-06 14:21:48 +00:00
Aaron Hill
c9bd9431d0
Record query name when profiling "metadata_decode_entry" 2020-08-06 09:33:34 -04:00
bors
4b0882cfaa Auto merge of #74889 - JohnTitor:hrtb-tests, r=nikomatsakis
Add HRTB-related regression test

Closes #59311 and cc #71546
This closes the former but the test is taken from https://github.com/rust-lang/rust/issues/71546#issuecomment-620638437 since it seems they have the same cause and it's simplified.
2020-08-06 12:12:59 +00:00
Guillaume Gomez
57b517bf1d Clean up E0747 explanation 2020-08-06 13:33:54 +02:00
Tim Diekmann
a784729cde Add as_mut_ptr to NonNull<[T]> 2020-08-06 11:45:54 +02:00
Lzu Tao
eff7d568d8 Note about endianness of returned value
in {integer}::from_be_bytes and friends.
2020-08-06 07:33:07 +00:00
bors
3cfc7fe78e Auto merge of #75008 - eddyb:rmeta-indexed-trait-impls, r=nikomatsakis
rustc_metadata: track the simplified Self type for every trait impl.

For the `traits_impls_of` query, we index the impls by `fast_reject::SimplifiedType` (a "shallow type"), which allows some simple cases like `impl Trait<..> for Foo<..>` to be efficiently iterated over, by e.g. `for_each_relevant_impl`.

This PR encodes the `fast_reject::SimplifiedType` cross-crate to avoid needing to deserialize the `Self` type of every `impl` in order to simplify it - the simplification itself should be cheap, but the deserialization is less so.

We could go further from here and make loading the list of impls lazy, for a given simplified `Self` type, but that would have more complicated implications for performance, and this PR doesn't do anything in that regard.

r? @nikomatsakis cc @Mark-Simulacrum
2020-08-06 03:23:57 +00:00