Commit Graph

97229 Commits

Author SHA1 Message Date
Tshepang Lekhonkhobe
48c734669c doc: the content has since been moved to the guide 2019-08-06 03:03:45 +02:00
Tshepang Lekhonkhobe
175eb9ca93 doc: fix broken sentence
Also, the move was done nearly a year ago
2019-08-06 02:36:59 +02:00
Jake Goulding
571e22d7e8 Clarify align_to's requirements and obligations 2019-08-05 19:44:07 -04:00
Ryan Gorup
ef0f49054f Tests around moving parts of structs and tuples across await points 2019-08-05 16:19:20 -07:00
Alexander Regueiro
0410e320e2 Changed tests to check-pass. 2019-08-05 23:46:04 +01:00
Guillaume Gomez
4fb29f9fd2 Add test for DerefMut methods 2019-08-06 00:41:52 +02:00
Santiago Pastorino
f85fc7168c PlaceRef's base is already a reference 2019-08-06 00:41:16 +02:00
Tyler Mandry
9058bf2100 Make use of possibly uninitialized data a hard error
This is one of the behaviors we no longer allow in NLL. Since it can
lead to undefined behavior, I think it's definitely worth making it a
hard error without waiting to turn off migration mode (#58781).

Closes #60450.

My ulterior motive here is making it impossible to leave variables
partially initialized across a yield (see discussion at #63035), so
tests are included for that.
2019-08-05 14:57:12 -07:00
Guillaume Gomez
d89bf91b2d Display methods from DerefMut in the sidebar as well 2019-08-05 23:14:22 +02:00
Ralf Jung
7c374cf7d2 don't ignore mir_dump folder 2019-08-05 22:30:13 +02:00
Santiago Pastorino
30910eef36 Make qualify consts in_projection use PlaceRef 2019-08-05 21:39:22 +02:00
bors
c4715198b5 Auto merge of #59369 - oli-obk:unwrap_usICE, r=eddyb,nikomatsakis
`unwrap_usize` should at least try to evaluate the underlying constant

r? @eddyb

fixes #59016

I know that I'm still using `ParamEnv` wrongly, but that's a preexisting issue not amplified by this PR.
2019-08-05 19:06:50 +00:00
Ralf Jung
e1875742d0 assume_init: warn about valid != safe 2019-08-05 20:13:59 +02:00
Ralf Jung
1f018636e3 improve align_offset docs 2019-08-05 18:38:10 +02:00
Mark Rousskov
3cd7f08ed1 Force callers of resolve_ast_path to deal with Res::Err correctly 2019-08-05 12:31:00 -04:00
Oliver Scherer
bd57498e7d Get rid of one more useless lift invocation 2019-08-05 17:49:40 +02:00
Oliver Scherer
f2079338b5 Update to new passing-ui-test scheme 2019-08-05 17:48:05 +02:00
Oliver Scherer
d1f62b92eb Prevent array length printing cycle with debug assertions 2019-08-05 17:48:05 +02:00
Oliver Scherer
7385f2177f Fixup: eval_usize needs param env 2019-08-05 17:48:05 +02:00
Oliver Scherer
2d86d040a5 Address comment and formatting nits 2019-08-05 17:48:05 +02:00
Oliver Scherer
f4f957d00b Clear the ParamEnv where its information is irrelevant 2019-08-05 17:48:05 +02:00
Oliver Scherer
7710820d18 Fiddle param env through to try_eval_bits in most places 2019-08-05 17:48:05 +02:00
Oliver Scherer
f9e29b279c Add regression tests 2019-08-05 17:48:04 +02:00
Oliver Scherer
9b87d22ea8 Don't abort on unevaluated constants without at least tryting to eval them 2019-08-05 17:48:04 +02:00
Oliver Scherer
437f017e2e Clean up the ty::Const::assert* methods 2019-08-05 17:48:04 +02:00
bors
f6ecdc2f61 Auto merge of #61491 - stjepang:impls-for-accesserror, r=dtolnay
Add a few trait impls for AccessError
2019-08-05 15:30:40 +00:00
Alexander Regueiro
0994cf4ab0 Added another test. 2019-08-05 16:07:26 +01:00
Mark Rousskov
288b4e9078 Don't store &Span
This is just needless indirection.
2019-08-05 10:29:06 -04:00
Jake Goulding
32324d22c3 Add implementations for converting boxed slices into boxed arrays
This mirrors the implementations of reference slices into arrays.
2019-08-05 10:26:53 -04:00
David Laban
f40190a6a5 test drop order for parameters when a future is dropped part-way through execution 2019-08-05 15:26:08 +01:00
Mark Rousskov
18130ef044 Replace error callback with Result 2019-08-05 10:21:25 -04:00
Alexander Regueiro
4e0e645dd9 Added test for issue. 2019-08-05 15:16:28 +01:00
Niko Matsakis
e0712c898e useful debug 2019-08-05 15:16:27 +01:00
Niko Matsakis
63a67a076f useful comments 2019-08-05 15:16:27 +01:00
Alexander Regueiro
709b924643 Ensure type_param_predicates fn only returns predicates for type param with given def-ID. 2019-08-05 15:16:27 +01:00
Alexander Regueiro
3d9d36b3ff Got rid of concept of 'principal trait' in more places in codebase. 2019-08-05 15:16:27 +01:00
Alexander Regueiro
8f9ca24f55 A few cosmetic improvements. 2019-08-05 15:16:27 +01:00
Ralf Jung
90b95cf53f
fix slice comparison
Co-Authored-By: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-05 15:30:08 +02:00
Mark Rousskov
fbf93d4931 Remove leftover AwaitOrigin
This was missed in PR #62293.
2019-08-05 09:14:51 -04:00
Mark Rousskov
8849149745 Make mk_attr_id private to libsyntax 2019-08-05 08:48:22 -04:00
Mark Rousskov
24a491f40c Drop explicit span argument from mk_name_value_item 2019-08-05 08:48:22 -04:00
Mark Rousskov
ab3fb1e775 Drop span argument from mk_list_item 2019-08-05 08:45:00 -04:00
Aleksey Kladov
b3e8c8bbe2 adapt rustdoc to infailable lexer 2019-08-05 13:15:12 +03:00
Aleksey Kladov
58ac81a60f add unknown token 2019-08-05 13:15:11 +03:00
Aleksey Kladov
b5e35b128e remove special code path for unknown tokens 2019-08-05 13:15:11 +03:00
Ralf Jung
4e51ef7ccd
Test content, not value
Co-Authored-By: Aleksey Kladov <aleksey.kladov@gmail.com>
2019-08-05 11:21:15 +02:00
bors
4be0675589 Auto merge of #63079 - RalfJung:ctfe-no-align, r=oli-obk
CTFE: simplify ConstValue by not checking for alignment

I hope the test suite actually covers the problematic cases here?

r? @oli-obk

Fixes https://github.com/rust-lang/rust/issues/61952
2019-08-05 08:16:51 +00:00
bors
e1d7e4ae82 Auto merge of #63248 - petrochenkov:nomarker, r=matthewjasper
Move special treatment of `derive(Copy, PartialEq, Eq)` from expansion infrastructure to elsewhere

As described in https://github.com/rust-lang/rust/pull/62086#issuecomment-515195477.

Reminder:
- `derive(PartialEq, Eq)` makes the type it applied to a "structural match" type, so constants of this type can be used in patterns (and const generics in the future).
- `derive(Copy)` notifies other derives that the type it applied to implements `Copy`, so `derive(Clone)` can generate optimized code and other derives can generate code working with `packed` types and types with `rustc_layout_scalar_valid_range` attributes.

First, the special behavior is now enabled after properly resolving the derives, rather than after textually comparing them with `"Copy"`, `"PartialEq"` and `"Eq"` in `fn add_derived_markers`.

The markers are no longer kept as attributes in AST since derives cannot modify items and previously did it through hacks in the expansion infra.
Instead, the markers are now kept in a "global context" available from all the necessary places, namely - resolver.

For `derive(PartialEq, Eq)` the markers are created by the derive macros themselves and then consumed during HIR lowering to add the `#[structural_match]` attribute in HIR.
This is still a hack, but now it's a hack local to two specific macros rather than affecting the whole expansion infra.
Ideally we should find the way to put `#[structural_match]` on the impls rather than on the original item, and then consume it in `rustc_mir`, then no hacks in expansion and lowering will be required.
(I'll make an issue about this for someone else to solve, after this PR lands.)

The marker for `derive(Copy)` cannot be emitted by the `Copy` macro itself because we need to know it *before* the `Copy` macro is expanded for expanding other macros.
So we have to do it in resolve and block expansion of any derives in a `derive(...)` container until we know for sure whether this container has `Copy` in it or not.
Nasty stuff.

r? @eddyb or @matthewjasper
2019-08-05 04:36:51 +00:00
bors
11a51488f0 Auto merge of #63245 - RalfJung:miri-error, r=oli-obk
More Miri error tweaks

* Add `err_` version of the `_format!` macros
* Add `UbExperimental` variant so that Miri can mark some UB as experimental (e.g. Stacked Borrows)

r? @oli-obk
2019-08-05 00:57:19 +00:00
Esteban Küber
f621f890a6 revert change to single test 2019-08-04 13:14:53 -07:00