Commit graph

10557 commits

Author SHA1 Message Date
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
bors
567ad7455d Auto merge of #74175 - nnethercote:more-static-symbols, r=oli-obk
More static symbols

These commits add some more static symbols and convert lots of places to use them.

r? @oli-obk
2020-07-15 00:16:25 +00:00
Nicholas Nethercote
f04e866e57 Add and use more static symbols.
Note that the output of `unpretty-debug.stdout` has changed. In that
test the hash values are normalized from a symbol numbers to small
numbers like "0#0" and "0#1". The increase in the number of static
symbols must have caused the original numbers to contain more digits,
resulting in different pretty-printing prior to normalization.
2020-07-15 08:42:59 +10:00
Manish Goregaokar
dbe7ed33cd
Rollup merge of #74340 - davidtwco:issue-73747-improper-ctypes-defns-is-zst-with-params, r=pnkfelix
lint: use `transparent_newtype_field` to avoid ICE

Fixes #73747.

This PR re-uses the `transparent_newtype_field` function instead of manually calling `is_zst` on normalized fields to determine which field in a transparent type is the non-zero-sized field, thus avoiding an ICE.
2020-07-14 13:19:39 -07:00
Manish Goregaokar
c4fcf5a7a4
Rollup merge of #74336 - davidtwco:issue-73112-cross-crate-packed-type-diagnostic, r=estebank
typeck: use `item_name` in cross-crate packed diag

Fixes #73112.

This PR replaces the use of `expect_local` and `hir().get` to fetch the identifier for a ADT with `item_name` - which works across crates.
2020-07-14 13:19:37 -07:00
Manish Goregaokar
a364c0a782
Rollup merge of #74228 - estebank:unsized-param, r=davidtwco
Provide structured suggestion on unsized fields and fn params

* Suggest borrowing or boxing unsized fields
* Suggest borrowing fn parameters
* Remove some verbosity of unsized errors
* Remove `on_unimplemented` note from `trait Sized`

Fix #23286, fix #28653.

r? @davidtwco
2020-07-14 13:19:24 -07:00
Manish Goregaokar
be5c7abfd6
Rollup merge of #74211 - estebank:struct-pat-as-unit, r=petrochenkov
Structured suggestion when not using struct pattern

r? @petrochenkov
2020-07-14 13:19:22 -07:00
Esteban Küber
ff75395ca8 Reword message 2020-07-14 12:19:50 -07:00
Esteban Küber
c38b127d84 Remove redundant explanatory note for type parameters 2020-07-14 12:19:44 -07:00
David Wood
cccc3109ff
lint: use transparent_newtype_field to avoid ICE
This commit re-uses the `transparent_newtype_field` function instead of
manually calling `is_zst` on normalized fields to determine which field
in a transparent type is the non-zero-sized field, thus avoiding an ICE.

Signed-off-by: David Wood <david@davidtw.co>
2020-07-14 19:26:34 +01:00
Esteban Küber
d989796b47 Suggest borrowing in more unsized fn param cases 2020-07-14 10:50:24 -07:00
Esteban Küber
b7db6bb5af Remove Sized on_unimplemented note 2020-07-14 10:50:24 -07:00
Esteban Küber
28e6f1f5b9 Suggest boxing or borrowing unsized fields 2020-07-14 10:50:24 -07:00
Esteban Küber
a15bda4036 Point at type on E0275 instead of whole field 2020-07-14 10:50:24 -07:00
Esteban Küber
c88409de13 Suggest borrowing unsized argument types 2020-07-14 10:50:24 -07:00
Esteban Küber
04298204ed Suggest struct pat on incorrect unit or tuple pat
When encountering a unit or tuple pattern for a struct-like item, suggest
using the correct pattern.

Use `insert_field_names_local` when evaluating variants and store field
names even when the list is empty in order to produce accurate
structured suggestions.
2020-07-14 10:41:44 -07:00
David Wood
d9485be595
typeck: use item_name in cross-crate packed diag
This commit replaces the use of `expect_local` and `hir().get` to fetch
the identifier for a ADT with `item_name` - which works across crates.

