Commit Graph

95168 Commits

Author SHA1 Message Date
Mazdak Farrokhzad 61fc727fe0 let_chains: Fuse PatternSource::Let & ::LetExpr. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad a505d9d20a let_chains: scrutinee -> condition 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 07f37c88fb let_chains: Account for const generics in validation tests. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad a80aa34951 let_chains: Change AST validation strategy slightly. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 1ff947f596 let_chains: scrutinee -> head expression. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 3b7f0cb7e0 let_chains: Fix outdated doc-comment re. 'parse_if_expr'. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 8b72e4c815 let_chains: Improve documentation for ast::ExprKind::Let(..). 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 86250a666e let_chains: Comment out Let in ident_can_begin_expr. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 530f954e92 let_chains: Test pretty output for simple stable if-let. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad b425df0be1 let_chains: Remove redundant tests in syntax-ambiguity-*.rs. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad d45dadd951 let_chains: Add test protecting the precedence of && in relation to other things. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 6a6b07906f let_chains: Adjust unnecessary parens tests. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad c0c5791049 let_chains: Add feature gate tests. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 357b49992c let_chains: Add tests for places where let expressions aren't allowed. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad ebea1c2cc0 let_chains: Add feature gate. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad c9fb639085 let_chains: Adjust lowering logic in lieu of ::Let. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad a7b00f5807 let_chains: Handle disallowing of let chains in places lowering won't support. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad fcffac5eea let_chains: Handle in unused parenthesis lint. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 70a65e9d1f let_chains: Handle in resolve. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad dff1e379fc let_chains: Add support for parsing let expressions. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 3fc9642014 let_chains: Handle it in AST pretty printing. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad f0ab633e4d let_chains: Remove ast::ExprKind::{IfLet, WhileLet} from visitors and introduce ::Let. 2019-06-23 01:29:29 +02:00
Mazdak Farrokhzad 42accc99e6 let_chains: Remove ast::ExprKind::{IfLet, WhileLet} and introduce ::Let. 2019-06-23 01:29:29 +02:00
bors d6884aedd5 Auto merge of #61874 - jonas-schievink:remove-rem-output-default, r=Centril
Remove the default type of `Rem::Output`

Associated type defaults are not yet stable, and `Rem` is the only trait that specifies a default. Let's see what breaks when it's removed.

cc https://github.com/rust-lang/rust/pull/61812#issuecomment-502394566
cc @Centril

@bors try
2019-06-22 17:59:05 +00:00
bors 4a365a29d6 Auto merge of #61020 - HeroicKatora:master, r=matthewjasper
librustc_data_structures: Speedup union of sparse and dense hybrid set

This optimization speeds up the union of a hybrid bitset when that
switches it from a sparse representation to a dense bitset. It now
clones the dense bitset and integrate only the spare elements instead of
densifying the sparse bitset, initializing all elements, and then a
union on two dense bitset, touching all words a second time.

It's not completely certain if the added complexity is worth it but I would
like to hear some feedback in any case. Benchmark results from my machine:

```
Now:  bit_set::union_hybrid_sparse_to_dense ... bench:          72 ns/iter (+/- 5)
Previous: bit_set::union_hybrid_sparse_to_dense ... bench:          90 ns/iter (+/- 6)
```

This being the second iteration of trying to improve the speed, since I missed the return value in the first, and forgot to run the relevant tests. Oops.
2019-06-22 15:12:15 +00:00
bors d4d5d67c1c Auto merge of #62024 - RalfJung:miri, r=oli-obk
update miri

r? @oli-obk
2019-06-22 10:31:43 +00:00
Ralf Jung a1e954e82d update miri 2019-06-22 12:30:05 +02:00
bors 305930cffe Auto merge of #62010 - ecstatic-morse:kill-borrows-of-proj, r=pnkfelix
Kill conflicting borrows of places with projections.

Resolves #62007.

Due to a bug, the previous version of this check did not actually kill all conflicting borrows unless the borrowed place had no projections. Specifically, `sets.on_entry` will always be empty when `statement_effect` is called. It does not contain the set of borrows which are live at this point in the program.

@pnkfelix describes why this was not caught before in #62007, and created an example where the current borrow checker failed unnecessarily. This PR adds their example as a test, but they will likely want to add some additional ones.

r? @pnkfelix
2019-06-22 05:12:11 +00:00
bors e562b24ae3 Auto merge of #62041 - Centril:rollup-95eeyx7, r=Centril
Rollup of 9 pull requests

Successful merges:

 - #60971 (Add DocFS layer to rustdoc)
 - #61146 (SliceConcatExt::connect defaults to calling join)
 - #61181 (Fix theme-checker failure)
 - #61267 (rustc-book: Update the rustc/clang compatibility table for xLTO.)
 - #61270 (Remove warnings about incr. comp. generating less debugging output.)
 - #61681 (Changed the error message to more clearly explain what is allowed)
 - #61984 (More NodeId pruning)
 - #62016 (Add test for issue-27697)
 - #62019 (Remove needless lifetimes)

Failed merges:

r? @ghost
2019-06-22 02:16:53 +00:00
Mazdak Farrokhzad 64e5818307 Rollup merge of #62019 - jeremystucki:refactoring, r=estebank
Remove needless lifetimes
2019-06-22 01:42:41 +02:00
Mazdak Farrokhzad 595f55cb8b Rollup merge of #62016 - JohnTitor:add-test-for-issue-27697, r=alexcrichton
Add test for issue-27697

Closes #27697
2019-06-22 01:42:40 +02:00
Mazdak Farrokhzad dc0ef823be Rollup merge of #61984 - ljedrz:more_node_id_pruning, r=Zoxc
More NodeId pruning

