Commit Graph

122966 Commits

Author SHA1 Message Date
Oliver Scherer
b9f4e0dbfd Erase all block-only locals at the end of every block, even if they have not been touched. 2020-06-28 12:03:19 +02:00
bjorn3
4d978af297 Remove GlobalCtxt::enter_local 2020-06-28 11:43:10 +02:00
VillSnow
60f2ba2403 Update tracking issue number 2020-06-28 17:39:03 +09:00
bors
25687caa2e Auto merge of #73830 - Manishearth:rollup-8k68ysm, r=Manishearth
Rollup of 10 pull requests

Successful merges:

 - #72796 (MIR sanity check: validate types on assignment)
 - #73243 (Add documentation to point to `File::open` or `OpenOptions::open` instead of `is_file` to check read/write possibility)
 - #73525 (Prepare for LLVM 11)
 - #73672 (Adds a clearer message for when the async keyword is missing from a f…)
 - #73708 (Explain move errors that occur due to method calls involving `self` (take two))
 - #73758 (improper_ctypes: fix remaining `Reveal:All`)
 - #73763 (errors: use `-Z terminal-width` in JSON emitter)
 - #73796 (replace more `DefId`s with `LocalDefId`)
 - #73797 (fix typo in self-profile.md)
 - #73809 (Add links to fs::DirEntry::metadata)

Failed merges:

r? @ghost
2020-06-28 08:26:22 +00:00
VillSnow
d720a19e2a Update doc comment 2020-06-28 16:45:56 +09:00
VillSnow
83d599826f Merge branch 'master' of https://github.com/VillSnow/rust 2020-06-28 16:27:41 +09:00
VillSnow
9335787657
Update src/libcore/slice/mod.rs
Co-authored-by: Lukas Kalbertodt <lukas.kalbertodt@gmail.com>
2020-06-28 16:26:47 +09:00
VillSnow
52f976236f Add comment on use of unsafe 2020-06-28 16:25:33 +09:00
pierwill
4595fa8a1b Fix comma in debug_assert! docs 2020-06-28 00:08:53 -07:00
Manish Goregaokar
cdb59d9041
Rollup merge of #73809 - robyoung:docs/add-links-to-DirEntry-metadata, r=hanna-kruppe
Add links to fs::DirEntry::metadata

`fs::DirEntry::metadata` doesn't traverse symlinks. It is not immediately clear what to do if you do want to traverse symlinks. This change adds links to the two other `metadata` functions that will follow symlinks.
2020-06-27 22:30:06 -07:00
Manish Goregaokar
dc843a8c6d
Rollup merge of #73797 - atetubou:patch-1, r=jonas-schievink
fix typo in self-profile.md
2020-06-27 22:30:05 -07:00
Manish Goregaokar
800d2e3a00
Rollup merge of #73796 - lcnr:LocalDefId, r=matthewjasper
replace more `DefId`s with `LocalDefId`

part of https://github.com/rust-lang/rust/issues/70853
2020-06-27 22:30:03 -07:00
Manish Goregaokar
596af5ae5d
Rollup merge of #73763 - davidtwco:terminal-width-json-emitter, r=estebank
errors: use `-Z terminal-width` in JSON emitter

This PR makes the JSON emitter use `-Z terminal-width` in the "rendered" field of the JSON output.

r? @estebank
2020-06-27 22:30:01 -07:00
Manish Goregaokar
d5205f23d3
Rollup merge of #73758 - davidtwco:issue-60855-remaining-reveal-all, r=matthewjasper
improper_ctypes: fix remaining `Reveal:All`

Fixes #60855.

This PR replaces the remaining uses of `ParamEnv::reveal_all` with `LateContext`'s `param_env` (normally `Reveal::UserFacing`) in the improper ctypes lint.
2020-06-27 22:29:59 -07:00
Manish Goregaokar
b236e49f09
Rollup merge of #73708 - Aaron1011:feature/reland-move-fn-self-msg, r=davidtwco
Explain move errors that occur due to method calls involving `self` (take two)

This is a re-attempt of #72389 (which was reverted in #73594)
Instead of using `ExpnKind::Desugaring` to represent operators, this PR
checks the lang item directly.
2020-06-27 22:29:58 -07:00
Manish Goregaokar
d227a825bc
Rollup merge of #73672 - nellshamrell:async-fix, r=estebank
Adds a clearer message for when the async keyword is missing from a f…

…unction

This is a somewhat simple fix for #66731.

Under the current version of Rust, if a user has a rust file that looks like this:

