Commit Graph

104093 Commits

Author SHA1 Message Date
ecstatic-morse b3aecd0d55 Fix grammar in test description
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-12-13 10:39:14 -08:00
Dylan MacKenzie a2a077460b Look for "unstable feature" error code in test
Conditionals and loops now have unstable features, and `feature_err` has
its own error code. I think that `feature_err` should take an error code
as a parameter, but don't have the energy to make this change throughout
the codebase. Also, the error code system may be torn out entirely.
2019-12-13 10:39:14 -08:00
Dylan MacKenzie a8e997c819 Improve comment 2019-12-13 10:39:14 -08:00
Dylan MacKenzie 2add77dffb Improve message when active feature indexing panics 2019-12-13 10:39:14 -08:00
Dylan MacKenzie 3325671036 Bless modified tests 2019-12-13 10:39:14 -08:00
Dylan MacKenzie caa7c99172 Bless unrelated tests with new help message 2019-12-13 10:39:14 -08:00
Dylan MacKenzie 1122404be5 Add qualif smoke tests for const loops 2019-12-13 10:39:14 -08:00
Dylan MacKenzie 99e132db97 Extend control flow basics tests with loops 2019-12-13 10:39:14 -08:00
Dylan MacKenzie ee233c07c6 Restructue HIR const-checker to handle features with multiple gates 2019-12-13 10:38:29 -08:00
Dylan MacKenzie 8f59902aad Put MIR checks for loops behind the feature flag 2019-12-13 10:38:29 -08:00
Dylan MacKenzie 57959b2bdc Add feature gate for `const_loop` 2019-12-13 10:38:29 -08:00
Dylan MacKenzie 8f3021bd2c Get active features dynamically by their `Symbol` 2019-12-13 10:38:29 -08:00
Shaleen Jain 9abde64a4e
docs: std::convert::From: Fix typo
Fix a minor typo
2019-12-13 23:20:02 +05:30
bors 703c82e531 Auto merge of #62359 - euclio:remove-serialize, r=Dylan-DPC
replace serialize with serde in rustdoc

This is a slightly less aggressive version of #61028.

r? @GuillaumeGomez
2019-12-13 16:14:47 +00:00
Mazdak Farrokhzad f97c37f8ae coerce_inner: use initial expected_ty 2019-12-13 15:52:51 +01:00
Oliver Scherer 0b47ba7019 The constness of 128 bit atomics will be stabilized together with the atomics 2019-12-13 13:28:55 +01:00
Ralf Jung 216b9ae878 be explicit that mem::uninitialized is the same as MaybeUninit::uninit().assume_init() 2019-12-13 13:13:37 +01:00
Oliver Scherer f12affef12 Address review comments 2019-12-13 11:27:02 +01:00
Oliver Scherer 3abc7272dc Consistently name `min_const_fn` 2019-12-13 11:27:02 +01:00
Oliver Scherer 83b8a561a1 Change the const stab default for internal const fns 2019-12-13 11:27:02 +01:00
Oliver Scherer 395a789def Fix rustdoc test 2019-12-13 11:27:02 +01:00
Oliver Scherer 8c83264989 Elaborate internal const fn comment 2019-12-13 11:27:02 +01:00
Oliver Scherer c7471ad43a Compiler internal error codes need no documentation 2019-12-13 11:27:02 +01:00
Oliver Scherer 5e17e39881 Require stable/unstable annotations for the constness of all stable functions with a `const` modifier 2019-12-13 11:27:02 +01:00
Oliver Scherer d75c7530f3 Reuse the `staged_api` feature for `rustc_const_unstable` 2019-12-13 11:27:01 +01:00
bors 3964a55ba5 Auto merge of #67077 - Aaron1011:build-llvm-in-binary, r=alexcrichton
rustc: Link LLVM directly into rustc again (take two)

This is a continuation of PR https://github.com/rust-lang/rust/pull/65703
2019-12-13 10:07:38 +00:00
bors 9409c208a9 Auto merge of #66405 - nnethercote:tweak-ObligForest-NodeStates, r=nikomatsakis
Remove `NodeState::{Waiting,Done}`

An optimization, and then some clean-ups.

r? @nikomatsakis
2019-12-13 06:51:28 +00:00
bors cf7e019b42 Auto merge of #67271 - Centril:rollup-i71iqkv, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #66341 (Match `VecDeque::extend` to `Vec::extend_desugared`)
 - #67243 (LinkedList: drop remaining items when drop panics)
 - #67247 (Don't suggest wrong snippet in closure)
 - #67250 (Remove the `DelimSpan` from `NamedMatch::MatchedSeq`.)
 - #67251 (Require `allow_internal_unstable` for stable min_const_fn using unsta…)
 - #67269 (parser: recover on `&'lifetime mut? $pat`.)

Failed merges:

r? @ghost
2019-12-13 03:22:20 +00:00
Mazdak Farrokhzad d25197c52d
Rollup merge of #67269 - Centril:recover-lt-deref-pat, r=estebank
parser: recover on `&'lifetime mut? $pat`.

r? @estebank
2019-12-13 04:21:34 +01:00
Mazdak Farrokhzad d2d5b83f6b
Rollup merge of #67251 - oli-obk:stability_sieve, r=Centril
Require `allow_internal_unstable` for stable min_const_fn using unsta…

…ble features

r? @Centril

cc @ecstatic-morse @RalfJung
2019-12-13 04:21:33 +01:00
Mazdak Farrokhzad ac0bd42a4a
Rollup merge of #67250 - nnethercote:rm-DelimSpan-from-NamedMatch-MatchedSeq, r=Centril
Remove the `DelimSpan` from `NamedMatch::MatchedSeq`.

