Commit Graph

100514 Commits

Author SHA1 Message Date
Alex Crichton
8d9abcd870 Update rls submodule 2019-10-01 15:03:25 -07:00
Alex Crichton
4447388f17 Update Cargo.lock for cargo update 2019-10-01 15:02:45 -07:00
Dylan MacKenzie
4eeedd0953 Add test cases for #64945
This also tests that `&&[]` no longer causes an ICE in this PR (although
the test fails the borrow checker). This could be more complete.
2019-10-01 14:59:16 -07:00
Mazdak Farrokhzad
adc0dc5871
Rollup merge of #64950 - nnethercote:simplify-interners, r=varkor,spastorino
Simplify interners

Some code readability improvements.
2019-10-01 23:56:27 +02:00
Mazdak Farrokhzad
66148f6393
Rollup merge of #64943 - lzutao:doc-saturating, r=shepmaster
Add lower bound doctests for `saturating_{add,sub}` signed ints

Closes #64940
2019-10-01 23:56:26 +02:00
Mazdak Farrokhzad
67cbeee9ee
Rollup merge of #64933 - sam09:master, r=estebank
Fixes #64919. Suggest fix based on operator precendence.

Fixes https://github.com/rust-lang/rust/issues/64919
2019-10-01 23:56:24 +02:00
Mazdak Farrokhzad
7628cada4f
Rollup merge of #64912 - lzutao:unneeded-main-doc, r=jonas-schievink
Remove unneeded `fn main` blocks from docs

## [No whitespace diff](https://github.com/rust-lang/rust/pull/64912/files?w=1)
2019-10-01 23:56:23 +02:00
Mazdak Farrokhzad
db9689333a
Rollup merge of #64910 - Centril:params-cleanup, r=petrochenkov
syntax: cleanup param, method, and misc parsing

Do some misc cleanup of the parser:
- Method and parameter parsing is refactored.
- A parser for `const | mut` is introduced that https://github.com/rust-lang/rust/pull/64588 can reuse.
- Some other misc parsing.

Next up in a different PR:
- ~Implementing https://github.com/rust-lang/rust/issues/64252.~ -- maybe some other time...
- Heavily restructuring up `item.rs` which is a mess (hopefully, no promises ^^).

r? @petrochenkov
2019-10-01 23:56:21 +02:00
Mazdak Farrokhzad
69028ae85b
Rollup merge of #64820 - ssomers:master, r=bluss
BTreeSet intersection, is_subset & difference optimizations

...based on the range of values contained; in particular, a massive improvement when these ranges are disjoint (or merely touching), like in the neg-vs-pos benchmarks already in liballoc. Inspired by #64383 but none of the ideas there worked out.

I introduced another variant in IntersectionInner and in DifferenceInner, because I couldn't find a way to initialize these iterators as empty if there's no empty set around.

Also, reduced the size of "large" sets in test cases - if Miri can't handle it, it was needlessly slowing down everyone.
2019-10-01 23:56:20 +02:00
Mazdak Farrokhzad
baba6284bf
Rollup merge of #63416 - RalfJung:apfloat, r=eddyb
apfloat: improve doc comments