```rust
fn boo (){}

async fn foo() {
    boo().await;
}

fn main() {

}
```

And they attempt to run it, they will receive an error message that looks like this:

```bash
error: incorrect use of `await`                                                                                                        --> test.rs:4:14                                                                                                                       |                                                                                                                                   4 |     boo.await();                                                                                                                    |              ^^ help: `await` is not a method call, remove the parentheses                                                                                                                                                                                              error[E0277]: the trait bound `fn() {boo}: std::future::Future` is not satisfied                                                        --> test.rs:4:5                                                                                                                        |                                                                                                                                  4  |     boo.await();                                                                                                                    |     ^^^^^^^^^ the trait `std::future::Future` is not implemented for `fn() {boo}`                                                                                                                                                                                      error: aborting due to 2 previous errors                                                                                                                                                                                                                                    For more information about this error, try `rustc --explain E0277`.
```

This is not very clear.

With the changes made in this PR, when a user compiles and runs that same rust code, they will receive an error message that looks like this:

```bash
error[E0277]: `()` is not a future.
 --> test.rs:4:5
  |
4 |     boo().await;
  |     ^^^^^^^^^^^ `()` is not a future
  |
  = help: the trait `std::future::Future` is not implemented for `()`
  = note: required by `std::future::Future::poll`
```