Signed-off-by: David Wood <david@davidtw.co>
2020-07-14 16:28:11 +01:00
Manish Goregaokar
1114f2231a
Rollup merge of #74270 - davidtwco:issue-74086-more-placeholder-type-error, r=estebank
typeck: report placeholder type error w/out span

Fixes #74086.

This PR fixes a regression introduced in rust-lang/rust#70369 which meant that an error was not being emitted for invalid placeholder types when there wasn't a span available.

r? @estebank
2020-07-14 07:39:11 -07:00
Manish Goregaokar
b9a0f5803e
Rollup merge of #74173 - estebank:struct-pat-as-enum, r=petrochenkov
Detect tuple struct incorrectly used as struct pat

Subpart of #74005.

r? @petrochenkov
2020-07-14 07:39:02 -07:00
Manish Goregaokar
6a4faa2da1
Rollup merge of #73965 - davidtwco:issue-73886-non-primitive-slice-cast, r=estebank
typeck: check for infer before type impls trait

Fixes #73886.

This PR checks that the target type of the cast (an error related to which is being reported) does not have types to be inferred before checking if it implements the `From` trait.

r? @estebank
2020-07-14 07:38:58 -07:00
Manish Goregaokar
9a1df31d55
Rollup merge of #74286 - PankajChaudhary5:E0688, r=GuillaumeGomez
Added detailed error code explanation for issue E0688 in Rust compiler.

Added proper error explanation for issue E0688 in the Rust compiler.
Error Code E0688

Sub Part of Issue #61137

r? @GuillaumeGomez
2020-07-13 22:23:15 -07:00
Manish Goregaokar
fa4ada1a86
Rollup merge of #74285 - wangtheo:issue-71669, r=lcnr
#71669: add ui, codegen tests for volatile + nearby int intrinsics

Added some tests for intrinsics. See https://github.com/rust-lang/rust/issues/71669.
2020-07-13 22:23:13 -07:00
wangtheo
8df79fcc76
Remove trailing whitespace 2020-07-13 09:44:48 -04:00
Pankaj Chaudhary
bc2b37aad7 Merge branch 'master' into E0688 2020-07-13 14:57:22 +05:30
PankajChaudhary5
e3ae4c7345 Added proper explanation of ErrorCode-E0688 2020-07-13 14:05:48 +05:30
Teddy_Wang
eac809244e Removed trailing whitespace 2020-07-13 01:52:10 -04:00
Teddy_Wang
5ff7e1ad2c Added ui tests for volatile and nearby intrinsics 2020-07-13 00:47:09 -04:00
Esteban Küber
5daedea3db Detect tuple struct incorrectly used as struct pat 2020-07-12 10:34:48 -07:00
David Wood
5afbc5201c
typeck: report placeholder type error w/out span
This commit fixes a regression introduced in rust-lang/rust#70369 which
meant that an error was not being emitted for invalid placeholder types
when there wasn't a span available.

Signed-off-by: David Wood <david@davidtw.co>
2020-07-12 16:40:22 +01:00
Manish Goregaokar
aa04ffb61a
Rollup merge of #74240 - da-x:fix-74081, r=Manishearth
Fix #74081 and add the test case from #74236
2020-07-11 08:53:27 -07:00
Manish Goregaokar
e15fa4537c
Rollup merge of #74197 - estebank:self-sugg, r=petrochenkov
Reword incorrect `self` token suggestion
2020-07-11 08:53:23 -07:00
Manish Goregaokar
9f7b64eecb
Rollup merge of #74168 - JohnTitor:help-for-in-band-lifetimes, r=petrochenkov
Add a help to use `in_band_lifetimes` in nightly

Fixes #73775
2020-07-11 08:53:21 -07:00
Manish Goregaokar
90f1d724c8
Rollup merge of #72920 - oli-obk:const_transmute, r=RalfJung
Stabilize `transmute` in constants and statics but not const fn