r? @eddyb @nagisa
2019-10-01 23:56:16 +02:00
Dylan MacKenzie
8d84646c7b Don't mark zero-sized arrays as indirectly mutable when borrowed 2019-10-01 12:05:14 -07:00
Dylan MacKenzie
a1ad38f99c Pass attrs to do_dataflow in new const checker
This is needed to dump graphviz results for the `IndirectlyMutableLocals` analysis.
2019-10-01 11:35:50 -07:00
Alex Zatelepin
75fdb95932 change .node -> .kind after rebase 2019-10-01 20:04:41 +03:00
Santiago Pastorino
738baa734b
Update src/librustc/ty/mod.rs
Co-Authored-By: Oliver Scherer <github35764891676564198441@oli-obk.de>
2019-10-01 13:03:33 -03:00
Santiago Pastorino
6acdea4336
Make comment about dummy type a bit more clear 2019-10-01 12:51:15 -03:00
Alex Zatelepin
cb4ed52fd0 fix test after rebase 2019-10-01 17:49:19 +03:00
Alex Zatelepin
ffa526937e address review comments 2019-10-01 17:49:19 +03:00
Alex Zatelepin
c474c6e825 add tests 2019-10-01 17:48:37 +03:00
Alex Zatelepin
057569e2c2 fix spurious unreachable_code lints for try{} block ok-wrapping 2019-10-01 17:48:37 +03:00
Alex Zatelepin
48081065f4 fix typo 2019-10-01 17:44:24 +03:00
Yuki Okushi
f10d2e2d23 Fix clippy warnings 2019-10-01 23:15:47 +09:00
Felix S. Klock II
9fe138aa43 regression test for 64453 borrow check error. 2019-10-01 15:57:27 +02:00
Stein Somers
d132a70bf4 BTreeSet intersection, difference & is_subnet optimizations 2019-10-01 15:50:11 +02:00
Guillaume Gomez
62f1fb33ec Update ui tests 2019-10-01 15:22:37 +02:00
Guillaume Gomez
e541b2ece9 Add E0551 long error explanation 2019-10-01 14:54:32 +02:00
Guillaume Gomez
366fdebff8 Add new rustdoc-ui test to ensuire that rustdoc feature isn't passed down to doctests 2019-10-01 14:38:36 +02:00
Guillaume Gomez
445e7350f2 Prevent rustdoc feature to be passed down to doctests 2019-10-01 14:38:36 +02:00
Lzu Tao
6c1b447f2e Remove unneeded fn main blocks from docs 2019-10-01 11:55:46 +00:00
Michael Woerister
e1d9f82605 Update cargo. 2019-10-01 13:53:17 +02:00
Sam Radhakrishnan
9e4eb46790 Change to use exprPrecedence instead of exprKind. 2019-10-01 05:00:22 -04:00
Guillaume Gomez
4aa526f809 Improve sidebar styling to make its integration easier 2019-10-01 10:32:45 +02:00
bors
702b45e409 Auto merge of #64946 - Centril:rollup-66mj5o0, r=Centril
Rollup of 10 pull requests

Successful merges:

 - #63674 (syntax: Support modern attribute syntax in the `meta` matcher)
 - #63931 (Stabilize macros in some more positions)
 - #64887 (syntax: recover trailing `|` in or-patterns)
 - #64895 (async/await: improve not-send errors)
 - #64896 (Remove legacy grammar)
 - #64907 (A small amount of tidying-up factored out from PR #64648)
 - #64928 (Add tests for some issues)
 - #64930 (Silence unreachable code lint from await desugaring)
 - #64935 (Improve code clarity)
 - #64937 (Deduplicate closure type errors)

Failed merges:

r? @ghost
2019-10-01 07:56:52 +00:00
Mazdak Farrokhzad
46bf6ad416
Rollup merge of #64937 - estebank:dedup-closure-err, r=Centril
Deduplicate closure type errors

Closure typing obligations flow in both direcitons to properly infer
types. Because of this, we will get 2 type errors whenever there's
an unfulfilled obligation. To avoid this, we deduplicate them in the
`InferCtxt`.
2019-10-01 09:55:39 +02:00
Mazdak Farrokhzad
5c6a8ee9dd
Rollup merge of #64935 - AnthonyMikh:librustc_errors/emmiter__code-clarity, r=estebank
Improve code clarity

No commit except 55b54285c8 address performance, just making the existing code more clear.

r? @estebank
2019-10-01 09:55:38 +02:00
Mazdak Farrokhzad
f4aa29fb1e
Rollup merge of #64930 - davidtwco:issue-61798-diverging-await, r=petrochenkov
Silence unreachable code lint from await desugaring

Fixes #61798.

This PR silences the unreachable code lint when it originates from within an await desugaring.
2019-10-01 09:55:37 +02:00
Mazdak Farrokhzad
dc1c1fe456
Rollup merge of #64928 - JohnTitor:add-some-tests, r=Centril
Add tests for some issues

Closes #50571
Closes #58022
Closes #58344
2019-10-01 09:55:35 +02:00
Mazdak Farrokhzad
24a84fae34
Rollup merge of #64907 - alexreg:tidy-up, r=Mark-Simulacrum
A small amount of tidying-up factored out from PR #64648

