Commit graph

31442 commits

Author SHA1 Message Date
David Wood
659d44a3b4
polymorphize: visit promoted MIR
This commit makes polymorphization visited the MIR of unevaluated
constants with available promoted MIR instead of visiting the
substitutions of that constant - which will mark all of the generic
parameters as used.

Signed-off-by: David Wood <david@davidtw.co>
2020-08-07 15:59:29 +01:00
Aaron Hill
c34c77c764
Apply extern "C" calling convention
Co-authored-by: Amanieu d'Antras <amanieu@gmail.com>
2020-08-07 09:51:50 -04:00
Aaron Hill
91dda2c24e
Only test function-arguments-naked.rs on x86_64
We need to use inline assembly, which is inherently platform-specific.
2020-08-07 09:46:47 -04:00
bors
64f99b4cfb Auto merge of #74627 - petrochenkov:docbeauty2, r=Aaron1011
rustc_ast: Stop using "string typing" for doc comment tokens

Explicitly store their kind and style retrieved during lexing in the `token::DocComment`.

Also don't "beautify" doc comments before converting them to `#[doc]` attributes when passing them to macros (both declarative and procedural).
The trimming of empty lines, lines containing only `*`s, etc is purely a rustdoc's job as a part of its presentation of doc strings to users, rustc must not do this and must pass tokens as precisely as possible internally.
2020-08-07 13:29:25 +00:00
bors
1e0e618cfb Auto merge of #73842 - euclio:doctest-expn, r=GuillaumeGomez
Use outermost invocation span for doctest names

Fixes #70090.

This PR also allows using aux-build files in rustdoc-ui tests.
2020-08-07 11:38:17 +00:00
bors
8b26609481 Auto merge of #70052 - Amanieu:hashbrown7, r=Mark-Simulacrum
Update hashbrown to 0.8.1

This update includes:
- https://github.com/rust-lang/hashbrown/pull/146, which improves the performance of `Clone` and implements `clone_from`.
- https://github.com/rust-lang/hashbrown/pull/159, which reduces the size of `HashMap` by 8 bytes.
- https://github.com/rust-lang/hashbrown/pull/162, which avoids creating small 1-element tables.

Fixes #28481
2020-08-07 08:36:15 +00:00
Amanieu d'Antras
e46bb17936 Fix natvis tests 2020-08-07 07:19:13 +01:00
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
Bastian Kauschke
644c894912 test min_const_generics using revisions 2020-08-07 07:49:48 +02: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
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
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
Bastian Kauschke
37c29adabc allow complex expressions in assoc consts 2020-08-06 22:37:20 +02:00
Vadim Petrochenkov
a7eabec1df Add some comments for magic numbers + Add tests 2020-08-06 22:55:26 +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
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
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
Joshua Nelson
2dad90d8b5 Suggest f() for functions and add a test case 2020-08-05 20:46:02 -04:00
Nazım Can Altınova
cedf96c834
Add a test for BTreeMap lifetime bound to see if it compiles 2020-08-05 23:44:34 +02:00
Yuki Okushi
cc36c3d140
Add a FIXME comment 2020-08-06 05:21:03 +09:00
bors
22ee68dc58 Auto merge of #75166 - JulianKnodt:i64494, r=lcnr
Add regression test for #64494

Add regression test to indicate if this compilation ever succeeds.
Fixes #64494

r? @lcnr
2020-08-05 20:20:56 +00:00
Bastian Kauschke
0d54f571c1 impl review 2020-08-05 18:30:37 +02:00
Bastian Kauschke
188bbf840d forbid complex types for generic parameters 2020-08-05 18:30:37 +02:00
Bastian Kauschke
289e5fca7e forbid generic params in complex consts 2020-08-05 18:30:37 +02:00
bors
db870ea71b Auto merge of #75194 - Aaron1011:feature/macro-backtrace-numbers, r=eddyb
Show backtrace numbers in backtrace whenever more than one is involved

Previously, we only displayed 'frame' numbers in a macro backtrace when more
than two frames were involved. This commit should help make backtrace
more readable, since these kinds of messages can quickly get confusing.
2020-08-05 16:08:53 +00:00
Aaron Hill
f9f8923393
Show backtrace numbers in backtrace whenever more than one is involved
Previously, we only displayed 'frame' numbers in a macro backtrace when more
than two frames were involved. This commit should help make backtrace
more readable, since these kinds of messages can quickly get confusing.
2020-08-05 11:05:12 -04:00
bors
ec9d5241f7 Auto merge of #75165 - JulianKnodt:i72787, r=lcnr
Add regression test for #72787

Add regression test for Issue #72787
Fixes #72787

~~Still waiting on running tests locally to bless the error output~~

r? @lcnr
2020-08-05 14:00:00 +00:00
Aaron Hill
48bc398207
Handle fieldless tuple structs in diagnostic code
Fixes #75062
2020-08-05 07:59:26 -04:00
bors
dab2ae0404 Auto merge of #75037 - richkadel:llvm-coverage-map-gen-5.2, r=wesleywiser
Completes support for coverage in external crates

Follow-up to #74959 :

