Commit graph

86047 commits

Author SHA1 Message Date
David Wood
375645abb8
Add by-value captured variable note on second use.
This commit adds a note that was present in the AST borrow checker when
closures are invoked more than once and have captured variables
by-value.
2018-10-18 18:21:14 +02:00
Sebastian Dröge
52cc6fde4b Stabilize slice::rchunks(), rchunks_mut(), rchunks_exact(), rchunk_exact_mut()
Fixes #55177
2018-10-18 18:51:56 +03:00
Sebastian Dröge
b08ca2958e Stabilize slice::chunks_exact() and slice::chunks_exact_mut()
Fixes #47115
2018-10-18 18:51:56 +03:00
David Wood
aa701154f0
Extend closure special-casing for generators.
This commit extends existing special-casing of closures to highlight the
use of variables within generators that are causing the generator to
borrow them.
2018-10-18 17:48:18 +02:00
Hideki Sekine
35bbcf14f4 [ci] fix tidy warning. 2018-10-19 00:36:24 +09:00
Raph Levien
f08db6bf1e Add must_use on copysign
Added a #[must_use] annotation on copysign, per review feedback.
2018-10-18 08:35:09 -07:00
jD91mZM2
51e2a63faf
Fix tidy checks 2018-10-18 16:58:09 +02:00
jD91mZM2
91c1b7a929
Revert liblibc submodule url 2018-10-18 16:54:43 +02:00
jD91mZM2
9d42b1bf04
Interpret shebangs on redox
This is no longer handled on the kernel side
2018-10-18 16:32:42 +02:00
Jeremy Soller
8c277d843c
Don't forget to close executable file 2018-10-18 16:30:44 +02:00
Jeremy Soller
b400005861
Remove unused type parameter 2018-10-18 16:29:45 +02:00
Jeremy Soller
8d2af4a545
Update to new system calls and enviromental variables 2018-10-18 16:29:42 +02:00
bors
121320d523 Auto merge of #54580 - sdroege:rchunks, r=SimonSapin
Add slice::rchunks(), rchunks_mut(), rchunks_exact() and rchunks_exact_mut()

These work exactly like the normal chunks iterators but start creating
chunks from the end of the slice.

----

The new iterators were motivated by a [comment](https://github.com/rust-lang/rust/issues/47115#issuecomment-424141121) by @DutchGhost.

~~~This currently includes the commits from https://github.com/rust-lang/rust/pull/54537 to not have to rename things twice or have merge conflicts. I'll force-push a new version of the branch ones those are in master.~~~

Also the stabilization tracking issue is just some number right now. I'll create the corresponding issue once this is reviewed and otherwise mergeable.

cc @DutchGhost
2018-10-18 12:47:31 +00:00
Ralf Jung
5dd0375ae0 turn casts-to-raw into a proper raw-reborrow; that is just cleaner 2018-10-18 13:11:09 +02:00
Aaron Power
518a5a4898 Updated RELEASES.md for 1.30.0 2018-10-18 12:06:52 +01:00
Ralf Jung
c885d8b41e don't do any work towards ptr provenance in const mode 2018-10-18 12:09:00 +02:00
Ralf Jung
2af11f7433 the tidy strikes again 2018-10-18 12:09:00 +02:00
Ralf Jung
bc647e9d33 add 'raw reference' to the machine hook, and use that in ptr-to-raw casts 2018-10-18 12:09:00 +02:00
Ralf Jung
24724efe1c miri: debug! print when we are leaving/entering a function
With a hack to exclude the topmost function for now, because that triggers an ICE...
2018-10-18 12:09:00 +02:00
Ralf Jung
abf6f4781f Forward entire ptr used for dealloaction to machine
Also, demote some debug! to trace!
2018-10-18 12:09:00 +02:00
Ralf Jung
1279a59c9f repeat after me: Clone, Copy, Debug 2018-10-18 12:08:23 +02:00
Ralf Jung
d61db93c15 also hook dereferencing 2018-10-18 12:08:23 +02:00
Ralf Jung
5f20b16934 eval_context: move getters together and add one for is_freeze 2018-10-18 12:08:23 +02:00
Ralf Jung
ce9cd15ce6 provide machine hooks for creating references and accessing memory 2018-10-18 12:08:22 +02:00
Ralf Jung
5b7185794f give machine more control over what counts as memory leak 2018-10-18 12:08:22 +02:00
Ralf Jung
21934c81f4 add support for storing extra data in an allocation 2018-10-18 12:08:22 +02:00
Ralf Jung
290db47ad6 comment on keeping validity in sync 2018-10-18 12:08:22 +02:00
bors
40123a1257 Auto merge of #54349 - GuillaumeGomez:no-example-lint, r=QuietMisdreavus
[rustdoc] Add lint for doc without codeblocks

Fixes #53805.

r? @QuietMisdreavus
2018-10-18 09:53:29 +00:00
Niko Matsakis
6e302ad76a resolve_lifetime.rs: rustfmt 2018-10-18 05:39:53 -04:00
varkor
40bba70823
Make warnings into errors 2018-10-18 10:35:01 +01:00
Sebastian Dröge
80a8e5c1f7 Add slice::rchunks(), rchunks_mut(), rchunks_exact() and rchunks_exact_mut()
These work exactly like the normal chunks iterators but start creating
chunks from the end of the slice.

See #55177 for the tracking issue
2018-10-18 10:38:05 +03:00
bors
af204b1f3e Auto merge of #55171 - kennytm:rollup, r=kennytm
Rollup of 18 pull requests

Successful merges:

 - #54646 (improve documentation on std:🧵:sleep)
 - #54933 (Cleanup the rest of codegen_llvm)
 - #54964 (Run both lldb and gdb tests)
 - #55016 (Deduplicate some code and compile-time values around vtables)
 - #55031 (Improve verify_llvm_ir config option)
 - #55050 (doc std::fmt: the Python inspiration is already mentioned in precedin…)
 - #55077 (rustdoc: Use dyn keyword when rendering dynamic traits)
 - #55080 (Detect if access to localStorage is forbidden by the user's browser)
 - #55090 (regression test for move out of borrow via pattern)
 - #55102 (resolve: Do not skip extern prelude during speculative resolution)
 - #55104 (Add test for #34229)
 - #55111 ([Rustc Book] Explain --cfg's arguments)
 - #55122 (Cleanup mir/borrowck)
 - #55127 (Remove HybridBitSet::dummy)
 - #55128 (Fix LLVMRustInlineAsmVerify return type mismatch)
 - #55142 (miri: layout should not affect CTFE checks (outside of validation))
 - #55151 (Cleanup nll)
 - #55161 ([librustdoc] Disable spellcheck for search field)
2018-10-18 07:02:11 +00:00
kennytm
1c090061e9
Rollup merge of #55111 - Havvy:rustc-book-cfg-examples, r=GuillaumeGomez
[Rustc Book] Explain --cfg's arguments

I removed this from the reference since it's rustc specific, and noticed it wasn't well documented on the page that should document it well. It does seem to go against the grain of one line per command line flag though.
2018-10-18 12:56:07 +08:00
kennytm
7d21252383
Rollup merge of #55161 - akxcv:rustdoc/disable-spellcheck, r=QuietMisdreavus,GuillaumeGomez
[librustdoc] Disable spellcheck for search field

This disables spellchecking for the search field in the rustdoc web interface.

As someone who uses Safari to browse through Rust docs, spellchecking gets really annoying.
2018-10-18 12:55:19 +08:00
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