In the future, I think we should make this error message even clearer, perhaps through a solution like the one described in [this comment](https://github.com/rust-lang/rust/issues/66731#issuecomment-644394287). However, as that potentially involves a major change proposal, I would rather get this change in now and make the error message a little clearer while an MCP is drafted and discussed.

Signed-off-by: Nell Shamrell <nellshamrell@gmail.com>
2020-06-27 22:29:55 -07:00
Manish Goregaokar
45ec25e088
Rollup merge of #73525 - cuviper:llvm11, r=nikic
Prepare for LLVM 11

These are just the code changes needed to build with the current LLVM master (version 11).

r? @nikic
2020-06-27 22:29:54 -07:00
Manish Goregaokar
6a944c15ab
Rollup merge of #73243 - poliorcetics:discourage-is-file, r=Amanieu
Add documentation to point to `File::open` or `OpenOptions::open` instead of `is_file` to check read/write possibility

Fixes #64170.

This adds documentation to point user towards `!is_dir` instead of `is_file` when all they want to is read from a source.

I ran `rg "fn is_file\("` to find all `is_file` methods, I hope I did not miss one.
2020-06-27 22:29:52 -07:00
Manish Goregaokar
385d85c858
Rollup merge of #72796 - RalfJung:mir-assign-sanity, r=matthewjasper
MIR sanity check: validate types on assignment

This expands the MIR validation added by @jonas-schievink in https://github.com/rust-lang/rust/pull/72093 to also check that on an assignment, the types of both sides match.

Cc @eddyb @oli-obk
2020-06-27 22:29:46 -07:00
bors
3b4a3d68b5 Auto merge of #72705 - Lucretiel:stdio-forwarding, r=Amanieu
Added io forwarding methods to the stdio structs

Added methods to forward the `io::Read` and `io::Write` methods of the myriad wrapper structs in `stdio.rs` to their underlying readers / writers. This is especially important for the structs on the outside of a locking boundary, to ensure that the lock isn't being dropped and re-acquired in a loop.
2020-06-28 04:16:52 +00:00
James Box
7231e57546 Fix wording for anonymous parameter name help 2020-06-27 22:55:42 -05:00
Caleb Hattingh
8291a22dd4
Fix docstring typo 2020-06-28 13:26:09 +10:00
jumbatm
c72a5dd9d3 Rename the lint to clashing_extern_declarations.
Also, run RustFmt on the clashing_extern_fn test case and update
stderrs.
2020-06-28 10:11:29 +10:00
Tomasz Miąsko
14d0370273 Remove defunct -Z print-region-graph 2020-06-28 00:00:00 +00:00
David Hewitt
a1217cb29d Add format_args_capture to the unstable book 2020-06-27 22:02:01 +01:00
Alexis Bourget
8e8c54aa3a Added the parapgrah to path::Path::is_file too 2020-06-27 22:59:47 +02:00
Vadim Petrochenkov
6d0e5bf348 Rename two Resolver traits 2020-06-27 23:51:28 +03:00
Vadim Petrochenkov
7055c23d2c ast_pretty: Pass some token streams and trees by reference 2020-06-27 23:33:18 +03:00
bors
9bdd2db3a6 Auto merge of #73671 - ehuss:update-mdbook, r=Mark-Simulacrum
Update mdbook

This updates mdbook to 0.4.  The list of changes can be found at https://github.com/rust-lang/mdBook/blob/master/CHANGELOG.md#mdbook-040.  I think the most important one is the change to include fonts with the book instead of using the Google Fonts CDN. This adds a few megabytes of fonts to the docs component.  It may be possible to share the fonts across the books, but would take a fair bit of work to make that happen, so I'm not sure if it is necessary.

This also removes mdbook-linkcheck. It is currently not being used, and I don't foresee it going back into use anytime soon. I would prefer not to maintain something that isn't being used, and it removes a very large number of dependencies.
2020-06-27 20:14:34 +00:00
ecstatic-morse
ffcfaa1105
Fix comment. 2020-06-27 12:57:00 -07:00
Caleb Zulawski
8e899b1cbe Don't implement Fn* for unsafe #[target_feature] functions 2020-06-27 15:51:51 -04:00
Yuki Okushi
1d16aed7f0
Add test for issue-72352 2020-06-28 04:49:51 +09:00
Yuki Okushi
7125ce7ab7
Add test for issue-71611 2020-06-28 04:49:51 +09:00
Yuki Okushi
99884bd879
Add test for issue-71382 2020-06-28 04:49:51 +09:00
Rob Young
0e0584f290 Add links to fs::DirEntry::metadata
`fs::DirEntry::metadata` doesn't traverse symlinks. It is not immediately
clear what to do if you do want to traverse symlinks. This change adds
links to the two other `metadata` functions that will follow symlinks.
2020-06-27 19:32:19 +01:00
Aaron Hill
517d361a1f
Use an 'approximate' universal upper bound when reporting region errors
Fixes #67765

When reporting errors during MIR region inference, we sometimes use
`universal_upper_bound` to obtain a named universal region that we
can display to the user. However, this is not always possible - in a
case like `fn foo<'a, 'b>() { .. }`, the only upper bound for a region
containing `'a` and `'b` is `'static`. When displaying diagnostics, it's
usually better to display *some* named region (even if there are
multiple involved) rather than fall back to a generic error involving
`'static`.

This commit adds a new `approx_universal_upper_bound` method, which
uses the lowest-numbered universal region if the only alternative is to
return `'static`.
2020-06-27 14:01:59 -04:00
Gary Guo
8b43012453
Update src/librustc_mir/interpret/intrinsics.rs
Co-authored-by: Oliver Scherer <github35764891676564198441@oli-obk.de>
2020-06-27 18:24:46 +01:00
David Hewitt
8caf604070 Improve messaging from PR feedback 2020-06-27 18:13:47 +01:00
Alexis Bourget
3fc5593ea8 Document the type keyword 2020-06-27 18:34:34 +02:00
Ivan Tham
725918f17e
Update src/doc/unstable-book/src/language-features/rustc-attrs.md
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-06-28 00:23:37 +08:00
Alexis Bourget
d25d6c5bd8 Update the documentation to point to open instead of is_file and is_dir 2020-06-27 18:10:58 +02:00
Aaron Hill
765bd47fa0
Recover extra trailing angle brackets in struct definition
This commit applies the existing 'extra angle bracket recovery' logic
when parsing fields in struct definitions. This allows us to continue
parsing the struct's fields, avoiding spurious 'missing field' errors in
code that tries to use the struct.
2020-06-27 11:53:42 -04:00
Nikita Popov
4c14f9d110 Forward Hash::write_iN to Hash::write_uN 2020-06-27 15:36:46 +02:00
Takuto Ikuta
9308860a7b
fix typo in self-profile.md 2020-06-27 21:38:51 +09:00
Bastian Kauschke
2d280a55a9 more LocalDefId cleanup 2020-06-27 13:38:00 +02:00
Yuki Okushi
88fe556db8
Add test for issue-71381 2020-06-27 20:33:50 +09:00
Bastian Kauschke
1875c79772 more LocalDefId in ty::context 2020-06-27 13:15:12 +02:00
Bastian Kauschke
a4e7b47984 use LocalDefId in module checking 2020-06-27 13:09:54 +02:00
Vadim Petrochenkov
79a42e3708 linker: Create GNU_EH_FRAME header by default when producing ELFs 2020-06-27 12:36:41 +03:00
Ivan Tham
f772587aba Add unstable docs for rustc_attrs 2020-06-27 15:01:57 +08:00