Commit Graph

83999 Commits

Author SHA1 Message Date
Bruno Dutra
015f470daa Move EvalSnapshot into its own module 2018-09-03 20:02:35 +02:00
Bruno Dutra
a083aa02ed Implement Hash in terms of HashStable for EvalSnapshot 2018-09-03 20:02:35 +02:00
Bruno Dutra
030077401d Promote EvalSnapshot to newtype 2018-09-03 20:02:35 +02:00
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
Ralf Jung
bc809e01ee remark on concurrency in validity section 2018-09-01 18:00:10 +02:00