Just another round of the `HirId`ification initiative.

r? @Zoxc
2019-06-22 01:42:38 +02:00
Mazdak Farrokhzad 9eb88f3b82 Rollup merge of #61681 - asfreitas:addSendTrait, r=estebank
Changed the error message to more clearly explain what is allowed

This is in regard to #61634. I changed the language to make it more clear what is allowed.
2019-06-22 01:42:37 +02:00
Mazdak Farrokhzad c3c3a5e7e7 Rollup merge of #61270 - michaelwoerister:remove-incr-comp-warning, r=oli-obk
Remove warnings about incr. comp. generating less debugging output.

This PR removes the

> `-C save-temps` might not produce all requested temporary products when incremental compilation is enabled.`

warning and others similar to it.

I think these warnings have annoyed lots of people over the past ~3 years; while not helping a single one of them `:P`

r? @oli-obk
2019-06-22 01:42:35 +02:00
Mazdak Farrokhzad 653b44dbf7 Rollup merge of #61267 - michaelwoerister:update-xlto-table, r=alexcrichton
rustc-book: Update the rustc/clang compatibility table for xLTO.

Firefox is using these combinations successfully.
2019-06-22 01:42:33 +02:00
Mazdak Farrokhzad 18bb75477a Rollup merge of #61181 - GuillaumeGomez:fix-theme-checker, r=kinnison
Fix theme-checker failure

Fixes #61145.

I didn't find a way to check it without strongly depending on the output... Is there a way to check if a program fails without checking its output?

r? @QuietMisdreavus
2019-06-22 01:42:31 +02:00
Mazdak Farrokhzad 3a8536edef Rollup merge of #61146 - czipperz:SliceConcatExt-connect-default-to-join, r=sfackler
SliceConcatExt::connect defaults to calling join

It makes sense to default a deprecated method to the new one.  Precedence example is `Error::cause` defaults to calling `Error::source`.
2019-06-22 01:42:30 +02:00
Mazdak Farrokhzad f2a0ce9c37 Rollup merge of #60971 - rbtcollins:docs-perf, r=rbtcollins,GuillaumeGomez
Add DocFS layer to rustdoc

* Move fs::create_dir_all calls into DocFS to provide a clean
  extension point if async extension there is needed.
* Convert callsites of create_dir_all to ensure_dir to reduce syscalls.
* Convert fs::write usage to DocFS.write
  (which also removes a lot of try_err! usage for easier reading)
* Convert File::create calls to use Vec buffers and then DocFS.write
  in order to both consistently reduce syscalls as well as make
  deferring to threads cleaner.
* Convert OpenOptions usage similarly - I could find no discussion on
  the use of create_new for that one output file vs all the other
  files render creates, if link redirection attacks are a concern
  DocFS will provide a good central point to introduce systematic
  create_new usage.
* DocFS::write defers to rayon for IO on Windows producing a modest
  speedup: before this patch on my development workstation:

$ time cargo +mystg1 doc -p winapi:0.3.7
 Documenting winapi v0.3.7
    Finished dev [unoptimized + debuginfo] target(s) in 6m 11s

real    6m11.734s
user    0m0.015s
sys     0m0.000s

Afterwards:
$ time cargo +mystg1 doc -p winapi:0.3.7
   Compiling winapi v0.3.7
 Documenting winapi v0.3.7
    Finished dev [unoptimized + debuginfo] target(s) in 49.53s

real    0m49.643s
user    0m0.000s
sys     0m0.015s

I haven't measured how much time is in the compilation logic vs in the
IO and outputting etc, but this takes it from frustating to tolerable
for me, at least for now.
2019-06-22 01:42:28 +02:00
bors 8d6f4b96df Auto merge of #62018 - Zoxc:vs2019, r=alexcrichton
Update LLVM to fix VS 2019 compilation

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

r? @alexcrichton
2019-06-21 23:28:13 +00:00
bors 929b48ec98 Auto merge of #62027 - lzutao:clippy-update, r=oli-obk
submodules: Update clippy from 149a988 to 5a11ed7b

r? @oli-obk
2019-06-21 16:26:14 +00:00
Andrew f4cd3c2054 adding in these files that didn't get added in previous commit 2019-06-22 00:18:15 +08:00
Andrew 54acbd96f9 changed expected output in tests so it now passes with changed output 2019-06-21 22:12:07 +08:00
Lzu Tao dfd430e0a5 submodules: Update clippy from 149a988 to 5a11ed7b 2019-06-21 11:54:50 +00:00
Felix S. Klock II f483269625 Add test checking our behavior for assigning over a ConstIndex projection. 2019-06-21 13:08:15 +02:00
Felix S. Klock II 3b8ef01030 Add test that our handling of projections hasn't gone too far:
overwriting one field should not allow reborrow of an unrelated field.
2019-06-21 12:52:54 +02:00
Felix S. Klock II 241ceeda04 Added test for deref projection. 2019-06-21 12:43:55 +02:00
Felix S. Klock II 681af62ba4 add comment outlining test. 2019-06-21 12:43:51 +02:00
Felix S. Klock II e78361a16c rename file because I found the old filename too long and unwieldy. 2019-06-21 12:43:46 +02:00
bors 38cd9489f7 Auto merge of #61959 - oli-obk:const_field_ice, r=eddyb
Fix a hash collision issue on the `const_field` query

fixes #61530
2019-06-21 10:16:14 +00:00
Guillaume Gomez 65f12950b6 Better handling of the sender channel part in rustdoc file writing 2019-06-21 12:00:49 +02:00