Commit graph

92669 commits

Author SHA1 Message Date
Mazdak Farrokhzad
62d1574876
Rollup merge of #59823 - davidtwco:issue-54716, r=cramertj
[wg-async-await] Drop `async fn` arguments in async block

Fixes #54716.

This PR modifies the HIR lowering (and some other places to make this work) so that unused arguments to a async function are always dropped inside the async move block and not at the end of the function body.

```
async fn foo(<pattern>: <type>) {
  async move {
  }
} // <-- dropped as you "exit" the fn

// ...becomes...
fn foo(__arg0: <ty>) {
  async move {
    let <pattern>: <ty> = __arg0;
  } // <-- dropped as you "exit" the async block
}
```

However, the exact ordering of drops is not the same as a regular function, [as visible in this playground example](https://play.rust-lang.org/?version=stable&mode=debug&edition=2015&gist=be39af1a58e5d430be1eb3c722cb1ec3) - I believe this to be an unrelated issue. There is a [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/187312-t-compiler.2Fwg-async-await/topic/.2354716.20drop.20order) for this.

r? @cramertj
cc @nikomatsakis
2019-04-23 21:50:52 +02:00
David Wood
119e67ac6b
Reduce noise and document test case.
This commit introduces a `assert_drop_order_after_poll` helper function
to the test case for this case to reduce repetitive noise and documents
what each function aims to test.
2019-04-23 18:44:41 +01:00
bors
4eff8526a7 Auto merge of #60155 - davidtwco:issue-59819, r=oli-obk
Suggest dereferencing when `Deref` is implemented.

Fixes #59819.

r? @oli-obk
cc @estebank
2019-04-23 15:54:23 +00:00
Eduard-Mihai Burtescu
61fcbfcd59 rustc_mir: don't rely on mir::UpvarDecl in the MIR borrowck. 2019-04-23 17:27:54 +03:00
bors
fe0a415b4b Auto merge of #60152 - stepnivlk:visit_subpats-removal, r=varkor
Remove `visit_subpats` parameter from `check_pat`

The core idea is to keep track of current ID directly in `EllipsisInclusiveRangePatterns` struct and early return in `check_pat` based on it.

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

r? @varkor
2019-04-23 12:27:38 +00:00
varkor
5ab5806c87 Fix regression in line ending test 2019-04-23 11:44:27 +01:00
varkor
5392f44a92 Remove unnecessary tidy ignore directives 2019-04-23 11:42:15 +01:00
varkor
7f7d15dcc9 Check for other unused tidy check directives 2019-04-23 11:42:15 +01:00
varkor
497dcfa221 Update ui tests 2019-04-23 11:42:14 +01:00
varkor
62838975d0 Remove unnecessary ignore-tidy-linelength 2019-04-23 11:42:14 +01:00
varkor
51b2ecf78a Tidy warn on ignored line length when lines are not too long 2019-04-23 11:42:14 +01:00
varkor
33f0a3765d Look specifically for comments containing tidy ignore directives 2019-04-23 11:42:14 +01:00
bors
31f5d69ba4 Auto merge of #60125 - estebank:continue-evaluating, r=oli-obk
Don't stop evaluating due to errors before borrow checking

r? @oli-obk

Fix #60005. Follow up to #59903. Blocked on #53708, fixing the ICE in `src/test/ui/consts/match_ice.rs`.
2019-04-23 09:38:34 +00:00
gnzlbg
2d401fb4dc Add f16c target_feature 2019-04-23 08:43:13 +02:00
bors
0f11354a9c Auto merge of #60172 - varkor:tidy-double-trailing-newline, r=kennytm
Disallow double trailing newlines in tidy

This wasn't done previously in https://github.com/rust-lang/rust/pull/47064#issuecomment-354533010 as it affected too many files, but I think it's best to fix it now so that the number of files with double trailing newlines doesn't keep increasing.

r? kennytm
2019-04-23 06:40:12 +00:00
bors
3bee49f42b Auto merge of #60121 - davazp:fix-sync-all-macos, r=KodrAus
Fix sync_all on macos/ios

`sync_all` should flush all metadata in macos/ios, so it should call `fcntl` with the `F_FULLFSYNC` flag as `sync_data` does.

Note that without this `sync_data` performs more flushes than `sync_all` on macos/ios.
2019-04-23 03:34:21 +00:00
bors
0550766699 Auto merge of #60140 - euclio:pulldown-cmark, r=GuillaumeGomez
upgrade rustdoc's pulldown-cmark to 0.4.1

Fixes #59194.
2019-04-23 00:44:58 +00:00
Xavier Denis
4a073dda93 Fix #58270, fix off-by-one error in error diagnostics. 2019-04-22 18:14:45 -05:00
Esteban Küber
e3fb331695 Temporarily accept [i|u][32|size] suffixes on a tuple index and warn 2019-04-22 16:02:53 -07:00
Jakub Kądziołka
7af0fccc88
Reexport IntErrorKind in std 2019-04-23 00:15:43 +02:00
Tyler Mandry
b2c0fd0876 Remove redundant code in copy_clone_conditions
This was left over from when closure copy and clone were gated behind
feature flags.
2019-04-22 14:52:38 -07:00
Aleksey Kladov
b83ea7f917 reduce visibility 2019-04-23 00:51:38 +03:00
bors
004c549a73 Auto merge of #60126 - estebank:continue-eval, r=oli-obk
Continue evaluating after item-type checking

Fix #30999.

r? @oli-obk
2019-04-22 21:46:07 +00:00
Tomas Koutsky
1dc13b5904 Remove visit_subpats from check_pat in favor of state in EllipsisInclusiveRangePatterns 2019-04-23 00:17:19 +03:00
Aleksey Kladov
28ce23fe8b simplify and avoid allocation 2019-04-23 00:05:06 +03:00
Aleksey Kladov
c29a98e40d remove obsolete and incorrect comment 2019-04-23 00:03:57 +03:00
Esteban Küber
87ef96d394 review comment: add HACK comment 2019-04-22 13:14:43 -07:00
Esteban Küber
56b1ec06ee Fix ICE related to #53708 2019-04-22 13:11:53 -07:00
Esteban Küber
6e723c24a8 Never stop due to errors before borrow checking 2019-04-22 13:11:53 -07:00
Esteban Küber
2dc5d52a04 Remove needless error in test 2019-04-22 12:19:07 -07:00
Esteban Küber
3a19df20da review comments: deduplicate tests 2019-04-22 12:11:46 -07:00
varkor
f571b9548d Update ui tests 2019-04-22 19:50:11 +01:00
Alexey Shmalko
517fb1b06f
Promote rust comments to rustdoc 2019-04-22 21:38:28 +03:00
Esteban Küber
45bbd14db4 Continue evaluating after item-type checking 2019-04-22 11:31:35 -07:00
David Wood
7ab1bfd692
Only make suggestion when type is Copy.
This commit makes the suggestion to dereference when a type implements
`Deref` only apply if the dereference would succeed (ie. the type is
`Copy`, otherwise a borrow check error would occur).
2019-04-22 19:26:24 +01:00
bors
6d599337fa Auto merge of #60168 - varkor:tidy-leading-newline, r=alexcrichton
Add a tidy check for leading newlines

This is fairly uncommon, but it can slip through when refactoring (as evidenced by the files with leading newlines here).
2019-04-22 16:30:42 +00:00
varkor
096495531c Update ui tests 2019-04-22 17:30:54 +01:00
varkor
9736d32f84 Remove leading newlines 2019-04-22 17:01:33 +01:00
varkor
8423e00714 Add a tidy check for leading trailing newlines 2019-04-22 17:01:33 +01:00
varkor
a43ccb0b9b Disallow double trailing newlines in tidy 2019-04-22 16:57:01 +01:00
varkor
7f0f0e31ec Remove double trailing newlines 2019-04-22 16:57:01 +01:00
Andy Russell
303016485b
upgrade rustdoc's pulldown-cmark to 0.4.1 2019-04-22 09:11:26 -04:00
bors
c21fbfe7e3 Auto merge of #59114 - matthewjasper:enable-migate-2015, r=pnkfelix
Enable NLL migrate mode on the 2015 edition

## What is in this PR?

* Remove the `-Zborrowck=ast` flag option from rustc.
* The default in the 2015 edition is now `-Zborrowck=migrate`.
* The 2018 edition default is unchanged: it's still `-Zborrowck=migrate`.
* Enable two-phase borrows (currently toggled via the `-Ztwo-phase-borrows` flag) on all editions.
* Remove most dead code that handled these options.
* Update tests for the above changes.

## What is *not* in this PR?

These are left for future PRs

* Use `-Zborrowck=mir` in NLL compare mode tests (#56993)
* Remove the `-Zborrowck=compare` option (#59193)
* Remove the `-Ztwo-phase-borrows` flag. It's kept, as a flag that does nothing so that perf.rlo has time to stop using it (cc @Mark-Simulacrum)
* Remove MIR typeck as its own MIR pass - it's now run by NLL.
* Enabling `-Zborrowck=mir` by default (#58781)
* Replace `allow_bind_by_move_patterns_with_guards` and `check_for_mutation_in_guard_via_ast_walk` with just using the feature gate. (#59192)

Soundness issues that are fixed by NLL will stay open until full NLL is emitting hard errors. However, these diagnostics and completeness issues can now be closed:

Closes #18330
Closes #22323
Closes #23591
Closes #26736
Closes #27487
Closes #28092
Closes #28970
Closes #29733
Closes #30104
Closes #38915
Closes #39908
Closes #43407
Closes #47524
Closes #48540
Closes #49073
Closes #52614
Closes #55085
Closes #56093
Closes #56496
Closes #57804

cc #43234

r? @pnkfelix
cc @rust-lang/lang
cc @rust-lang/wg-compiler-nll
2019-04-22 12:09:59 +00:00
Matthew Jasper
8eef102270 update tests for migrate mode by default 2019-04-22 08:40:08 +01:00
bors
a850a42649 Auto merge of #60133 - phansch:deny_rust_2018_idioms, r=Centril
Deny rust_2018_idioms globally

cc https://github.com/rust-lang/rust/issues/58099#issuecomment-484921194
2019-04-22 07:28:20 +00:00
gnzlbg
c9553f7382 Breaking update of stdsimd
This commit updates stdsimd and contains two breaking changes:

* https://github.com/rust-lang-nursery/stdsimd/pull/733
* https://github.com/rust-lang-nursery/stdsimd/pull/586

We already did a crater run of 586 but we should do another one here.
2019-04-22 09:07:25 +02:00
bors
8f06188991 Auto merge of #60053 - Xanewok:serde-save-analysis, r=nrc
save-analysis: Use serde instead of libserialize to dump JSON data

This breaks the save-analysis infrastructure (which also includes `rls-{analysis, data, span}` crates) from depending on rustc_serialize and so we can start moving them to being supported on stable without implementing `Decodable` et al. by hand for data structures defined there.

Notable benefits:
- we drop the awkward raw byte `PathBuf` [serialization](https://gist.github.com/Xanewok/f4fe8564d0dc0c3ab1dbc244279ff895) (until now (de)serialized as `&[u8]`)
- [faster](https://github.com/serde-rs/json-benchmark) (hopefully noticeable for inner crate dependencies for the RLS workloads)
- we can easily explore the binary serialization backend (which we planned to do for save-analysis anyway)

~This should be merged together with an update to RLS (https://github.com/rust-lang/rls/pull/1435), which technically could be included right now because we can use the bundled `rls-analysis` here directly, however I'd prefer to publish this to crates.io first (https://github.com/rust-lang/rls/pull/1434, cc @nrc) and use the published version, instead.~
Includes https://github.com/rust-lang/rls/pull/1436.

@matklad @nikomatsakis This is also important for the potential RLS 1.0 - 2.0 bridge we talked about on Zulip today
2019-04-22 01:46:13 +00:00
bors
247b505099 Auto merge of #60158 - Xanewok:update-clippy, r=matthiaskrgr
Update Clippy

Fixes fallout from https://github.com/rust-lang/rust/pull/60124.
Closes #60154.

r? @oli-obk
cc @matthiaskrgr
2019-04-21 21:46:15 +00:00
Igor Matuszewski
f01015d161 Update Clippy
Fixes fallout from https://github.com/rust-lang/rust/pull/60124.
Closes #60154.
2019-04-21 23:45:05 +02:00
Matthew Jasper
aa6fb6caf9 Enable migrate mode by default on the 2015 edition
This also fully stabilizes two-phase borrows on all editions
2019-04-21 20:50:02 +01:00