Commit Graph

83817 Commits

Author SHA1 Message Date
Bruno Dutra
7fa42beef8 Remove unused alloc_id_recursion_tracker 2018-09-03 20:02:35 +02:00
ljedrz
9883dd73aa A few cleanups and minor improvements to save_analysis 2018-09-03 18:37:54 +02:00
bors
cd5c26f0eb Auto merge of #53697 - Cyres:const-fn-int-ops, r=oli-obk
Add more const int ops

r? @oli-obk

Tracking Issue: #53718

list of `const fn`s in this PR:

- `feature = const_int_rotate`
  - `rotate_left`
  - `rotate_right`
- `feature = const_int_wrapping`
  - `wrapping_add`
  - `wrapping_sub`
  - `wrapping_mul`
  - `wrapping_shl`
  - `wrapping_shr`
- `feature = const_int_overflowing`
  - `overflowing_add`
  - `overflowing_sub`
  - `overflowing_mul`
  - `overflowing_shl`
  - `overflowing_shr`
- `feature = const_int_sign`
  - `is_positive`
  - `is_negative`
- `feature = const_int_conversion`
  - `reverse_bits`
  - `to_le_bytes`
  - `to_ne_bytes`
  - `from_be_bytes`
  - `from_le_bytes`
  - `from_ne_bytes`
  - `reverse_bits`
2018-09-03 16:31:34 +00:00
Tobias Bucher
fe56878a24 Link to more detailed docs in slice::from_raw_parts_mut 2018-09-03 18:29:08 +02:00
Jorge Aparicio
bac0eb2f37 whitelist some ARM features 2018-09-03 16:52:43 +02:00
bors
ee73f80dc9 Auto merge of #53673 - michaelwoerister:incr-thinlto-2000, r=alexcrichton
Enable ThinLTO with incremental compilation.

This is an updated version of #52309. This PR allows `rustc` to use (local) ThinLTO and incremental compilation at the same time. In theory this should allow for getting compile-time improvements for small changes while keeping the runtime performance of the generated code roughly the same as when compiling non-incrementally.

The difference to #52309 is that this version also caches the pre-LTO version of LLVM bitcode. This allows for another layer of caching:
1. if the module itself has changed, we have to re-codegen and re-optimize.
2. if the module itself has not changed, but a module it imported from during ThinLTO has, we don't need to re-codegen and don't need to re-run the first optimization phase. Only the second (i.e. ThinLTO-) optimization phase is re-run.
3. if neither the module itself nor any of its imports have changed then we can re-use the final, post-ThinLTO version of the module. (We might have to load its pre-ThinLTO version though so it's available for other modules to import from)
2018-09-03 13:59:57 +00:00
Tim Diekmann
4811e5b6c7
Add missing brace 2018-09-03 15:26:27 +02:00
Cyres
beadf75ad0 Add ident function to the rest of the tests 2018-09-03 15:25:06 +02:00
Tim Diekmann
e54c5a9e48
Wrap rhs in ident function 2018-09-03 15:01:04 +02:00
Tim Diekmann
256cf8681e
Add const_unstable flag to overflowing_shr 2018-09-03 14:53:05 +02:00
bors
591a17d3d9 Auto merge of #53831 - TheDarkula:pointer-check, r=oli-obk
Added pointer checking to sanity checks

r? @oli-obk
2018-09-03 11:31:15 +00:00
Michael Woerister
21d05f64aa incr.ThinLTO: Do some cleanup and add some logging. 2018-09-03 13:26:46 +02:00
Michael Woerister
d5545751f9 Add memmap crate to tidy whitelist. 2018-09-03 13:26:24 +02:00
bors
f3bb23191c Auto merge of #53865 - zilbuz:issue-52768, r=pnkfelix
Remove 'not reporting regions error due to nll' warning

Fix #52768
2018-09-03 08:56:42 +00:00
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
David Tolnay
c5a561c0ab
proc_macro::Group::span_open and span_close
Before this addition, every delimited group like (...) [...] {...} has
only a single Span that covers the full source location from opening
delimiter to closing delimiter. This makes it impossible for a
procedural macro to trigger an error pointing to just the opening or
closing delimiter. The Rust compiler does not seem to have the same
limitation:

    mod m {
        type T =
    }

    error: expected type, found `}`
     --> src/main.rs:3:1
      |
    3 | }
      | ^

