83023 Commits

Author SHA1 Message Date
bors
2687112ea6 Auto merge of #53838 - nrc:save-generic, r=eddyb
save-analysis: record info for the types in `where` clauses

cc https://github.com/rust-lang-nursery/rls/issues/987

r? @eddyb
2018-09-03 02:32:11 +00:00
bors
9395f0af78 Auto merge of #53725 - tbu-:pr_getrandom_syscalls, r=alexcrichton
Reduce number of syscalls in `rand`

This skips the initial zero-length `getrandom` call and
directly hands the user buffer to the operating system, saving one
`getrandom` syscall.
2018-09-02 21:24:18 +00:00
bors
763d91aa12 Auto merge of #53899 - Manishearth:clippyup, r=kennytm
Update clippy

r? @kennytm @oli-obk
2018-09-02 18:13:03 +00:00
bors
23ea1b8188 Auto merge of #53599 - matthiaskrgr:split_str__to__split_char, r=frewsxcv
use char pattern for single-character splits: a.split("x") -> a.split('x')
2018-09-02 15:27:56 +00:00
bors
5a0a9a280a Auto merge of #53897 - topecongiro:check-to-eat, r=petrochenkov
Replace check() + bump() with eat()

cc #51945.

r? @petrochenkov
2018-09-02 13:11:22 +00:00
Manish Goregaokar
2e15511050 Update clippy 2018-09-02 13:29:50 +05:30
Seiichi Uchida
51dbb024f7 Replace check() + bump() with eat() 2018-09-02 15:19:28 +09:00
bors
3480ac2a80 Auto merge of #53887 - flip1995:tool_lints, r=Manishearth
Fix of bug introduced by #53762 (tool_lints)

Before implementing backwards compat for tool lints, the `Tool` case when parsing cmdline lints was unreachable. This changed with #53762.

This fix is needed for rls test-pass. (@nrc)

r? @Manishearth
2018-09-02 02:10:33 +00:00
bors
a1a8c444f9 Auto merge of #53842 - estebank:various, r=petrochenkov
Various small diagnostic and code clean up

 - Point at def span on incorrect `panic` or `oom` function
 - Use structured suggestion instead of note for `+=` that can be performed on a dereference of the left binding
 - Small code formatting cleanup
2018-09-01 23:34:14 +00:00
Tobias Bucher
b95c491dfc Fix an endless loop when getrandom is not available 2018-09-02 00:19:11 +02:00
bors
28bcffead7 Auto merge of #53815 - F001:if-let-guard, r=petrochenkov
refactor match guard

This is the first step to implement RFC 2294: if-let-guard. Tracking issue: https://github.com/rust-lang/rust/issues/51114

The second step should be introducing another variant `IfLet` in the Guard enum. I separated them into 2 PRs for the convenience of reviewers.

r? @petrochenkov
2018-09-01 20:31:29 +00:00
bors
f39f218ec3 Auto merge of #53533 - withoutboats:error-source, r=withoutboats
Add Error::source method per RFC 2504.

This implements part of RFC 2504.