As requested by @Mark-Simulacrum, I put this in a separate commit to make it easier to review. (As far as I can tell, no violations of the policy here, and they are simply in a separate PR because they're not directly related to the import of that PR.)

r? @Mark-Simulacrum
2019-10-01 09:55:34 +02:00
Mazdak Farrokhzad
b8c5d3a427
Rollup merge of #64896 - XAMPPRocky:remove-grammar, r=Centril
Remove legacy grammar

Revival of #50835 & #55545

On the #wg-grammar discord there was agreement that enough progress has been made to be able to remove the legacy grammar.

r? @Centril @qmx

cc @rust-lang/wg-grammar
2019-10-01 09:55:33 +02:00
Mazdak Farrokhzad
25f774a4cf
Rollup merge of #64895 - davidtwco:issue-64130-async-error-definition, r=nikomatsakis
async/await: improve not-send errors

cc #64130.

```
note: future does not implement `std::marker::Send` because this value is used across an await
  --> $DIR/issue-64130-non-send-future-diags.rs:15:5
   |
LL |     let g = x.lock().unwrap();
   |         - has type `std::sync::MutexGuard<'_, u32>`
LL |     baz().await;
   |     ^^^^^^^^^^^ await occurs here, with `g` maybe used later
LL | }
   | - `g` is later dropped here
```

r? @nikomatsakis
2019-10-01 09:55:31 +02:00
Mazdak Farrokhzad
f45de9a690
Rollup merge of #64887 - Centril:recover-trailing-vert, r=estebank
syntax: recover trailing `|` in or-patterns

Fixes https://github.com/rust-lang/rust/issues/64879.

For example (this also shows that we are sensitive to the typo `||`):

```
error: a trailing `|` is not allowed in an or-pattern
  --> $DIR/remove-leading-vert.rs:33:11
   |
LL |         A || => {}
   |         - ^^ help: remove the `||`
   |         |
   |         while parsing this or-pattern starting here
   |
   = note: alternatives in or-patterns are separated with `|`, not `||`
```

r? @estebank
2019-10-01 09:55:29 +02:00
Mazdak Farrokhzad
3bd34e04e3
Rollup merge of #63931 - petrochenkov:stabmac, r=Centril
Stabilize macros in some more positions

- Fn-like macros and attribute macros in `extern` blocks
- Fn-like procedural macros in type positions
- ~Attribute macros on inline modules~ (moved to https://github.com/rust-lang/rust/pull/64273)

Stabilization report: https://github.com/rust-lang/rust/pull/63931#issuecomment-526362396.

Closes https://github.com/rust-lang/rust/issues/49476
cc https://github.com/rust-lang/rust/issues/54727
2019-10-01 09:55:28 +02:00
Mazdak Farrokhzad
64130fd2c4
Rollup merge of #63674 - petrochenkov:meta2, r=Centril
syntax: Support modern attribute syntax in the `meta` matcher

Where "modern" means https://github.com/rust-lang/rust/pull/57367:
```
PATH
PATH `(` TOKEN_STREAM `)`
PATH `[` TOKEN_STREAM `]`
PATH `{` TOKEN_STREAM `}`
```

Unfortunately, `meta` wasn't future-proofed using the `FOLLOW` token set like other matchers (https://github.com/rust-lang/rust/issues/34011), so code like `$meta:meta {` or `$meta:meta [` may break, and we need a crater run to find out how often this happens in practice.

Closes https://github.com/rust-lang/rust/issues/49629 (by fully supporting `meta` rather than removing it.)
2019-10-01 09:55:26 +02:00
Nicholas Nethercote
b2ae3f2a6b Remove the $lt_tcx parameter from direct_interners!.
It's not necessary.
2019-10-01 16:07:57 +10:00
Nicholas Nethercote
475e131b3e Inline and remove intern_method!.
It's only used in two places, and the code is shorter and more readable
with it gone.
2019-10-01 16:06:38 +10:00
Andreas Jonson
8737061cb5 replace try_for_each with try_fold to generate less code
removes two functions to inline by combining the check functions and extra call to try_for_each
2019-10-01 07:56:18 +02:00
Nicholas Nethercote
3724e37b5a Remove special treatment for _intern_canonical_var_infos.
This is a leftover from when there were global and thread-local arenas.
2019-10-01 15:50:51 +10:00
Nicholas Nethercote
e9d54e1860 Reorder the slice interners.
So the order matches the order in `CtxtInterners`.
2019-10-01 15:48:25 +10:00
Lzu Tao
eb4ca2120e Add lower bound doctests for saturating_{add,sub} signed ints 2019-10-01 05:46:50 +00:00
Nicholas Nethercote
d1a7bb36ad Avoid SmallVec::collect() in List<Predicate>::super_fold_with().
Also avoid interning when it's not necessary.

This commit reduces instruction counts for a couple of benchmarks by up to 1%.
2019-10-01 14:39:24 +10:00
Lzu Tao
3b49ab6e48 Inline {min,max}_value even in debug builds 2019-10-01 04:10:51 +00:00