The prior PR corrected for errors encountered when trying to generate
the coverage map on source code inlined from external crates (including
macros and generics) by avoiding adding external DefIds to the coverage
map.

This made it possible to generate a coverage report including external
crates, but the external crate coverage was incomplete (did not include
coverage for the DefIds that were eliminated.

The root issue was that the coverage map was converting Span locations
to source file and locations, using the SourceMap for the current crate,
and this would not work for spans from external crates (compliled with a
different SourceMap).

The solution was to convert the Spans to filename and location during
MIR generation instead, so precompiled external crates would already
have the correct source code locations embedded in their MIR, when
imported into another crate.

@wesleywiser FYI
r? @tmandry
2020-08-05 05:08:19 +00:00
Joshua Nelson
fc273a035d Unresolved link -> incompatible link kind
Clearly it has been resolved, because we say on the next line what it
resolved to.
2020-08-05 00:20:37 -04:00
Joshua Nelson
444f5a0556 Give a much better error message if the struct failed to resolve 2020-08-05 00:20:34 -04:00
bors
119d2a1a98 Auto merge of #75174 - JohnTitor:rollup-z9djftk, r=JohnTitor
Rollup of 5 pull requests

Successful merges:

 - #75139 (Remove log alias from librustdoc)
 - #75140 (Clean up E0745)
 - #75149 (Correct a typo in interpret/memory.rs)
 - #75152 (Replace `Memoryblock` with `NonNull<[u8]>`)
 - #75168 (Update books)

Failed merges:

r? @ghost
2020-08-05 03:04:21 +00:00
Yuki Okushi
5f87ee0ab1
Rollup merge of #75152 - TimDiekmann:replace_memblock, r=Amanieu
Replace `Memoryblock` with `NonNull<[u8]>`

Closes rust-lang/wg-allocators#61

r? @Amanieu
2020-08-05 11:40:10 +09:00
bors
32d14eba47 Auto merge of #75130 - lcnr:array_chunks, r=ecstatic-morse
forbid `#[track_caller]` on main

fixes #75125

cc @anp
2020-08-05 01:13:19 +00:00
kadmin
7dd1b6a22f Add regression test 2020-08-04 23:07:04 +00:00
kadmin
f338054713 Add regression test
As well as matching error outputs
2020-08-04 22:58:44 +00:00
bors
f9d422ea78 Auto merge of #75136 - JohnTitor:unsizing-casts-non-null, r=oli-obk
Forbid non-derefable types explicitly in unsizing casts

Fixes #75118
r? @oli-obk
2020-08-04 19:37:01 +00:00
Bastian Kauschke
9127e27cec tweak error message 2020-08-04 21:36:21 +02:00
Rich Kadel
e0dc8dec27 Completes support for coverage in external crates
The prior PR corrected for errors encountered when trying to generate
the coverage map on source code inlined from external crates (including
macros and generics) by avoiding adding external DefIds to the coverage
map.

This made it possible to generate a coverage report including external
crates, but the external crate coverage was incomplete (did not include
coverage for the DefIds that were eliminated.

The root issue was that the coverage map was converting Span locations
to source file and locations, using the SourceMap for the current crate,
and this would not work for spans from external crates (compliled with a
different SourceMap).

The solution was to convert the Spans to filename and location during
MIR generation instead, so precompiled external crates would already
have the correct source code locations embedded in their MIR, when
imported into another crate.
2020-08-04 11:06:54 -07:00
Tim Diekmann
ab9362ad9a Replace Memoryblock with NonNull<[u8]> 2020-08-04 18:03:34 +02:00
bors
5f6bd6ec0a Auto merge of #74850 - TimDiekmann:remove-in-place-alloc, r=Amanieu
Remove in-place allocation and revert to separate methods for zeroed allocations

closes rust-lang/wg-allocators#58
2020-08-04 11:22:45 +00:00
Yuki Okushi
cd7204ef39
Forbid non-derefable types explicitly in unsizing casts 2020-08-04 17:46:10 +09:00
Bastian Kauschke
06dbd06e4d forbid #[track_caller] on main 2020-08-04 07:35:59 +02:00
bors
60c2e8d438 Auto merge of #75126 - JohnTitor:rollup-aejluzx, r=JohnTitor
Rollup of 8 pull requests

Successful merges:

 - #74759 (add `unsigned_abs` to signed integers)
 - #75043 (rustc_ast: `(Nested)MetaItem::check_name` -> `has_name`)
 - #75056 (Lint path statements to suggest using drop when the type needs drop)
 - #75081 (Fix logging for rustdoc)
 - #75083 (Do not trigger `unused_braces` for `while let`)
 - #75084 (Stabilize Ident::new_raw)
 - #75103 (Disable building rust-analyzer on riscv64)
 - #75106 (Enable docs on in the x86_64-unknown-linux-musl manifest)

Failed merges:

r? @ghost
2020-08-04 01:48:32 +00:00
Joshua Nelson
70697d8be8 Add more realistic example of async error 2020-08-03 21:26:59 -04:00
Joshua Nelson
31fcda170a Fix async-std at the price of breaking half the test suite
- Don't mark impl trait as an error
2020-08-03 21:26:54 -04:00