* Adds `Error::source`, a replacement for `Error::cause` with the "right" signature, which will be instantly stable.
* Deprecates `Error::cause` in 1.33 (this choice was based on the precedent in #52994, which we haven't finalized).
* Redefines `Error::cause` to delegate to `Error::source` (the delegation can only go in this direction, not the other).

@rfcbot fcp merge
2018-09-01 18:08:45 +00:00
Manish Goregaokar
daa43643b0 deprcated -> deprecated 2018-09-01 21:45:44 +05:30
flip1995
6a317be5c8
Add tests for cmdline tool lints 2018-09-01 18:06:36 +02:00
bors
839d99c861 Auto merge of #53884 - kennytm:rollup, r=kennytm
Rollup of 9 pull requests

Successful merges:

 - #53076 (set cfg(rustdoc) when rustdoc is running on a crate)
 - #53622 (cleanup: Add main functions to some UI tests)
 - #53769 (Also link Clippy repo in the CONTRIBUTING.md file)
 - #53774 (Add rust-gdbgui script.)
 - #53781 (bench: libcore: fix build failure of any.rs benchmark (use "dyn Any"))
 - #53782 (Make Arc cloning mechanics clearer in module docs)
 - #53790 (Add regression test for issue #52060)
 - #53801 (Prevent duplicated impl on foreign types)
 - #53850 (Nuke the `const_to_allocation` query)
2018-09-01 15:48:21 +00:00
flip1995
798a20740e
Fix of bug introduced by #53762 2018-09-01 17:43:14 +02:00
kennytm
d0f8cf32b3
Rollup merge of #53076 - QuietMisdreavus:cfg-rustdoc, r=GuillaumeGomez
set cfg(rustdoc) when rustdoc is running on a crate

When using `#[doc(cfg)]` to document platform-specific items, it's a little cumbersome to get all the platforms' items to appear all at once. For example, the standard library adds `--cfg dox` to rustdoc's command line whenever it builds docs, and the documentation for `#![feature(doc_cfg)]` suggests using a Cargo feature to approximate the same thing. This is a little awkward, because you always need to remember to set `--features dox` whenever you build documentation.

This PR proposes making rustdoc set `#[cfg(rustdoc)]` whenever it runs on a crate, to provide an officially-sanctioned version of this that is set automatically. This way, there's a standardized way to declare that a certain version of an item is specifically when building docs.

To try to prevent the spread of this feature from happening too quickly, this PR also restricts the use of this flag to whenever `#![feature(doc_cfg)]` is active. I'm sure there are other uses for this, but right now i'm tying it to this feature. (If it makes more sense to give this its own feature, i can easily do that.)
2018-09-01 23:18:41 +08:00
kennytm
a0d0060bd7
Rollup merge of #53850 - csmoe:const_to_alloc, r=RalfJung
Nuke the `const_to_allocation` query

Closes https://github.com/rust-lang/rust/issues/53847
r? @RalfJung
`./x.py check` works anyway, let's checkout tests from ci.
2018-09-01 21:14:16 +08:00
kennytm
f37081499b
Rollup merge of #53801 - GuillaumeGomez:duplicated-foreign-type-impls, r=QuietMisdreavus
Prevent duplicated impl on foreign types

Fixes #53689.

r? @QuietMisdreavus
2018-09-01 21:14:15 +08:00
kennytm
88ebbe98bb
Rollup merge of #53790 - zilbuz:issue-52060, r=nikomatsakis
Add regression test for issue #52060

Fix #52060
2018-09-01 21:14:14 +08:00
kennytm
fcd76b4d3c
Rollup merge of #53782 - rask:task/arc-docs-adjustment, r=cramertj
Make Arc cloning mechanics clearer in module docs

Add some more wording to module documentation regarding how
`Arc::clone()` works, as some users have assumed cloning Arc's
to work via dereferencing to inner value as follows:

    use std::sync::Arc;

    let myarc = Arc::new(1);
    let myarcref = myarc.clone();

    assert!(1 == myarcref);

Instead of the actual mechanic of referencing the existing
Arc value:

    use std::sync::Arg;

    let myarc = Arc::new(1);
    let myarcref = myarc.clone();

    assert!(myarcref == &myarc); // not sure if assert could assert this in the real world
2018-09-01 21:14:13 +08:00
kennytm
8d161a6682
Rollup merge of #53781 - matthiaskrgr:fix_any_bench, r=kennytm
bench: libcore: fix build failure of any.rs benchmark (use "dyn Any")

fixes
````
error: trait objects without an explicit `dyn` are deprecated
  --> libcore/../libcore/benches/any.rs:18:36
   |
18 |         let mut y = &mut x as &mut Any;
   |                                    ^^^ help: use `dyn`: `dyn Any`
   |
   = note: requested on the command line with `-D bare-trait-objects`
````
2018-09-01 21:14:11 +08:00
kennytm
2e543e9439
Rollup merge of #53774 - PhilipDaniels:master, r=tromey
Add rust-gdbgui script.

This script invokes the [gdbgui](https://gdbgui.com/) graphical GDB front-end with the Rust pretty printers loaded. The script does not install gdbgui, that must be done manually.

As an escapee from Visual Studio it is nice to have a point-and-click debugger. This script invokes `gdbgui` similarly to the way that `rust-gdb` invokes `gdb` - I copied that script as a starting point.

Because it is a wrapper around a wrapper you don't have as much flexibility in passing arguments to GDB and I could not find a way to eliminate the single quotes you have to use when you want to pass arguments to your program (`gdbgui` supposedly supports an `--args` option which I think should allow this, but I couldn't get it to work, my shell-fu is weak). Still, I find this very usable for debugging programs, and it is a lot more approachable than gdb in the terminal.
2018-09-01 21:14:10 +08:00
kennytm
7cf6ea5ee4
Rollup merge of #53769 - flip1995:patch-1, r=kennytm
Also link Clippy repo in the CONTRIBUTING.md file

r? @steveklabnik
2018-09-01 21:14:09 +08:00
kennytm
9d80c65be2
Rollup merge of #53622 - petrochenkov:nomain, r=oli-obk
cleanup: Add main functions to some UI tests
2018-09-01 21:14:07 +08:00
bors
fea32f1b77 Auto merge of #53604 - oli-obk:min_const_fn, r=Centril,varkor
Implement the `min_const_fn` feature gate

cc @RalfJung @eddyb

r? @Centril

implements the feature gate for #53555

I added a hack so the `const_fn` feature gate also enables the `min_const_fn` feature gate. This ensures that nightly users of `const_fn` don't have to touch their code at all.

The `min_const_fn` checks are run first, and if they succeeded, the `const_fn` checks are run additionally to ensure we didn't miss anything.
2018-09-01 11:26:24 +00:00
csmoe
db7da0e476 bug! instead of panic! 2018-09-01 18:13:28 +08:00
bors
e6381a7f37 Auto merge of #53822 - dvc94ch:riscv, r=japaric
[RISCV] Use lld as the default linker; Enable C extension; Add riscv32imc-unknown-none-elf target

The riscv32imc-unknown-none-elf target is intended for soft cores.

The riscv32imc target is supported by the following popular soft cores:

picorv32: https://github.com/cliffordwolf/picorv32
vexriscv: https://github.com/SpinalHDL/VexRiscv
pulp riscy: https://github.com/pulp-platform/riscv
pulp zero-riscy: https://github.com/pulp-platform/zero-riscy
2018-09-01 06:58:16 +00:00
bors
b7e44027a5 Auto merge of #53762 - flip1995:tool_lints, r=Manishearth
Backwards compatibility for tool/clippy lints

cc #44690
cc https://github.com/rust-lang-nursery/rust-clippy/pull/2977#issuecomment-409706557

This is the next step towards `tool_lints`.

This makes Clippy lints still work without scoping, but will warn and suggest the new scoped name. This warning will only appear if the code is checked with Clippy itself.

There is still an issue with using the old lint name in inner attributes. For inner attributes the warning gets emitted twice. I'm currently not really sure why this happens, but will try to fix this ASAP.

r? @Manishearth
2018-09-01 03:27:42 +00:00
csmoe
a18a2900f3 improve panic message 2018-09-01 09:49:24 +08:00
bors
06a59da5af Auto merge of #53611 - alexcrichton:update-llvm, r=nikomatsakis
Update LLVM submodule

This commit updates the LLVM submodule to the current trunk of LLVM itself. This
brings a few notable improvements for the wasm target:

* Support for wasm atomic instructions is greatly improved
* Renamed memory wasm intrinsics are fully supported
* LLD has fixed a quadratic execution bug with large numbers of relocations in
  wasm files.

The compiler-rt submodule has been updated in tandem as well.
2018-09-01 01:07:31 +00:00
Alex Crichton
6c10142251 Update LLVM submodule
This commit updates the LLVM submodule to the current trunk of LLVM itself. This
brings a few notable improvements for the wasm target:

* Support for wasm atomic instructions is greatly improved
* Renamed memory wasm intrinsics are fully supported
* LLD has fixed a quadratic execution bug with large numbers of relocations in
  wasm files.

The compiler-rt submodule has been updated in tandem as well.
2018-08-31 16:00:41 -07:00
bors
571a624aa9 Auto merge of #53755 - llogiq:fix-unsound-16bit-range, r=nagisa
fix u32 steps_between for 16-bit systems

This fixes #48006.
2018-08-31 22:44:17 +00:00
QuietMisdreavus
ad2169c095 use cfg(rustdoc) instead of cfg(dox) in std and friends 2018-08-31 13:29:10 -05:00
QuietMisdreavus
d7e496f442 feature(doc_cfg): add docs for cfg(rustdoc) 2018-08-31 13:29:10 -05:00
QuietMisdreavus
1a3bb2795b feature(doc_cfg): set cfg(rustdoc) when rustdoc is running 2018-08-31 13:29:10 -05:00
bors
aaa170bebe Auto merge of #51384 - QuietMisdreavus:extern-version, r=GuillaumeGomez
rustdoc: add flag to control the html_root_url of dependencies

The `--extern-html-root-url` flag in this PR allows one to override links to crates whose docs are not already available locally in the doc bundle. Docs.rs currently uses a version of this to make sure links to other crates go into that crate's docs.rs page. See the included test for intended use, but the idea is as follows:

Calling rustdoc with `--extern-html-root-url crate=https://some-url.com` will cause rustdoc to override links that point to that crate to instead be replaced with a link rooted at `https://some-url.com/`. (e.g. for docs.rs this would be `https://docs.rs/crate/0.1.0` or the like.) Cheekily, rustup could use these options to redirect links to std/core/etc to instead point to locally-downloaded docs, if it so desired.

Fixes https://github.com/rust-lang/rust/issues/19603
2018-08-31 17:39:28 +00:00
Vadim Petrochenkov
c56adf6413 cleanup: Add main functions to some UI tests 2018-08-31 18:56:15 +03:00
bors
163adf2860 Auto merge of #53699 - oli-obk:promotion_stability_hole, r=nikomatsakis
Fix promotion stability hole in old borrowck

r? @nikomatsakis

I screwed up the promotion stability checks. Big time. They were basically nonexistant. We had tests for it. I also screwed up said tests. This is in stable already :(

Basically stability checks of promotion only worked if you tried to use a const fn defined in the same crate.

cc @eddyb
2018-08-31 14:06:14 +00:00
bors
c2afca3667 Auto merge of #53403 - spastorino:move-out-lazily, r=nikomatsakis
Do not used Move data flow analysis, make it lazy instead

Close #53394
2018-08-31 11:25:53 +00:00
csmoe
72ba683457 extract allocation info from byref 2018-08-31 18:31:15 +08:00
csmoe
66d7216469 trip const_to_alloc query 2018-08-31 18:30:38 +08:00
Oliver Schneider
2839f4f0e8 Get rid of token passing 2018-08-31 11:49:29 +02:00
Otto Rask
bf7e324e4e Add clearer wording to Arc clone example code 2018-08-31 11:21:01 +03:00
flip1995
9cbe518216 Fix typo and small mistake 2018-08-31 00:47:09 -07:00
flip1995
b776579728 Update tests 2018-08-31 00:47:09 -07:00
flip1995
a59da03f8d Add hint for cfg_attr and fix test 2018-08-31 00:47:09 -07:00
flip1995
3720557361 Implement backwards compatibility for tool_lints 2018-08-31 00:46:57 -07:00
flip1995
ce173c12e6 Add deprecated_name argument to the register lint group functions 2018-08-31 00:46:55 -07:00
flip1995
9521deecc4 Add tests for backward compat 2018-08-31 00:46:30 -07:00