Commit graph

97262 commits

Author SHA1 Message Date
Lzu Tao
031cc323f5 doc: Reword deprecation message of MetadataExt::as_raw_stat 2019-08-06 13:32:08 +00:00
Yuki Okushi
418bf968f0 Ignore no support targets 2019-08-06 22:01:12 +09:00
David Laban
3882ed4abc fixup! test drop order for parameters when a future is dropped part-way through execution 2019-08-06 10:26:37 +01:00
Ralf Jung
1821414b7b clarify 2019-08-06 10:41:48 +02:00
bors
8996328ebf Auto merge of #63319 - Centril:rollup-d89rmey, r=Centril
Rollup of 14 pull requests

Successful merges:

 - #61457 (Implement DoubleEndedIterator for iter::{StepBy, Peekable, Take})
 - #63017 (Remove special code-path for handing unknown tokens)
 - #63184 (Explaining the reason why validation is performed in to_str of path.rs)
 - #63230 (Make use of possibly uninitialized data [E0381] a hard error)
 - #63260 (fix UB in a test)
 - #63264 (Revert "Rollup merge of #62696 - chocol4te:fix_#62194, r=estebank")
 - #63272 (Some more libsyntax::attr cleanup)
 - #63285 (Remove leftover AwaitOrigin)
 - #63287 (Don't store &Span)
 - #63293 (Clarify align_to's requirements and obligations)
 - #63295 (improve align_offset docs)
 - #63299 (Make qualify consts in_projection use PlaceRef)
 - #63312 (doc: fix broken sentence)
 - #63315 (Fix #63313)

Failed merges:

r? @ghost
2019-08-06 08:21:32 +00:00
bravomikekilo
3a95c716dc Add rustfix test and fix test name. 2019-08-06 16:00:13 +08:00
Ralf Jung
1b9eb4ac4c be clear that 1-init Vec being valid (but not safe) is not a stable guarantee 2019-08-06 09:47:42 +02:00
Ralf Jung
c0480875f8 bump Miri 2019-08-06 09:06:54 +02:00
Mazdak Farrokhzad
c27405f829
Rollup merge of #63315 - rust-lang:fix-63313, r=alexreg
Fix #63313

Fixes #63313

r? @alexreg
2019-08-06 08:17:53 +02:00
Mazdak Farrokhzad
5710a23d46
Rollup merge of #63312 - tshepang:doc-fix, r=Centril
doc: fix broken sentence

Also, the move was done nearly a year ago
2019-08-06 08:17:52 +02:00
Mazdak Farrokhzad
5a3359d7cc
Rollup merge of #63299 - spastorino:in-projection-use-ref, r=oli-obk
Make qualify consts in_projection use PlaceRef

r? @oli-obk
2019-08-06 08:17:50 +02:00
Mazdak Farrokhzad
d7b49a8a85
Rollup merge of #63295 - RalfJung:align_offset, r=dtolnay
improve align_offset docs

Cc @shepmaster
2019-08-06 08:17:48 +02:00
Mazdak Farrokhzad
000d646424
Rollup merge of #63293 - shepmaster:align-to-doc, r=RalfJung
Clarify align_to's requirements and obligations

Based on discussions with @RalfJung around my misunderstandings when using this.

r? @RalfJung
2019-08-06 08:17:47 +02:00
Mazdak Farrokhzad
505d68e739
Rollup merge of #63287 - Mark-Simulacrum:span-no-ref, r=Centril
Don't store &Span

This is just needless indirection.
2019-08-06 08:17:45 +02:00
Mazdak Farrokhzad
2301ecd429
Rollup merge of #63285 - Mark-Simulacrum:rm-await-origin, r=Centril
Remove leftover AwaitOrigin

This was missed in PR #62293.
2019-08-06 08:17:44 +02:00
Mazdak Farrokhzad
b2603d6386
Rollup merge of #63272 - Mark-Simulacrum:clean-attr, r=petrochenkov
Some more libsyntax::attr cleanup

Much smaller patch than the last one, mostly just finishing up by removing some Span arguments.

r? @petrochenkov
2019-08-06 08:17:42 +02:00
Mazdak Farrokhzad
61da2f4d19
Rollup merge of #63264 - arielb1:revert-private-coherence-errors, r=estebank
Revert "Rollup merge of #62696 - chocol4te:fix_#62194, r=estebank"

