Commit Graph

85032 Commits

Author SHA1 Message Date
kennytm
919f434136
Rollup merge of #55151 - ljedrz:cleanup_nll, r=estebank
Cleanup nll

- improve allocations
- improve `format!` calls
- improve common patterns
2018-10-18 12:55:16 +08:00
kennytm
89b7ccf407
Rollup merge of #55142 - RalfJung:miri-uninhabited-enum, r=oli-obk
miri: layout should not affect CTFE checks (outside of validation)

Either the enum has no valid discriminant, then the code later will catch that; or it does, then we shouldn't error out so early (absent enforcing validity).

Interestingly, the miri test suite still passes; my guess is we don't even get here for uninhabited types?

r? @oli-obk
2018-10-18 12:55:13 +08:00
kennytm
6f6878c073
Rollup merge of #55128 - varkor:LLVMRustInlineAsmVerify-return-bool, r=rkruppe
Fix LLVMRustInlineAsmVerify return type mismatch

Fixes https://github.com/rust-lang/rust/issues/54918.

r? @rkruppe
cc @levex
2018-10-18 12:55:11 +08:00
kennytm
eda6e06852
Rollup merge of #55127 - ljedrz:simplify_hybridbitset, r=matthewjasper
Remove HybridBitSet::dummy

This simplifies some of the `HybridBitSet` code.

cc @nnethercote
2018-10-18 12:55:09 +08:00
kennytm
f8fa3da77b
Rollup merge of #55122 - ljedrz:cleanup_mir_borrowck, r=Mark-Simulacrum
Cleanup mir/borrowck

- remove a redundant `.clone()`
- a few string tweaks
- deduplicate assignments and `return`s
- simplify common patterns
- remove redundant `return`s
2018-10-18 12:55:06 +08:00
kennytm
2571c1c783
Rollup merge of #55104 - estebank:addtest, r=alexcrichton
Add test for #34229

Fix #34229.
2018-10-18 12:55:04 +08:00
kennytm
8988403d69
Rollup merge of #55102 - petrochenkov:trextra, r=nikomatsakis
resolve: Do not skip extern prelude during speculative resolution

Fixes https://github.com/rust-lang/rust/issues/54665
2018-10-18 12:55:02 +08:00
kennytm
bea91dcb69
Rollup merge of #55090 - pnkfelix:issue-54597-regression-test, r=estebank
regression test for move out of borrow via pattern

regression test for issue #54597.

(We may have other tests that cover this, but I couldn't immediately find them associated with the PR that originally fixed the ICE here.)
2018-10-18 12:54:59 +08:00
kennytm
955016c79c
Rollup merge of #55080 - thanatos:fix-localstorage-crash, r=GuillaumeGomez
Detect if access to localStorage is forbidden by the user's browser

If the user's cookie/persistent storage setting forbid access to `localStorage`, catch the exception and abort the access.

Currently, attempting to use the expand/contract links at the top of the page for structs/consts/etc. fails due to an unhandled error while accessing `localStorage`, if such access is forbidden, as the exception from the failed access propagates all the way out, interrupting the expand/contract. Instead, I would like to degrade gracefully; the access won't happen (the collapse/expand state won't get persisted) but the actual expanding/contracting of the item will go on to succeed.

Fixes #55079
2018-10-18 12:54:57 +08:00
kennytm
ed68f1a5aa
Rollup merge of #55077 - ollie27:rustdoc_dyn_trait, r=QuietMisdreavus
rustdoc: Use dyn keyword when rendering dynamic traits

The dyn keyword has been stable for a while now so rustdoc should start using it.

r? @QuietMisdreavus
2018-10-18 12:54:56 +08:00
kennytm
7538c62501
Rollup merge of #55050 - tshepang:repetition, r=steveklabnik
doc std::fmt: the Python inspiration is already mentioned in precedin…

…g paragraph
2018-10-18 12:54:54 +08:00
kennytm
617faa90e5
Rollup merge of #55031 - nikic:verify_llvm_ir, r=Mark-Simulacrum
Improve verify_llvm_ir config option

LLVM IR verification has been disabled by default in #51230. However, the implementation doesn't quite match what was discussed in the discussion. This patch implements two changes:

