Commit Graph

104368 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
07effe18b0
Rollup merge of #67543 - JohnTitor:regression-tests, r=Centril
Add regression tests for fixed ICEs

Closes #61747 (fixed from 1.41.0-nightly (4007d4ef2 2019-12-01))
Closes #66205 (fixed from 1.41.0-nightly (4007d4ef2 2019-12-01))
Closes #66270 (fixed by #66246)
Closes #67424 (fixed by #67160)

Also picking a minor nit up from #67071 with 101dd7bad9

r? @Centril
2019-12-24 04:39:55 +01:00
Mazdak Farrokhzad
1ac8fc76d4
Rollup merge of #67337 - oli-obk:no_mut_static_ref_from_const, r=RalfJung
Ensure that evaluating or validating a constant never reads from a static

r? @RalfJung

as per https://github.com/rust-lang/rust/pull/66302#issuecomment-554663387

This does not yet address the fact that evaluation of a constant can read from a static (under unleash-miri)
2019-12-24 04:39:53 +01:00
bors
a4cd03dee2 Auto merge of #66296 - Centril:bindings_after_at-init, r=pnkfelix
Initial implementation of `#![feature(bindings_after_at)]`

Following up on #16053, under the gate `#![feature(bindings_after_at)]`, `x @ Some(y)` is allowed subject to restrictions necessary for soundness.

The implementation and test suite should be fairly complete now.

One aspect that is not covered is the interaction with nested `#![feature(or_patterns)]`.
This is not possible to test at the moment in a good way because that feature has not progressed sufficiently and has fatal errors in MIR building. We should make sure to add such tests before we stabilize both features (but shipping one of them is fine).

r? @pnkfelix
cc @nikomatsakis @matthewjasper @pcwalton
cc https://github.com/rust-lang/rust/issues/65490
2019-12-23 21:49:44 +00:00
bors
9ae6cedb8d Auto merge of #67560 - Centril:rollup-fzdpu9c, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #67233 (Add PartialEq and Eq to Cursor)
 - #67466 (Require const stability attributes on intrinsics to be able to use them in constant contexts)
 - #67507 (Remove mem::uninitalized from tests)
 - #67527 (Results show too much)
 - #67536 (Move `{hir::lowering -> hir}::is_range_literal`)
 - #67538 (Improve diagnostics for invalid assignment)
 - #67546 (Fix ICE in mir interpretation)
 - #67559 (Document that calling Drop, even after it panics, is UB)

Failed merges:

r? @ghost
2019-12-23 18:28:33 +00:00
Oliver Scherer
87fea04871 Bless tests 2019-12-23 17:48:22 +01:00
Yuki Okushi
d918319bed Apply suggestion from Centril
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-12-24 01:05:09 +09:00
Yuki Okushi
1f2fa939a5 Add test for issue-67424 2019-12-24 01:05:09 +09:00
Oliver Scherer
75bdd95d4e Tidy 2019-12-23 15:22:36 +01:00
Mazdak Farrokhzad
68a9a2d648
Rollup merge of #67559 - Mark-Simulacrum:drop-doc, r=RalfJung
Document that calling Drop, even after it panics, is UB

Fixes #60822.

r? @gnzlbg
2019-12-23 15:16:32 +01:00
Mazdak Farrokhzad
7eb025febf
Rollup merge of #67546 - oli-obk:slice_pattern_ice, r=varkor
Fix ICE in mir interpretation

Indices from the end start at 1 so you can immediately subtract them from the length to get the index instead of having to do an additional `-1`. Kinda documented in https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/enum.ProjectionElem.html#variant.ConstantIndex
2019-12-23 15:16:31 +01:00
Mazdak Farrokhzad
41647613b1
Rollup merge of #67538 - varkor:lhs-assign-diagnostics, r=Centril
Improve diagnostics for invalid assignment

- Improve wording and span information for invalid assignment diagnostics.
- Link to https://github.com/rust-lang/rfcs/issues/372 when it appears the user is trying a destructuring assignment.
- Make the equality constraint in `where` clauses error consistent with the invalid assignment error.
2019-12-23 15:16:29 +01:00
Mazdak Farrokhzad
3a07f3ba75
Rollup merge of #67536 - Centril:move-is_range_literal, r=Mark-Simulacrum
Move `{hir::lowering -> hir}::is_range_literal`

The function is never used inside lowering, but only ever in external crates.
By moving it, we facilitate lowering as its own crate.

Best read commit-by-commit.

r? @Mark-Simulacrum
2019-12-23 15:16:28 +01:00
Mazdak Farrokhzad
6f38a15c7b
Rollup merge of #67527 - GuillaumeGomez:results-show-too-much, r=kinnison
Results show too much

Fixes #67461.

To reproduce the current issue: search anything, then once the results appears, press escape. They should disappear then re-appear right away. This is because blurring an element triggers the "change" event.

