Commit Graph

92575 Commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
d20da13018 rustc_mir: don't rely on mir::LocalDecl visibility_scopes in the MIR borrowck. 2019-04-23 23:35:21 +03:00
Eduard-Mihai Burtescu
1525dc2146 rustc: dissuade compiler developers from misusing upvar debuginfo. 2019-04-23 23:35:21 +03:00
Eduard-Mihai Burtescu
e6ec968485 rustc_codegen_ssa: rename debuginfo_upvar_decls_ops_sequence to debuginfo_upvar_ops_sequence. 2019-04-23 23:35:21 +03:00
Eduard-Mihai Burtescu
2384e980ad rustc_mir: don't use upvar_decls in the miri validity checks. 2019-04-23 23:35:21 +03:00
Eduard-Mihai Burtescu
c1ec45fb96 rustc_mir: don't use upvar_decls in the generator state transform. 2019-04-23 23:35:20 +03:00
Eduard-Mihai Burtescu
82bd7196c2 rustc: don't track var_hir_id or mutability in mir::UpvarDecl. 2019-04-23 23:35:15 +03:00
Manish Goregaokar
20ea70d335 Update clippy 2019-04-23 13:05:45 -07:00
bors
e938c2b9aa Auto merge of #60211 - Centril:rollup-akw4r85, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #59823 ([wg-async-await] Drop `async fn` arguments in async block )
 - #59839 (Warn on unused results for operation methods on nums)
 - #60146 (Update fonts used by rustdoc)
 - #60169 (Warn when ignore-tidy-linelength is present, but no lines are too long)
 - #60177 (Promote rust comments to rustdoc)
 - #60191 (Add f16c target_feature)

Failed merges:

r? @ghost
2019-04-23 19:52:05 +00:00
Mazdak Farrokhzad
0353fa5b90
Rollup merge of #60191 - gnzlbg:f16c, r=alexcrichton
Add f16c target_feature

This is requires for Intel 16-bit half-precision float intrinsics: https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=fp16&expand=1769 - see companion stdsimd PR: https://github.com/rust-lang-nursery/stdsimd/pull/737.

LLVM, Wikipedia CPUID page, and the Intel Dev Manual all call this CPUID feature "F16C", but the Intel intrinsics guide calls this "FP16C" - this is probably a bug in the intrinsics guide which we are tracking here: https://github.com/rust-lang-nursery/stdsimd/issues/738

r? @alexcrichton
2019-04-23 21:51:00 +02:00
Mazdak Farrokhzad
b16556efa0
Rollup merge of #60177 - rasendubi:rustdoc-comments, r=varkor
Promote rust comments to rustdoc
2019-04-23 21:50:58 +02:00
Mazdak Farrokhzad
d1b2d6d64d
Rollup merge of #60169 - varkor:tidy-unnecessary-ignore-newline, r=kennytm
Warn when ignore-tidy-linelength is present, but no lines are too long

It's easy for a `// ignore-tidy-linelength` to be added when there is a genuine need to ignore a file's line length, but then after refactoring the need is gone, but the tidy directive is not removed. This means that in the future, further editing may accidentally add unnecessarily long lines. This change forces `// ignore-tidy-linelength` to be used exactly when necessary, to make sure such changes are intentional.
2019-04-23 21:50:57 +02:00
Mazdak Farrokhzad
88a1dee03c
Rollup merge of #60146 - Manishearth:font-update, r=QuietMisdreavus
Update fonts used by rustdoc

Our version of Source Serif Pro is pretty old and is causing issues on Linux, see https://bugzilla.mozilla.org/show_bug.cgi?id=1545317 . I took this opportunity to update all of the fonts we use.

r? @steveklabnik @QuietMisdreavus
2019-04-23 21:50:55 +02:00
Mazdak Farrokhzad
2deae591a0
Rollup merge of #59839 - KodrAus:must-use-num, r=sfackler
Warn on unused results for operation methods on nums

From a suggestion by @llogiq

Adds a `#[must_use]` attribute to operation methods on integers that take self by value as the first operand and another value as the second. It makes it clear that these methods return the result of the operation instead of mutating `self`, which is the source of a rather embarrassing bug I had in a codebase of mine recently...

As an example:

```rust
struct Int {
   value: i64,
}

impl Int {
    fn add(&mut self, other: i64) {
        self.value.wrapping_add(other);
    }
}
```

Will produce a warning like:

```
warning: unused return value of `core::num::<impl i64>::wrapping_add` that must be used
 --> src/main.rs:7:7
  |
7 |       self.value.wrapping_add(other);
  |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: #[warn(unused_must_use)] on by default
  = note: this returns the result of the operation, without modifying the original
```

If this is something we're on board with, we could do something similar for `f32` and `f64` too. There are probably other methods on integers that make sense.
2019-04-23 21:50:54 +02:00
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
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
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