* Make `verify_llvm_ir` influence the behavior of the compiled rustc binary, rather than just the rustc build system. That is, if `verify_llvm_ir=true`, even manual invocations of the built rustc will verify LLVM IR.
* Enable verification of LLVM IR in CI, for non-deploy and deploy-alt builds. This is similar to how LLVM assertions are handled.
2018-10-18 12:54:53 +08:00
kennytm
9ee49bbb88
Rollup merge of #55016 - oli-obk:vtables💥_vtables_everywhere, r=RalfJung
Deduplicate some code and compile-time values around vtables

r? @RalfJung
2018-10-18 12:54:51 +08:00
kennytm
43ac030d7e
Rollup merge of #54964 - tromey:run-both-gdb-and-lldb-tests, r=nikomatsakis
Run both lldb and gdb tests

Currently lldb tests are run only on macOS, and gdb tests are only run
elsewhere.  This patch changes this to run tests depending on what is
available.

One test is changed, as it was previously marked as failing on macOS,
whereas really it is a generic failure with lldb.

Closes #54721
2018-10-18 12:54:49 +08:00
kennytm
fd616f0170
Rollup merge of #54933 - ljedrz:cleanup_codegen_llvm/misc, r=varkor
Cleanup the rest of codegen_llvm

- improve common patterns
- convert string literals with `to_owned`
- remove explicit `return`s
- whitespace & formatting improvements
2018-10-18 12:54:45 +08:00
kennytm
e4ac447851
Rollup merge of #54646 - vn971:fix_std_thread_sleep, r=frewsxcv
improve documentation on std:🧵:sleep
2018-10-18 12:54:42 +08:00
Raph Levien
9a2e7026dc Fix inconsistent documentation
I improved the f32 version and made a copy-paste error for f64.
2018-10-17 21:09:55 -07:00
Raph Levien
0e6c3f29be Add a copysign function to f32 and f64
This patch adds a `copysign` function to the float primitive types.
It is an exceptionally useful function for writing efficient numeric
code, as it often avoids branches, is auto-vectorizable, and there
are efficient intrinsics for most platforms.

I think this might work as-is, as the relevant `copysign` intrinsic
is already used internally for the implementation of `signum`. It's
possible that an implementation might be needed in japaric/libm for
portability across all platforms, in which case I'll do that also.

Part of the work towards #55107
2018-10-17 18:15:00 -07:00
bors
f7eb7fbbf6 Auto merge of #55134 - davidtwco:issue-55118, r=pnkfelix
NLL: change compare-mode=nll to use borrowck=migrate

Fixes #55118.

This PR is split into two parts:

The first commit is a minor change that fixes a flaw in the existing `borrowck=migrate` implementation whereby a lint that was promoted to an error in the AST borrow checker would result in the same lint from the NLL borrow checker being downgraded to a warning in migrate mode. This PR fixes this by ensuring lints are exempt from buffering in the NLL borrow checker.

The second commit updates `compiletest` to make the NLL compare mode use `-Z borrowck=migrate` rather than `-Z borrowck=mir`. The third commit shows all the test output changes that result from this.