This reverts commit df21a6f040 (#62696), reversing
changes made to cc16d04869.

That PR makes error messages worse than before, and we couldn't come up with a way of actually making them better, so revert it for now. Any idea for making this error message better is welcome!

Fixes #63145.

r? @estebank
2019-08-06 08:17:41 +02:00
Mazdak Farrokhzad
046936aeaf
Rollup merge of #63260 - RalfJung:ptr-test, r=matklad
fix UB in a test

We used to compare two mutable references that were supposed to point to the same thing. That's no good.

Compare them as raw pointers instead.
2019-08-06 08:17:39 +02:00
Mazdak Farrokhzad
ab7155dd97
Rollup merge of #63230 - tmandry:disallow-possibly-uninitialized, r=Centril
Make use of possibly uninitialized data [E0381] 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 #60889, discussion at #63035), so
tests are included for that.

cc #54987

---

I'm not sure if bypassing the buffer is a good way of doing this. We could also make a `force_errors_buffer` or similar that gets recombined with all the errors as they are emitted. But this is simpler and seems fine to me.

r? @Centril
cc @cramertj @nikomatsakis @pnkfelix @RalfJung
2019-08-06 08:17:38 +02:00
Mazdak Farrokhzad
e98823025f
Rollup merge of #63184 - JasonShin:master, r=sfackler
Explaining the reason why validation is performed in to_str of path.rs

I thought it's good to explain the reason for the validation during the conversion between Path/PathBuffer into str, which explains the reason for returning an Option at this point (good for beginners who are reading through the docs).
2019-08-06 08:17:36 +02:00
Mazdak Farrokhzad
61e270ab48
Rollup merge of #63017 - matklad:no-fatal, r=petrochenkov
Remove special code-path for handing unknown tokens

In `StringReader`, we have a buffer of fatal errors, which is used only in a single case: when we see something which is not a reasonable token at all, like `🦀`. I think a more straightforward thing to do here is to produce an explicit error token in this case, and let the next layer (the parser), deal with it.

However currently this leads to duplicated error messages. What should we do with this? Naively, I would think that emitting (just emitting, not raising) `FatalError` should stop other errors, but looks like this is not the case? We can also probably tweak parser on the case-by-case basis, to avoid emitting "expected" errors if the current token is an `Err`. I personally also fine with cascading errors in this case: it's quite unlikely that you actually type a fully invalid token.

@petrochenkov, which approach should we take to fight cascading errors?
2019-08-06 08:17:34 +02:00
Mazdak Farrokhzad
fe998dbfe4
Rollup merge of #61457 - timvermeulen:double_ended_iters, r=scottmcm
Implement DoubleEndedIterator for iter::{StepBy, Peekable, Take}

Now that `DoubleEndedIterator::nth_back` has landed, `StepBy` and `Take` can have an efficient `DoubleEndedIterator` implementation. I don't know if there was any particular reason for `Peekable` not having a `DoubleEndedIterator` implementation, but it's quite trivial and I don't see any drawbacks to having it.

I'm not very happy about the implementation of `Peekable::try_rfold`, but I didn't see another way to only take the value out of `self.peeked` in case `self.iter.try_rfold` didn't exit early.

I only added `Peekable::rfold` (in addition to `try_rfold`) because its `Iterator` implementation has both `fold` and `try_fold` (and for similar reasons I added `Take::try_rfold` but not `Take::rfold`). Do we have any guidelines on whether we want both? If we do want both, maybe we should investigate which iterator adaptors override `try_fold` but not `fold` and add the missing implementations. At the moment I think that it's better to always have iterator adaptors implement both, because some iterators have a simpler `fold` implementation than their `try_fold` implementation.

The tests that I added may not be sufficient because they're all just existing tests where `next`/`nth`/`fold`/`try_fold` are replaced by their DEI counterparts, but I do think all paths are covered. Is there anything in particular that I should probably also test?
2019-08-06 08:17:31 +02:00
bors
766b10a8d5 Auto merge of #62987 - Thomasdezeeuw:ioslice-advance, r=Thomasdezeeuw
Add {IoSlice, IoSliceMut}::advance

API inspired by the [`Buf::advance`](https://docs.rs/bytes/0.4.12/bytes/trait.Buf.html#tymethod.advance) method found in the [bytes](https://docs.rs/bytes) crate.

Closes #62726.
2019-08-06 04:43:03 +00:00
Esteban Küber
ce8510a214 fix tests 2019-08-05 19:26:55 -07:00
Mazdak Farrokhzad
ee48f820bf
Update README.md 2019-08-06 04:01:55 +02:00
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