Commit graph

10537 commits

Author SHA1 Message Date
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
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
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
Yuki Okushi
a9b64766a4
Tweak wording 2020-07-10 07:24:18 +09:00
Yuki Okushi
6864546049
Add a help to use in_band_lifetimes in nightly 2020-07-10 06:39:46 +09:00
Esteban Küber
520fb92c33 Reword incorrect self token suggestion 2020-07-09 13:01:20 -07:00
Manish Goregaokar
9353e21bfd
Rollup merge of #74188 - estebank:tweak-ascription-typo-heuristic, r=petrochenkov
Tweak `::` -> `:` typo heuristic and reduce verbosity

Do not trigger on correct type ascription expressions with trailing
operators and _do_ trigger on likely path typos where a turbofish is
used.

On likely path typos, remove note explaining type ascription.

Clean up indentation.

r? @petrochenkov
2020-07-09 11:50:50 -07:00
Esteban Küber
e771a4f989 Tweak :: -> : typo heuristic and reduce verbosity
Do not trigger on correct type ascription expressions with trailing
operators and _do_ trigger on likely path typos where a turbofish is
used.

On likely path typos, remove note explaining type ascription.
2020-07-09 09:09:25 -07:00
Tamir Duberstein
1e567c1168
Avoid "blacklist"
Other terms are more inclusive and precise.

Clippy still has a lint named "blacklisted-name", but renaming it would
be a breaking change, so is left for future work.

The target configuration option "abi-blacklist" has been depreciated and
renamed to "unsupported-abis". The old name continues to work.
2020-07-08 12:08:27 -04:00
Ayaz Hafiz
3c63fba03d
Correctly mark the ending span of a match arm
Closes #74050

r? @matthewjasper
2020-07-08 07:28:07 -07:00
bors
e1beee4992 Auto merge of #74059 - RalfJung:miri-uninit-validation, r=oli-obk
Miri value validation: fix handling of uninit memory

Fixes https://github.com/rust-lang/miri/issues/1456
Fixes https://github.com/rust-lang/miri/issues/1467

r? @oli-obk
2020-07-07 14:21:18 +00:00
Manish Goregaokar
38f5151d3f
Rollup merge of #74102 - oli-obk:const_prop_icde, r=wesleywiser
Fix const prop ICE

we used to erase the local just before we tried to read it for diagnostics

fixes #73993

r? @wesleywiser
2020-07-06 17:45:39 -07:00
Manish Goregaokar
62ba1bf1f1
Rollup merge of #73969 - davidtwco:issue-73914-checkedadd-temp-generator-interior, r=matthewjasper
mir: mark mir construction temporaries as internal

Fixes #73914.

This PR marks temporaries from MIR construction as internal such that they are skipped in `sanitize_witness` (where each MIR local is checked to have been contained within the generator interior computed during typeck). This resolves an ICE whereby the construction of checked addition introduced a `(u64, bool)` temporary which was not in the HIR and thus not in the generator interior.

r? @matthewjasper
2020-07-06 17:45:26 -07:00
Manish Goregaokar
e74ab50d07
Rollup merge of #73953 - JohnTitor:audit-hidden-sugg, r=estebank
Audit hidden/short code suggestions

Should fix #73641.
Audit uses of `span_suggestion_short` and `tool_only_span_suggestion` (`span_suggestion_hidden` is already tested with `run-rustfix`). Leave some FIXMEs for futher improvements/fixes.
r? @estebank
2020-07-06 17:45:22 -07:00
Gary Guo
97867bbe5c Add UI test for issue 74082 2020-07-06 21:04:54 +01:00
Manish Goregaokar
0eadeda945
Rollup merge of #74000 - lcnr:lazy_normalisation_consts, r=varkor
add `lazy_normalization_consts` feature gate

In #71973 I underestimated the amount of code which is influenced by lazy normalization of consts
and decided against having a separate feature flag for this.

Looking a bit more into this, the following issues are already working with lazy norm in its current state #47814 #57739 #73980

I therefore think it is worth it to enable lazy norm separately. Note that `#![feature(const_generics)]` still automatically activates
this feature, so using `#![feature(const_generics, lazy_normalization_consts)]` is redundant.

r? @varkor @nikomatsakis
2020-07-05 16:07:30 -07:00
Manish Goregaokar
e450646e97
Rollup merge of #73973 - Nadrieril:fix-71977, r=matthewjasper
Use `Span`s to identify unreachable subpatterns in or-patterns

Fixes #71977
2020-07-05 16:07:28 -07:00
Manish Goregaokar
a1ac4d66d3
Rollup merge of #73937 - JohnTitor:note-exhaustive-sized-int, r=varkor
Explain exhaustive matching on {usize,isize} maximum values

The wording is taken from https://github.com/rust-lang/rfcs/blob/master/text/2591-exhaustive-integer-pattern-matching.md#reference-level-explanation.
Fixes #73919

r? @varkor
2020-07-05 16:07:27 -07:00
Manish Goregaokar
3e78eac206
Rollup merge of #73871 - da-x:private-types-2018-no-extern, r=petrochenkov
Fix try_print_visible_def_path for Rust 2018

The recursive check of `try_print_visible_def_path` did not properly handle the Rust 2018 case of crate-paths without 'extern crate'. Instead, it returned a "not found" via (false, self).

 This fixes #56175.
2020-07-05 16:07:25 -07:00
Ralf Jung
751b594cc8 const validation: add test for uninit bool 2020-07-05 13:48:06 +02:00
Ralf Jung
c3fc4f0420 catch errors more locally around read_discriminant 2020-07-05 13:40:27 +02:00
Nadrieril
3cb31b6699 Fix #71977 2020-07-04 21:21:07 +01:00
Yuki Okushi
b93ecc1dac
Address code reviews 2020-07-05 03:43:43 +09:00