On that same input, a procedural macro would be forced to trigger the
error on the last token inside the block, on the entire block, or on the
next token after the block, none of which is really what you want for an
error like above.

This commit adds group.span_open() and group.span_close() which access
the Span associated with just the opening delimiter and just the closing
delimiter of the group. Relevant to Syn as we implement real error
messages for when parsing fails in a procedural macro.
2018-09-02 14:34:45 -07: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
David Wood
8c92cbe90e
Moved let-chain warning/error to ast_validation and changed to unconditional error. 2018-09-02 10:54:28 +02: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
Josh Triplett
a5c86fe6e1 tidy: features.rs: Remove a redundant .contains
The match expression immediately below it checks the same condition.
2018-09-01 17:44:16 -07:00
Josh Triplett
ebdc1bda71 tidy: features.rs: Use splitn rather than a complex slice 2018-09-01 17:43:26 -07:00
Josh Triplett
0e65aeb95d tidy: features.rs: collect_lib_features: Simplify
Use `if let` to simplify a match, and use `contains_key` instead of
`get`.
2018-09-01 17:41:45 -07:00
Josh Triplett
87658bb667 tidy: Use an inclusive range rather than a +1 bound
This improves readability and eliminates a clippy warning.
2018-09-01 17:39:07 -07:00
Josh Triplett
d5b1dee472 tidy: Eliminate an unnecessary .into_iter() 2018-09-01 17:38:09 -07:00
Josh Triplett
fc3419c762 tidy: deps: Hoist a complex multi-line if condition into a let
This makes the code more readable, and eliminates a clippy warning.
2018-09-01 17:36:37 -07:00
Josh Triplett
40ea999915 tidy: unstable_book.rs: Clean up directory iteration
Drop unnecessary .into_iter() (also fixing a clippy warning), and use
path functions to handle file extensions.
2018-09-01 17:14:39 -07:00
Josh Triplett
226d79c30a tidy: Avoid "let ref mut = ..."
This also eliminates a clippy warning.
2018-09-01 17:14:39 -07:00
Josh Triplett
cd20cdf7e0 tidy: Use "const" instead of "static, and remove implied 'static lifetimes
Dropping the redundant lifetimes also eliminates a clippy warning.
2018-09-01 17:14:38 -07:00
Josh Triplett
decc3b0eba tidy: extdeps.rs: Avoid an unnecessary collect() 2018-09-01 16:46:40 -07:00
Josh Triplett
896c3ce2f1 tidy: extdeps.rs: Clean up loop iteration to use "for"
Also eliminates a clippy lint.
2018-09-01 16:46:06 -07:00
Josh Triplett
fb317aaf9e tidy: cargo.rs: Clean up loop to use "for" instead of "while let"
Eliminates a clippy warning.

Also drop the unnecessary `.peekable()`.
2018-09-01 16:45:50 -07: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
Josh Triplett
2893a2127d tidy: Clean up argument handling
Use `.nth(n)` rather than `.skip(n).next()` (also fixes a clippy
warning), and use `.into()` and a type signature rather than
`PathBuf::from`.
2018-09-01 12:24:03 -07:00
Josh Triplett
0f40a12ea3 tidy: Use is_empty() instead of len tests
Fixes a clippy warning, and improves readability.
2018-09-01 12:20:16 -07:00
Josh Triplett
cd51523715 tidy: Use chars for single-character patterns
Fixes the clippy "single_char_pattern" lint, and (marginally) improves
performance.
2018-09-01 12:19:04 -07: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
Ariel Ben-Yehuda
ae2ad30bf1 move the is_field_list_non_exhaustive flag to VariantDef
This completely splits the IS_NON_EXHAUSTIVE flag. No functional
changes intended.
2018-09-01 19:10:26 +03:00
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