Commit graph

10607 commits

Author SHA1 Message Date
Manish Goregaokar
f276dd4f28
Rollup merge of #74448 - davidtwco:improper-ctypes-definitions-boxes, r=davidtwco
improper_ctypes_definitions: allow `Box`

Addresses https://github.com/rust-lang/rust/pull/72700#issuecomment-659449386.

This PR stops linting against `Box` in `extern "C" fn`s for the `improper_ctypes_definitions` lint - boxes are documented to be FFI-safe.

cc @alexcrichton @CryZe
2020-07-17 18:13:47 -07:00
Manish Goregaokar
378f46d1f2
Rollup merge of #74444 - Alexendoo:test-69414, r=nikomatsakis
Add regression test for #69414

Closes #69414 (no longer ICEs after #74159)
2020-07-17 18:13:45 -07:00
Manish Goregaokar
e775b4dbc4
Rollup merge of #74069 - erikdesjardins:bad-niche, r=nikomatsakis
Compare tagged/niche-filling layout and pick the best one

Finishes up #71045, and so fixes #63866.

cc @eddyb
r? @nikomatsakis (since @eddyb wrote the first commit)
2020-07-17 18:13:40 -07:00
Manish Goregaokar
cdedae82cc
Rollup merge of #74438 - RalfJung:uninit-lint, r=davidtwco
warn about uninitialized multi-variant enums

Fixes https://github.com/rust-lang/rust/issues/73608
2020-07-17 14:09:29 -07:00
Manish Goregaokar
344b5e06fa
Rollup merge of #74364 - lcnr:lazy-norm-tests, r=nikomatsakis
add lazy normalization regression tests

We previously didn't have simple tests which fail if we aren't careful around lazy normalization.

We now do.
2020-07-17 14:09:16 -07:00
Manish Goregaokar
f6cd31c3b7
Rollup merge of #73930 - a1phyr:feature_const_option, r=dtolnay
Make some Option methods const

Tracking issue: #67441

Constantify the following methods of `Option`:
- `as_ref`
- `is_some`
- `is_none`
- `iter` (not sure about this one, but it is possible, and will be useful when const traits are a thing)

cc @rust-lang/wg-const-eval @rust-lang/libs
2020-07-17 14:09:02 -07:00
David Wood
95df8024e7
improper_ctypes_definitions: allow Box
This commit stops linting against `Box` in `extern "C" fn`s for the
`improper_ctypes_definitions` lint - boxes are documented to be
FFI-safe.

Signed-off-by: David Wood <david@davidtw.co>
2020-07-17 17:55:37 +01:00
Erik Desjardins
3924672ccc document test changes 2020-07-17 10:53:02 -04:00
Erik Desjardins
2e431c62b6 compare tagged/niche-filling layout and pick the best one 2020-07-17 10:52:57 -04:00
Alex Macleod
f7979d3c93 Add regression test for #69414
Closes #69414 (no longer ICEs after #74159)
2020-07-17 15:45:50 +01:00
Ralf Jung
87b49764bc warn about uninit multi-variant enums 2020-07-17 16:39:59 +02:00
Valentin Lazureanu
1e6adad33f Rename TypeckTables to TypeckResults. 2020-07-17 08:47:04 +00:00
Manish Goregaokar
41d956bf63
Rollup merge of #73269 - mzohreva:mz/sgx-wait-timeout, r=jethrogb
Enable some timeouts in SGX platform

This would partially resolve https://github.com/fortanix/rust-sgx/issues/31

cc @jethrogb and @Goirad
2020-07-16 17:08:56 -07:00
Manish Goregaokar
c354524254
Rollup merge of #74392 - lcnr:const-generics-update, r=varkor
const generics triage

I went through all const generics issues and closed all issues which are already fixed.

Some issues already have a regression test but were not closed. Also doing this as part of this PR.

uff r? @eddyb @varkor

closes #61936
closes #62878
closes #63695
closes #67144
closes #68596
closes #69816
closes #70217
closes #70507
closes #70586
closes #71348
closes #71805
closes #73120
closes #73508
closes #73730
closes #74255
2020-07-16 11:19:00 -07:00
Manish Goregaokar
fc098170ce
Rollup merge of #74370 - Manishearth:re-spotlight, r=GuillaumeGomez
Reintroduce spotlight / "important traits" feature

