about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-10-19Rollup merge of #55071 - oli-obk:const_cast_🍨, r=RalfJungkennytm-3/+79
Fix ICE and report a human readable error fixes #55063 r? @RalfJung
2018-10-18Auto merge of #54979 - estebank:path-unsized, r=nikomatsakisbors-1/+26
Custom E0277 diagnostic for `Path` r? @nikomatsakis we have a way to target `Path` exclusively, we need to identify the correct text to show to consider #23286 fixed.
2018-10-18Improve check to consider how value is used.David Wood-40/+15
2018-10-18Add by-value captured variable note on second use.David Wood-47/+140
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-18Extend closure special-casing for generators.David Wood-155/+228
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-18Auto merge of #54580 - sdroege:rchunks, r=SimonSapinbors-35/+1058
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-18Auto merge of #54349 - GuillaumeGomez:no-example-lint, r=QuietMisdreavusbors-29/+142
[rustdoc] Add lint for doc without codeblocks Fixes #53805. r? @QuietMisdreavus
2018-10-18Add slice::rchunks(), rchunks_mut(), rchunks_exact() and rchunks_exact_mut()Sebastian Dröge-35/+1058
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-18Rollup merge of #55111 - Havvy:rustc-book-cfg-examples, r=GuillaumeGomezkennytm-0/+5
[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-18Rollup merge of #55161 - akxcv:rustdoc/disable-spellcheck, ↵kennytm-0/+1
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-18Rollup merge of #55151 - ljedrz:cleanup_nll, r=estebankkennytm-54/+51
Cleanup nll - improve allocations - improve `format!` calls - improve common patterns
2018-10-18Rollup merge of #55142 - RalfJung:miri-uninhabited-enum, r=oli-obkkennytm-3/+0
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-18Rollup merge of #55128 - varkor:LLVMRustInlineAsmVerify-return-bool, r=rkruppekennytm-3/+3
Fix LLVMRustInlineAsmVerify return type mismatch Fixes https://github.com/rust-lang/rust/issues/54918. r? @rkruppe cc @levex
2018-10-18Rollup merge of #55127 - ljedrz:simplify_hybridbitset, r=matthewjasperkennytm-36/+14
Remove HybridBitSet::dummy This simplifies some of the `HybridBitSet` code. cc @nnethercote
2018-10-18Rollup merge of #55122 - ljedrz:cleanup_mir_borrowck, r=Mark-Simulacrumkennytm-252/+228
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-18Rollup merge of #55104 - estebank:addtest, r=alexcrichtonkennytm-0/+16
Add test for #34229 Fix #34229.
2018-10-18Rollup merge of #55102 - petrochenkov:trextra, r=nikomatsakiskennytm-4/+30
resolve: Do not skip extern prelude during speculative resolution Fixes https://github.com/rust-lang/rust/issues/54665
2018-10-18Rollup merge of #55090 - pnkfelix:issue-54597-regression-test, r=estebankkennytm-0/+34
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-18Rollup merge of #55080 - thanatos:fix-localstorage-crash, r=GuillaumeGomezkennytm-2/+20
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-18Rollup merge of #55077 - ollie27:rustdoc_dyn_trait, r=QuietMisdreavuskennytm-4/+7
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-18Rollup merge of #55050 - tshepang:repetition, r=steveklabnikkennytm-2/+1
doc std::fmt: the Python inspiration is already mentioned in precedin… …g paragraph
2018-10-18Rollup merge of #55031 - nikic:verify_llvm_ir, r=Mark-Simulacrumkennytm-8/+14
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-18Rollup merge of #55016 - oli-obk:vtables💥_vtables_everywhere, r=RalfJungkennytm-19/+36
Deduplicate some code and compile-time values around vtables r? @RalfJung
2018-10-18Rollup merge of #54964 - tromey:run-both-gdb-and-lldb-tests, r=nikomatsakiskennytm-62/+183
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-18Rollup merge of #54933 - ljedrz:cleanup_codegen_llvm/misc, r=varkorkennytm-88/+83
Cleanup the rest of codegen_llvm - improve common patterns - convert string literals with `to_owned` - remove explicit `return`s - whitespace & formatting improvements
2018-10-18Rollup merge of #54646 - vn971:fix_std_thread_sleep, r=frewsxcvkennytm-10/+14
improve documentation on std::thread::sleep
2018-10-17Auto merge of #55134 - davidtwco:issue-55118, r=pnkfelixbors-2966/+928
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[librustdoc] Disable spellcheck for search fieldAlexander Komarov-0/+1
2018-10-17nll: improve common patternsljedrz-35/+32
2018-10-17nll: improve format operationsljedrz-9/+9
2018-10-17nll: improve allocationsljedrz-10/+10
2018-10-17mir/borrowck: remove a redundant cloneljedrz-3/+1
2018-10-17mir/borrowck: remove redundant returnsljedrz-6/+6
2018-10-17mir/borrowck: deduplicate assignments and returnsljedrz-6/+2
2018-10-17mir/borrowck: a few string tweaksljedrz-18/+16
2018-10-17mir/borrowck: simplify common patternsljedrz-219/+203
2018-10-17Auto merge of #54946 - estebank:iterator, r=varkorbors-45/+559
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-17Auto merge of #54941 - pnkfelix:issue-21232-reject-partial-reinit, ↵bors-206/+1689
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-17resolve: Do not skip extern prelude during speculative resolutionVadim Petrochenkov-4/+30
2018-10-17layout should not affect CTFE checks (outside of validation)Ralf Jung-3/+0
2018-10-17Squash closure cast error into fn ptr cast errorOliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer-4/+1
2018-10-17Auto merge of #54939 - ↵bors-3/+2
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-16Move usableLocalStorage() above functions that make use of itRoy Wellington Ⅳ-15/+15
2018-10-17Auto merge of #54671 - petrochenkov:extpre2015, r=nikomatsakisbors-31/+33
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-17Some new tests I added.Felix S. Klock II-0/+1308
2018-10-16Auto merge of #55093 - nikomatsakis:nll-issue-54574-multisegment-path, ↵bors-848/+1260
r=pnkfelix nll type annotations in multisegment path This turned out to be sort of tricky. The problem is that if you have a path like ``` <Foo<&'static u32>>::bar ``` and it comes from an impl like `impl<T> Foo<T>` then the self-type the user gave doesn't *directly* map to the substitutions that the impl wants. To handle this, then, we have to preserve not just the "user-given substs" we used to do, but also a "user-given self-ty", which we have to apply later. This PR makes those changes. It also removes the code from NLL relate-ops that handled canonical variables and moves to use normal inference variables instead. This simplifies a few things and gives us a bit more flexibility (for example, I predict we are going to have to start normalizing at some point, and it would be easy now). r? @matthewjasper -- you were just touching this code, do you feel comfortable reviewing this? Fixes #54574
2018-10-17Update output for borrowck=migrate compare mode.David Wood-2958/+920
This commit updates the test output for the updated NLL compare mode that uses `-Z borrowck=migrate` rather than `-Z borrowck=mir`. The previous commit changes `compiletest` and this commit only updates `.nll.stderr` files.
2018-10-17Change NLL compare mode to borrowck=migrate.David Wood-1/+1
This commit changes the NLL compare mode to pass `-Z borrowck=migrate` rather than `-Z borrowck=nll` to better test what will be deployed. It does not include the test output updates, as separation of these commits makes reviewing simpler.
2018-10-17Don't buffer lints.David Wood-7/+7
When lints are emitted from the AST borrow checker, they do not signal an error as it is not known at that time whether, due to attributes, that lint will error or warn. This means that when lints are buffered in the MIR they will always be downgraded, as the AST borrowck will not have been marked as having errored, even if a lint was upgraded to an error after being emitted from the AST borrowck. The simple solution to this is to not buffer any lints from the MIR borrowck.
2018-10-16add ~ERROR annotationsNiko Matsakis-0/+12