r? @kinnison
2019-12-23 15:16:26 +01:00
Mazdak Farrokhzad
67c0f4e2c9
Rollup merge of #67507 - Mark-Simulacrum:purge-uninit, r=Centril
Remove mem::uninitalized from tests

This purges uses of uninitialized where possible from test cases. Some
are merely moved over to the equally bad pattern of
MaybeUninit::uninit().assume_init() but with an annotation that this is
"the best we can do".

Fixes #62397
2019-12-23 15:16:24 +01:00
Mazdak Farrokhzad
1de2705c79
Rollup merge of #67466 - oli-obk:const_intrinsic, r=Centril
Require const stability attributes on intrinsics to be able to use them in constant contexts

r? @Centril

finally fixes #61495

cc @RalfJung
2019-12-23 15:16:23 +01:00
Mazdak Farrokhzad
260514da94
Rollup merge of #67233 - Luro02:cursor_traits, r=sfackler
Add PartialEq and Eq to Cursor

closes #67226
2019-12-23 15:16:21 +01:00
Oliver Scherer
63d28221c6
Fix typo 2019-12-23 15:11:09 +01:00
Mark Rousskov
a08df28a6f Document that calling Drop, even after it panics, is UB 2019-12-23 09:04:00 -05:00
Oliver Scherer
89250b97f5 Update src/librustc_mir/interpret/intern.rs
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-12-23 14:54:46 +01:00
Oliver Scherer
e56a86162c Show const_err lints 2019-12-23 14:54:37 +01:00
Oliver Scherer
2022fac4df Constants reading or referencing statics is illegal
and some uses of it will be illegal forever
(e.g. mutable or interior mutable statics)
2019-12-23 14:54:30 +01:00
Oliver Scherer
ad6b9c79d6 Dynamically prevent constants from accessing statics 2019-12-23 14:54:22 +01:00
Oliver Scherer
640e2884ad Panic on mutable allocs in constants 2019-12-23 14:54:14 +01:00
Mazdak Farrokhzad
acfe58272c adjust E0303 error code docs 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
371446cc50 Remove bindings_after_at from INCOMPLETE_FEATURES. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
8846a6b6bb Test that nested type ascription is banned. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
c37bd26eaa Test that _ @ subpat is syntactically rejected. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
e39abcfad9 harden & split borrowck-pat-at-and-box 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
48f2766522 enhance borrowck-pat-by-copy-bindings-in-at 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
427b1c33e9 clarify bind-by-move-neither-can-livee.. 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
6fa8f4a57b bindings_after_at: harden tests wrt. contexts & slice_patterns 2019-12-23 14:47:20 +01:00
Mazdak Farrokhzad
0034e6199e bindings_after_at: harden tests wrt. promotion 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
9ab36037a4 --bless bindings-after-at tests 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
10ac7ea127 document check_borrow_conflicts_in_at_patterns 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
b9aba749cf improve robustness of pat walkers 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
5a8baa2876 refactor with extract_binding_mode 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
eed311f719 add check_borrow_conflicts_in_at_patterns analysis 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
6a87f99620 check_legality_of_move_bindings: generalize diagnostics & add comments 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
25b6a28a51 add a fixme 2019-12-23 14:47:19 +01:00
Mazdak Farrokhzad
5f92a56ed6 Introduce #![feature(bindings_after_at)].
Under the gate, `x @ Some(y)` is allowed.
This is subject to various restrictions for soundness.
2019-12-23 14:47:19 +01:00
varkor
9e5081394c Fix reformatting rebase issues 2019-12-23 12:39:48 +00:00
Mazdak Farrokhzad
4bb83468a2 is_range_literal: leave FIXME 2019-12-23 13:11:15 +01:00
Mazdak Farrokhzad
dd7f49301e is_range_literal: fix fallout 2019-12-23 13:11:10 +01:00
varkor
9a602243c4 Add new folder for destructuring assignment tests 2019-12-23 11:20:13 +00:00
varkor
35979a92bf Add span information to ExprKind::Assign 2019-12-23 11:20:13 +00:00
varkor
5ab4735559 Recognise nested tuples/arrays/structs 2019-12-23 11:17:55 +00:00
varkor
5fa02ecc29 Add note about destructuring assignments 2019-12-23 11:17:55 +00:00
varkor
b7bfdbe681 Improve invalid assignment error 2019-12-23 11:16:51 +00:00
varkor
a5991c57cf Add the full issue reference to equality constraints in where clauses 2019-12-23 11:15:55 +00:00
Mazdak Farrokhzad
45acee3090 Move {hir::lowering -> hir}::is_range_literal.
The function is never used inside lowering,
but only ever in external crates.

By moving it, we faciliate lowering as its own crate.
2019-12-23 12:03:22 +01:00