r? @pnkfelix
2018-10-17 23:16:10 +00:00
varkor
26346467c5 Warning about unreachable arms after matching on a diverging type 2018-10-18 00:05:19 +01:00
varkor
0a858dc859 Don't warn about parentheses on match (return) 2018-10-17 23:51:01 +01:00
Niko Matsakis
1f4d100472 move E0637 to lowering and improve output, add more tests 2018-10-17 17:15:24 -04:00
Alexander Komarov
c55e1e69e3 [librustdoc] Disable spellcheck for search field 2018-10-17 23:58:21 +03:00
ljedrz
ffecbc5e10 nll: improve common patterns 2018-10-17 22:57:38 +02:00
ljedrz
2bda0c196f nll: improve format operations 2018-10-17 22:57:38 +02:00
ljedrz
e62ce98009 nll: improve allocations 2018-10-17 22:57:37 +02:00
ljedrz
89c20b78d6 resolve: improve/remove allocations 2018-10-17 19:57:03 +02:00
ljedrz
da40916bc2 resolve: improve common patterns 2018-10-17 19:57:02 +02:00
ljedrz
5620f6d244 mir/borrowck: remove a redundant clone 2018-10-17 14:40:47 +02:00
ljedrz
f53d2b257c mir/borrowck: remove redundant returns 2018-10-17 14:40:47 +02:00
ljedrz
cd03f5d1e0 mir/borrowck: deduplicate assignments and returns 2018-10-17 14:40:47 +02:00
ljedrz
684c4e8419 mir/borrowck: a few string tweaks 2018-10-17 14:40:46 +02:00
ljedrz
3ba62dd0f6 mir/borrowck: simplify common patterns 2018-10-17 14:40:46 +02:00
scalexm
55ce7a2669 Re-use memory in program_clauses_for_env 2018-10-17 14:12:46 +02:00
scalexm
7ec8269d0a Implement InferenceTable::add_clauses 2018-10-17 14:09:39 +02:00
scalexm
b5d1aac883 Add tests for program_clauses_for_env 2018-10-17 14:09:39 +02:00
scalexm
a1931d31f7 Categorize chalk clauses 2018-10-17 14:09:39 +02:00
scalexm
e1926080db Add FromEnv for input types in the environment 2018-10-17 14:09:39 +02:00
scalexm
079b97c543 Implement the environment query 2018-10-17 14:09:38 +02:00
scalexm
81131804da Visit tys in program_clauses_for_env 2018-10-17 14:09:38 +02:00
scalexm
62df973293 Use Environment instead of ty::ParamEnv in chalk context 2018-10-17 14:09:38 +02:00
bors
1dceaddfbe Auto merge of #54946 - estebank:iterator, r=varkor
Add filtering option to `rustc_on_unimplemented` and reword `Iterator` E0277 errors

 - Add more targetting filters for arrays to `rustc_on_unimplemented` (Fix #53766)
 - Detect one element array of `Range` type, which is potentially a typo:
   `for _ in [0..10] {}` where iterating between `0` and `10` was intended.
   (Fix #23141)
 - Suggest `.bytes()` and `.chars()` for `String`.
 - Suggest borrowing or `.iter()` on arrays (Fix #36391)
 - Suggest using range literal when iterating on integers (Fix #34353)
 - Do not suggest `.iter()` by default (Fix #50773, fix #46806)
 - Add regression test (Fix #22872)
2018-10-17 11:47:53 +00:00
bors
cbbd70d4f2 Auto merge of #54941 - pnkfelix:issue-21232-reject-partial-reinit, r=nikomatsakis
reject partial init and reinit of uninitialized data

Reject partial initialization of uninitialized structured types (i.e. structs and tuples) and also reject partial *reinitialization* of such types.

Fix #54986

Fix #54499

cc #21232
2018-10-17 09:13:51 +00:00
Vadim Petrochenkov
350f9a2be5 resolve: Do not skip extern prelude during speculative resolution 2018-10-17 10:31:37 +03:00
Ralf Jung
c31819b3ff layout should not affect CTFE checks (outside of validation) 2018-10-17 09:24:43 +02:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
38f3ad41c0
Squash closure cast error into fn ptr cast error 2018-10-17 09:04:10 +02:00
bors
9d7f0da367 Auto merge of #54939 - pnkfelix:issue-54478-dont-prefer-dynamic-in-doc-tests, r=QuietMisdreavus
rustdoc: don't prefer dynamic linking in doc tests

This is an attempt to address the regression in #54478

This may be a case where the cure is worse than the disease, at least in the short term...

cc @alexcrichton
2018-10-17 06:42:15 +00:00
Roy Wellington Ⅳ
cbe98ec803 Move usableLocalStorage() above functions that make use of it 2018-10-16 22:15:27 -07:00
bors
37ba1071c6 Auto merge of #54671 - petrochenkov:extpre2015, r=nikomatsakis
resolve: Scale back hard-coded extern prelude additions on 2015 edition

https://github.com/rust-lang/rust/pull/54404 stabilized `feature(extern_prelude)` on 2015 edition, including the hard-coded parts not passed with `--extern`.
First of all, I'd want to confirm that this is intended stabilization, rather than a part of the "extended beta" scheme that's going to be reverted before releasing stable.
(EDIT: to clarify - this is a question, I'm \*asking\* for confirmation, rather than give it.)

Second, on 2015 edition extern prelude is not so fundamentally tied to imports and is a mere convenience, so this PR scales them back to the uncontroversial subset.
The "uncontroversial subset" means that if libcore is injected it brings `core` into prelude, if libstd is injected it brings `std` and `core` into prelude.
On 2015 edition this can be implemented through the library prelude (rather than hard-coding in the compiler) right now, I'll do it in a follow-up PR.

UPDATE: The change is done for both 2015 and 2018 editions now as discussed below.

Closes https://github.com/rust-lang/rust/issues/53166
2018-10-17 01:59:28 +00:00
Felix S. Klock II
233fdb4b14 Some new tests I added. 2018-10-17 02:33:03 +02:00