cc #53605 (leaving issue open so we can add `transmute` to `const fn` later)

Previous attempt: #64011

r? @RalfJung

cc @rust-lang/wg-const-eval
2020-07-11 08:53:06 -07:00
Dan Aloni
f5de23b5c1 Add the test case mentioned in #74236 2020-07-11 14:53:04 +03:00
Oliver Scherer
dd872be5da Stabilize transmute in constants and statics but not const fn 2020-07-11 09:22:17 +02:00
Manish Goregaokar
d2f8c30951
Rollup merge of #74127 - tamird:allowlist, r=oli-obk
Avoid "whitelist"

Other terms are more inclusive and precise.
2020-07-10 23:26:47 -07:00
Manish Goregaokar
8355024ed0
Rollup merge of #74125 - ayazhafiz:i/74050, r=matthewjasper
Correctly mark the ending span of a match arm

Closes #74050

r? @matthewjasper
2020-07-10 23:26:45 -07:00
Manish Goregaokar
8efa197ee4
Rollup merge of #74109 - nbdd0121:issue-74082, r=petrochenkov
Only allow `repr(i128/u128)` on enum

Fixes #74082
2020-07-10 23:26:41 -07:00
Manish Goregaokar
fa50a878f5
Rollup merge of #74103 - ajpaverd:cfguard-msvc-only, r=nikomatsakis
Only add CFGuard on `windows-msvc` targets

As @ollie27 pointed out in #73893, the `cfguard` module flag causes incorrect behavior on `windows-gnu` targets. This patch restricts rustc to only add this flag for `windows-msvc` targets (this may need to be changed if other linkers gain support for CFGuard).
2020-07-10 23:26:39 -07:00
Manish Goregaokar
ef3dc09fa7
Rollup merge of #73989 - RalfJung:ub-enum-test, r=oli-obk
adjust ub-enum test to be endianess-independent

@cuviper noted that our test fails on "other" endianess systems (I never know which is which^^), so let's fix that.
2020-07-10 23:26:30 -07:00
Manish Goregaokar
efda2b58b0
Rollup merge of #73887 - DutchGhost:master, r=oli-obk
stabilize const mem::forget

Stabilizes const `mem::forget` as implemented in https://github.com/rust-lang/rust/pull/69617 and tracked in https://github.com/rust-lang/rust/issues/69616.

Closes https://github.com/rust-lang/rust/issues/69616
2020-07-10 23:26:28 -07:00
Manish Goregaokar
f4f969027c
Rollup merge of #73862 - oli-obk:const_array_to_slice, r=RalfJung
Stabilize casts and coercions to `&[T]` in const fn

Part of #64992

There was never a reason to not stabilize this, we just accidentally prevented them when we implemented the `min_const_fn` feature that gave us `const fn` on stable. This PR stabilizes these casts (which are already stable in `const` outside `const fn`), while keeping all other unsizing casts (so `T` -> `dyn Trait`) unstable within const fn.
These casts have no forward compatibility concerns with any future features for const eval and users were able to use them under the `const_fn` feature gate already since at least the miri merger, possibly longer.

r? @rust-lang/lang
2020-07-10 23:26:26 -07:00
Manish Goregaokar
ec1e7e9dbc
Rollup merge of #71322 - petrochenkov:tuple00, r=nikomatsakis
Accept tuple.0.0 as tuple indexing (take 2)

If we expect something identifier-like when parsing a field name after `.`, but encounter a float token, we break that float token into parts, similarly to how we break `&&` into `&` `&`, or `<<` into `<` `<`, etc.

An alternative to https://github.com/rust-lang/rust/pull/70420.
2020-07-10 23:26:22 -07:00
Tamir Duberstein
62cf767a4a
Avoid "whitelist"
Other terms are more inclusive and precise.
2020-07-10 07:39:28 -04:00
Andrew Paverd
1ca7bfe481 Only add cfguard module flag on windows-msvc 2020-07-10 09:56:13 +01:00