Because it's unused. This then allows the removal of
`MatcherPos::sp_open`. It's a tiny perf win, reducing instruction counts
by 0.1% - 0.2% on a few benchmarks.

r? @Centril
2019-12-13 04:21:31 +01:00
Mazdak Farrokhzad 98df677c3f
Rollup merge of #67247 - JohnTitor:fix-sugg, r=estebank
Don't suggest wrong snippet in closure

Fixes #67190

r? @estebank
2019-12-13 04:21:30 +01:00
Mazdak Farrokhzad 87f3b16e0b
Rollup merge of #67243 - jonas-schievink:linkedlist-drop, r=KodrAus
LinkedList: drop remaining items when drop panics

https://github.com/rust-lang/rust/pull/67235, but for `LinkedList`, which has the same issue.

I've also copied over the other drop-related tests from `VecDeque` since AFAICT `LinkedList` didn't have any.
2019-12-13 04:21:27 +01:00
Mazdak Farrokhzad 2ca7b7e539
Rollup merge of #66341 - crgl:vec-deque-extend, r=Amanieu
Match `VecDeque::extend` to `Vec::extend_desugared`

Currently, `VecDeque::extend` [does not reserve at all](https://github.com/rust-lang/rust/pull/65069#discussion_r333166522). This implementation still runs a check every iteration of the loop, but should reallocate at most once for the common cases where the `size_hint` lower bound is exact. Further optimizations in the future could improve this for some common cases, but given the complexity of the `Vec::extend` implementation it's not immediately clear that this would be worthwhile.
2019-12-13 04:21:22 +01:00
Mazdak Farrokhzad 45c1e38147 parser: recover on `&'lifetime mut $pat`. 2019-12-13 02:36:25 +01:00
Alex Crichton 2fee28e713 std: Implement `LineWriter::write_vectored`
This commit implements the `write_vectored` method of the `LineWriter`
type. First discovered in bytecodealliance/wasmtime#629 the
`write_vectored` method of `Stdout` bottoms out here but only ends up
writing the first buffer due to the default implementation of
`write_vectored`.

Like `BufWriter`, however, `LineWriter` can have a non-default
implementation of `write_vectored` which tries to preserve the
vectored-ness as much as possible. Namely we can have a vectored write
for everything before the newline and everything after the newline if
all the stars align well.

Also like `BufWriter`, though, special care is taken to ensure that
whenever bytes are written we're sure to signal success since that
represents a "commit" of writing bytes.
2019-12-12 16:51:25 -08:00
Alex Crichton 641ccd58c1 Fix signature of `__wasilibc_find_relpath`
Looks like this function changed upstream, so it needs to be adjusted
for when used by libstd.
2019-12-12 14:48:47 -08:00
Nicholas Nethercote cb212938d4 Avoid re-processing nodes in `find_cycles_from_node`. 2019-12-13 08:36:25 +11:00
Nicholas Nethercote 76916d7a4b Remove an unnecessary local variable. 2019-12-13 08:36:25 +11:00
Nicholas Nethercote 4ec87d5cd2 Remove some `debug!` statements.
Because I am tired of looking at them.
2019-12-13 08:36:25 +11:00
Nicholas Nethercote 7d550445e2 Move functions around.
In particular, it has bugged me for some time that `process_cycles` is
currently located before `mark_still_waiting_nodes` despite being called
afterwards.
2019-12-13 08:36:25 +11:00
Nicholas Nethercote a8207b1958 Remove `NodeState::{Waiting,Done}`.
`NodeState` has two states, `Success` and `Done`, that are only used
within `ObligationForest` methods. This commit removes them, and renames
the existing `Waiting` state as `Success`.

We are left with three states: `Pending`, `Success`, and `Error`.
`Success` is augmented with a new `WaitingState`, which indicates when
(if ever) it was last waiting on one or more `Pending` nodes. This
notion of "when" requires adding a "process generation" to
`ObligationForest`; it is incremented on each call to
`process_obligtions`.

This commit is a performance win.

- Most of the benefit comes from `mark_as_waiting` (which the commit
  renames as `mark_still_waiting_nodes`). This function used to do two
  things: (a) change all `Waiting` nodes to `Success`, and (b) mark all
  nodes that depend on a pending node as `Waiting`. In practice, many
  nodes went from `Waiting` to `Success` and then immediately back to
  `Waiting`. The use of generations lets us skip step (a).

- A smaller benefit comes from not having to change nodes to the `Done`
  state in `process_cycles`.
2019-12-13 08:36:25 +11:00
Andy Russell 94630d4c8b
replace serialize with serde in rustdoc 2019-12-12 16:33:25 -05:00
Andrea Canciani de7fefa04c Minor cleanup in `Pattern::{is_prefix_of,is_suffix_of}` for `char` 2019-12-12 21:09:17 +01:00
LeSeulArtichaut e4abcfbd34 Added missing backticks 2019-12-12 20:56:14 +01:00
LeSeulArtichaut eac6fac10b Update tests 2019-12-12 20:56:14 +01:00
LeSeulArtichaut 27810e246c Restore note for PartialOrd and PartialEq 2019-12-12 20:56:14 +01:00
LeSeulArtichaut 3bd46f1aec Update UI test expectations 2019-12-12 20:56:14 +01:00
LeSeulArtichaut cf8c0d7a04 I have to revise left and right 2019-12-12 20:56:14 +01:00
LeSeulArtichaut 8fb729ccda Comply to tidy checks 2019-12-12 20:56:14 +01:00