(Reopened version of https://github.com/rust-lang/rust/pull/74111 because Github is broken, see discussion there)

Fixes https://github.com/rust-lang/rust/issues/73785

This PR reintroduces the "spotlight" ("important traits") feature.

A couple changes have been made:

As there were concerns about its visibility, it has been moved to be next to the return type, as opposed to being on the side.

It also no longer produces a modal, it shows the traits on hover, and it can be clicked on to pin the hover bubble.

![image](https://user-images.githubusercontent.com/1617736/86674555-a82d2600-bfad-11ea-9a4a-a1a9ffd66ae5.png)

![image](https://user-images.githubusercontent.com/1617736/86674533-a1061800-bfad-11ea-9e8a-c62ad86ed0d7.png)

It also works fine on mobile:

![image](https://user-images.githubusercontent.com/1617736/86674638-bda25000-bfad-11ea-8d8d-1798b608923e.png)
2020-07-16 11:18:55 -07:00
Manish Goregaokar
a80559f472
Rollup merge of #74221 - oli-obk:const_prop_ice, r=wesleywiser
Don't panic if the lhs of a div by zero is not statically known

Fixes #73993 for real this time

r? @wesleywiser
2020-07-16 11:18:50 -07:00
Manish Goregaokar
6ef0dfa42f
Rollup merge of #74159 - lcnr:const-generic-ty-decl, r=varkor
forbid generic params in the type of const params

implements and closes #74152

fixes #74101, closes #71169, fixes #73491, closes #62878

@eddyb and I talked [on zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/type.20of.20const.20parameters/near/203405696) about this and we probably want to also forbid generic consts in the default
type of a parameter, e.g. `struct Foo<T, U = [u8; std::mem::size_of::<T>()]>`, this is currently still allowed
and I will probably fix that in a followup PR.

r? @varkor @eddyb
2020-07-16 11:18:46 -07:00
Manish Goregaokar
61a3f6701b
Rollup merge of #74148 - GuillaumeGomez:doc-alias-check, r=Manishearth
Move #[doc(alias)] check in rustc

Part of #73721.

r? @ollie27
2020-07-16 11:18:44 -07:00
Manish Goregaokar
98450757e5 Revert "Remove "important traits" feature"
This reverts commit 1244ced958.
2020-07-16 09:58:17 -07:00
bors
6ee1b62c81 Auto merge of #72481 - marmeladema:duration-consts-2, r=oli-obk
Constify most non-trait `Duration` methods as described in #72440

The remaining methods could probably be made const once https://github.com/rust-lang/rust/pull/72449 lands with support for `f<32|64>::is_finite()`.
2020-07-16 13:35:09 +00:00
Bastian Kauschke
8faeb0e797 add regression test for #74255 2020-07-16 12:46:35 +02:00
Bastian Kauschke
d187e8108b add regression test for #73730 2020-07-16 12:46:35 +02:00
Bastian Kauschke
e23095011f add regression test for #73508 2020-07-16 12:39:02 +02:00
Bastian Kauschke
09ba0bda2c add regression test for #73491 2020-07-16 12:35:53 +02:00
Bastian Kauschke
946cb11a1e add regression test for #73120 2020-07-16 12:32:43 +02:00
Bastian Kauschke
de8d2e897f add regression test for #71805 2020-07-16 12:23:38 +02:00
Bastian Kauschke
a2b18274a8 add regression test for #71348 2020-07-16 12:17:27 +02:00
Bastian Kauschke
f52039d5e8 add regression test for #71169 2020-07-16 12:14:03 +02:00
Bastian Kauschke
eee160cdea add regression test for #70586 2020-07-16 12:10:15 +02:00
Bastian Kauschke
137ca05ccd add regression test for #70217 2020-07-16 12:03:52 +02:00
Bastian Kauschke
333dce960c add regression test for #68596 2020-07-16 12:03:52 +02:00
Bastian Kauschke
e009b53df4 add regression tests for #67144 2020-07-16 11:46:39 +02:00
Bastian Kauschke
01f5dd374c bless ui tests 2020-07-16 11:40:26 +02:00
Bastian Kauschke
0c511ab5c7 update help message 2020-07-16 11:13:05 +02:00
Bastian Kauschke
6f5d8bf5c8 don't supply generics to AnonConsts in param lists 2020-07-16 11:13:05 +02:00
Bastian Kauschke
14a1031ec6 add self dependent const param test 2020-07-16 11:13:05 +02:00
Bastian Kauschke
338a27174a forbid generic params in the type of const params 2020-07-16 11:13:05 +02:00
Manish Goregaokar
e598ee51e4
Rollup merge of #74037 - JohnTitor:contributing-md, r=Mark-Simulacrum
Update reference to CONTRIBUTING.md

CONTRIBUTING.md has been migrated to the rustc-dev-guide but some still refer there.
Update them with the appropriate links.

Fixes #74253
2020-07-16 00:01:04 -07:00
marmeladema
4a96800aef Constify most non-trait Duration methods as described in #72440 2020-07-15 21:37:16 +01:00
Manish Goregaokar
f4bbd0e607
Rollup merge of #74337 - estebank:ty-parse-recovery, r=varkor
Handle case of incomplete local ty more gracefully

When encountering a local binding with a type that isn't completed, the
parser will reach a `=` token. When this happen, consider the type
"complete" as far as the parser is concerned to avoid further errors
being emitted by parse recovery logic.
2020-07-15 11:01:26 -07:00
Manish Goregaokar
47f6a9d797
Rollup merge of #74276 - lcnr:discriminant-kind-what, r=nagisa
improve DiscriminantKind handling

Adds a lang item `discriminant_type` for the associated type `DiscriminantKind::Discriminant`.

Changes the discriminant of generators from `i32` to `u32`, which should not be observable to fix an
oversight where MIR was using `u32` and codegen and typeck used `i32`.
2020-07-15 11:01:20 -07:00
Oliver Scherer
703f6803db Don't panic if the lhs of a div by zero is not statically known 2020-07-15 17:55:19 +02:00
Bastian Kauschke
526945915b add lazy normalization regression tests 2020-07-15 15:15:43 +02:00
Bastian Kauschke
805c44d5d3 cleanup 2020-07-15 12:58:33 +02:00
Bastian Kauschke
ae80d7e012 update const arg queries 2020-07-15 12:58:33 +02:00
Bastian Kauschke
08394eb121 update test 2020-07-15 12:58:32 +02:00
Bastian Kauschke
050acc0213 ui test diff 2020-07-15 12:58:32 +02:00
Bastian Kauschke
b615b98f33 continue mir pipeline 2020-07-15 12:58:32 +02:00
Bastian Kauschke
2111d6f276 add const generic tests 2020-07-15 12:58:32 +02:00
Bastian Kauschke
fcf52c167f improve DiscriminantKind handling
This now reuses `fn discriminant_ty` in project, removing
some code duplication. Doing so made me realize that
we previously had a disagreement about the discriminant
type of generators, with MIR using `u32` and codegen and
trait selection using `i32`.

We now always use `u32`.
2020-07-15 10:20:44 +02:00