about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2019-02-24hir: remove NodeId from GenericParamljedrz-46/+46
2019-02-24privacy: HirIdify ObsoleteVisiblePrivateTypesVisitorljedrz-6/+6
2019-02-24passes: HirIdify Idljedrz-16/+16
2019-02-24hir: remove NodeId from Lifetime and Tyljedrz-82/+71
2019-02-24hir: impl Display for HirIdljedrz-0/+6
2019-02-24Auto merge of #58232 - ljedrz:HirIdification_continued, r=Zoxcbors-263/+258
HirId-ify intravisit A big step towards https://github.com/rust-lang/rust/pull/57578. This affects mostly `hir::{collector, intravisit}` and `rustc::lint`.
2019-02-23Auto merge of #57051 - Eijebong:parking_lot, r=nikomatsakisbors-4/+4
Update parking_lot to 0.7 Unfortunately this'll dupe parking_lot until the data_structures crate is published and be updated in rls in conjunction with crossbeam-channel
2019-02-23Auto merge of #58661 - ehuss:update-cargo, r=alexcrichtonbors-0/+0
Update cargo 5 commits in b33ce7fc9092962b0657b4c25354984b5e5c47e4..5c6aa46e6f28661270979696e7b4c2f0dff8628f 2019-02-19 18:42:50 +0000 to 2019-02-22 19:32:35 +0000 - convert unused doc comments to regular comments (rust-lang/cargo#6692) - Add more about system library on whether to keep Cargo.lock (rust-lang/cargo#6685) - Warn when excluding non-existing packages (rust-lang/cargo#6679) - Incremental profile cleanup. (rust-lang/cargo#6688) - Various cosmetic improvements (rust-lang/cargo#6687)
2019-02-23Auto merge of #58669 - Centril:rollup, r=Centrilbors-765/+977
Rollup of 16 pull requests Successful merges: - #58100 (Transition librustdoc to Rust 2018) - #58122 (RangeInclusive internal iteration performance improvement.) - #58199 (Add better error message for partial move) - #58227 (Updated RELEASES.md for 1.33.0) - #58353 (Check the Self-type of inherent associated constants) - #58453 (SGX target: fix panic = abort) - #58476 (Remove `LazyTokenStream`.) - #58526 (Special suggestion for illegal unicode curly quote pairs) - #58595 (Turn duration consts into associated consts) - #58609 (Allow Self::Module to be mutated.) - #58628 (Optimise vec![false; N] to zero-alloc) - #58643 (Don't generate minification variables if minification disabled) - #58648 (Update tests to account for cross-platform testing and miri.) - #58654 (Do not underflow after resetting unmatched braces count) - #58658 (Add expected/provided byte alignments to validation error message) - #58667 (Reduce Miri-related Code Repetition `like (n << amt) >> amt`) Failed merges: r? @ghost
2019-02-23Auto merge of #58655 - kennytm:download-docker-cache-with-timeout, ↵bors-1/+1
r=alexcrichton Added a connection timeout and speed threshold when downloading the Docker cache This is an attempt to fix one possible cause of #56112. Similar to #52846, this changed the download docker-cache command to fail if it cannot connect or falls below 10 bytes/s after 30 seconds, so it could be retried sooner.
2019-02-23Rollup merge of #58667 - kenta7777:reduce-mir-code-repetition, r=petrochenkovMazdak Farrokhzad-2/+2
Reduce Miri-related Code Repetition `like (n << amt) >> amt` This Pull Request fixes a part of [#49937](https://github.com/rust-lang/rust/issues/49937).
2019-02-23Rollup merge of #58658 - pmccarter:align_msg, r=matthewjasperMazdak Farrokhzad-8/+12
Add expected/provided byte alignments to validation error message Fixes #58617
2019-02-23Rollup merge of #58654 - estebank:underflow, r=nikomatsakisMazdak Farrokhzad-4/+8
Do not underflow after resetting unmatched braces count Fix #58638. r? @oli-obk
2019-02-23Rollup merge of #58648 - pnkfelix:issue-23926-update-tests, r=nikomatsakisMazdak Farrokhzad-12/+24
Update tests to account for cross-platform testing and miri. Fix #23926
2019-02-23Rollup merge of #58643 - GuillaumeGomez:extra-variables, r=ManishearthMazdak Farrokhzad-1/+5
Don't generate minification variables if minification disabled If the minification is disabled, there is no sense having those variables. r? @QuietMisdreavus
2019-02-23Rollup merge of #58628 - RReverser:optimise-vec-false, r=oli-obkMazdak Farrokhzad-0/+1
Optimise vec![false; N] to zero-alloc Nowadays booleans have a well-defined representation, so there is no reason not to optimise their allocation.
2019-02-23Rollup merge of #58609 - gabi-250:mutable-refs, r=oli-obkMazdak Farrokhzad-10/+10
Allow Self::Module to be mutated. This only changes `&Self::Module` to `&mut Self::Module` in a couple of places. `codegen_allocator` and `write_metadata` from `ExtraBackendMethods` mutate the underlying LLVM module. As such, it makes sense for these two functions to receive a mutable reference to the module (as opposed to an immutable one). I am trying to implement `codegen_allocator` for my backend, and I need to be able to mutate `Self::Module`: https://github.com/rust-lang/rust/blob/f66e4697ae286985ddefc53c3a047614568458bb/src/librustc_codegen_ssa/traits/backend.rs#L41 Modifying the module in `codegen_allocator`/`write_metadata` is not a problem for the LLVM backend, because [ModuleLlvm](https://github.com/rust-lang/rust/blob/master/src/librustc_codegen_llvm/lib.rs#L357) contains a raw pointer to the underlying LLVM module, so it can easily be mutated through FFI calls. I am trying to avoid interior mutability and `unsafe` as much as I can. What do you think? Does this change make sense, or is there a reason why this should stay the way it is?
2019-02-23Rollup merge of #58595 - stjepang:make-duration-consts-associated, r=oli-obkMazdak Farrokhzad-19/+52
Turn duration consts into associated consts As suggested in https://github.com/rust-lang/rust/issues/57391#issuecomment-459658236, I'm moving `Duration` constants (`SECOND`, `MILLISECOND` and so on; currently behind unstable `duration_constants` feature) into the `impl Duration` block. cc @frewsxcv @SimonSapin
2019-02-23Rollup merge of #58526 - pmccarter:master, r=estebankMazdak Farrokhzad-9/+63
Special suggestion for illegal unicode curly quote pairs Fixes #58436 Did not end up expanding the error message span to include the full string literal since I figured the start of the token was the issue, while the help suggestion span would include up to the closing quotation mark. The look ahead logic does not affect the reader position, not sure if that is an issue (if eg it should still continue to parse after the closing quote without erroring out).
2019-02-23Rollup merge of #58476 - nnethercote:rm-LazyTokenStream, r=petrochenkovMazdak Farrokhzad-226/+168
Remove `LazyTokenStream`. `LazyTokenStream` was added in #40939. Perhaps it was an effective optimization then, but no longer. This PR removes it, making the code both simpler and faster. r? @alexcrichton
2019-02-23Rollup merge of #58453 - jethrogb:jb/sgx-panic-abort, r=nagisaMazdak Farrokhzad-2/+4
SGX target: fix panic = abort What is the difference between `no_mangle` and `rustc_std_internal_symbol`?
2019-02-23Rollup merge of #58353 - matthewjasper:typeck-pattern-constants, r=arielb1Mazdak Farrokhzad-30/+74
Check the Self-type of inherent associated constants r? @arielb1
2019-02-23Rollup merge of #58199 - clintfred:partial-move-err-msg, r=estebankMazdak Farrokhzad-12/+18
Add better error message for partial move closes #56657 r? @davidtwco
2019-02-23Rollup merge of #58122 - matthieu-m:range_incl_perf, r=dtolnayMazdak Farrokhzad-6/+81
RangeInclusive internal iteration performance improvement. Specialize `Iterator::try_fold` and `DoubleEndedIterator::try_rfold` to improve code generation in all internal iteration scenarios. This changes brings the performance of internal iteration with `RangeInclusive` on par with the performance of iteration with `Range`: - Single conditional jump in hot loop, - Unrolling and vectorization, - And even Closed Form substitution. Unfortunately, it only applies to internal iteration. Despite various attempts at stream-lining the implementation of `next` and `next_back`, LLVM has stubbornly refused to optimize external iteration appropriately, leaving me with a choice between: - The current implementation, for which Closed Form substitution is performed, but which uses 2 conditional jumps in the hot loop when optimization fail. - An implementation using a `is_done` boolean, which uses 1 conditional jump in the hot loop when optimization fail, allowing unrolling and vectorization, but for which Closed Form substitution fails. In the absence of any conclusive evidence as to which usecase matters most, and with no assurance that the lack of Closed Form substitution is not indicative of other optimizations being foiled, there is no way to pick one implementation over the other, and thus I defer to the statu quo as far as `next` and `next_back` are concerned.
2019-02-23Fix tidy check errorsHirokazu Hata-10/+45
2019-02-23Transition librustdoc to 2018 editionHirokazu Hata-423/+419
2019-02-23reduce an mir code repetition like (n << amt) >> amtkenta7777-2/+2
2019-02-22#58658 bless after line split for tidyPatrick McCarter-5/+5
2019-02-22tidy line length override #58617Patrick McCarter-0/+1
2019-02-22Update cargoEric Huss-0/+0
2019-02-22Change byte align message wording #58617Patrick McCarter-3/+3
2019-02-22Auto merge of #58644 - Centril:rollup, r=Centrilbors-201/+533
Rollup of 17 pull requests Successful merges: - #57656 (Deprecate the unstable Vec::resize_default) - #58059 (deprecate before_exec in favor of unsafe pre_exec) - #58064 (override `VecDeque::try_rfold`, also update iterator) - #58198 (Suggest removing parentheses surrounding lifetimes) - #58431 (fix overlapping references in BTree) - #58555 (Add a note about 2018e if someone uses `try {` in 2015e) - #58588 (remove a bit of dead code) - #58589 (cleanup macro after 2018 transition) - #58591 (Dedup a rustdoc diagnostic construction) - #58600 (fix small documentation typo) - #58601 (Search for target_triple.json only if builtin target not found) - #58606 (Docs: put Future trait into spotlight) - #58607 (Fixes #58586: Make E0505 erronous example fail for the 2018 edition) - #58615 (miri: explain why we use static alignment in ref-to-place conversion) - #58620 (introduce benchmarks of BTreeSet.intersection) - #58621 (Update miri links) - #58632 (Make std feature list sorted) Failed merges: r? @ghost
2019-02-22Invalid byte alignment expected/provided in message #58617Patrick McCarter-7/+10
2019-02-22Do not underflow after resetting unmatched braces countEsteban Küber-4/+8
Fix #58638.
2019-02-23Added a connection timeout and speed threshold when downloading the Docker cachekennytm-1/+1
2019-02-22Switch from error patterns to `//~ ERROR` markers.Felix S. Klock II-8/+11
AFAICT, we do not have the same const-eval issues that we used to when rust-lang/rust#23926 was filed. (Probably because of the switch to miri for const-evaluation.)
2019-02-22Make target pointer-width specific variants of (very old) ↵Felix S. Klock II-4/+13
huge-array-simple.rs test. (and now unignore the test since it shouldn't break tests of cross-compiles anymore.)
2019-02-22Rollup merge of #58632 - matklad:reduce-contention, r=CentrilMazdak Farrokhzad-23/+26
Make std feature list sorted This helps to avoid merge conflicts when concurrent PRs append features to the end of the list.
2019-02-22Rollup merge of #58621 - phansch:update_miri_links, r=oli-obkMazdak Farrokhzad-1/+1
Update miri links Miri has been moved to `rust-lang` a couple of days ago.
2019-02-22Rollup merge of #58620 - ssomers:btreeset_intersection_benchmarks, r=KodrAusMazdak Farrokhzad-0/+89
introduce benchmarks of BTreeSet.intersection 16 tests combining 4 kinds of contents with different sizes exposing edge cases. The ones with asymmetric sizes are addressed by https://github.com/rust-lang/rust/pull/58577. The pos_vs_neg cases seems (are were meant to be) the same as the neg_vs_pos case (same thing, reverse order) but reality shows a surprsing 25% difference.
2019-02-22Rollup merge of #58615 - RalfJung:ref-to-place-alignment, r=oli-obkMazdak Farrokhzad-2/+8
miri: explain why we use static alignment in ref-to-place conversion @eddyb @oli-obk do you think this makes sense? Or should we use the run-time alignment (`align_of_val`)? I am a bit worried about custom DSTs, but that affects way more areas of Miri so I'd ignore them for now. r? @oli-obk
2019-02-22Rollup merge of #58607 - gurgalex:fail_E0505_for_2018_edition, r=matthewjasperMazdak Farrokhzad-15/+22
Fixes #58586: Make E0505 erronous example fail for the 2018 edition The original example worked for 2015, but not the 2018 edition of Rust. Borrowing the moved value after ownership is transferred seems required for 2018. [this](https://github.com/rust-lang/rust/compare/rust-lang:f66e469...gurgalex:b2a02c8#diff-4ca866aea4a6efecd732f1975faaad88R1564) line though is correct for 2018, but not for the 2015 edition. Fix #58586
2019-02-22Rollup merge of #58606 - stjepang:put-future-into-spotlight, r=alexcrichtonMazdak Farrokhzad-0/+1
Docs: put Future trait into spotlight If a function returns a type that implements `Future`, there should be a small "i" symbol next to it indicating the return type implements an important trait.
2019-02-22Rollup merge of #58601 - gnzlbg:json_error, r=oli-obkMazdak Farrokhzad-6/+16
Search for target_triple.json only if builtin target not found Before this commit, if the builtin target was found, but an error happened when instantiating it (e.g. validating the target specification file failed, etc.), then we ignored those errors and proceeded to try to find a `target_triple.json` file, and if that failed, reported that as an error. With this commit, if rustc is supposed to provide the builtin target, and something fails while instantiating it, that error will get properly propagated. r? @oli-obk
2019-02-22Rollup merge of #58600 - llogiq:documentation-tests-typo, r=frewsxcvMazdak Farrokhzad-1/+1
fix small documentation typo Thanks to @stjepang for catching my mistake.
2019-02-22Rollup merge of #58591 - dwijnand:dedup-a-rustdoc-diag-construction, ↵Mazdak Farrokhzad-22/+8
r=GuillaumeGomez Dedup a rustdoc diagnostic construction None
2019-02-22Rollup merge of #58589 - matklad:remove-hack, r=petrochenkovMazdak Farrokhzad-4/+2
cleanup macro after 2018 transition We can now use `?`
2019-02-22Rollup merge of #58588 - matklad:dead-code, r=petrochenkovMazdak Farrokhzad-6/+0
remove a bit of dead code [Six years](https://github.com/rust-lang/rust/commit/5dc5efefd47527067ab5b7862d89a99da4824f49) seem to be a long enough transition period :rofl:
2019-02-22Rollup merge of #58555 - scottmcm:try-2015, r=CentrilMazdak Farrokhzad-0/+6
Add a note about 2018e if someone uses `try {` in 2015e Inspired by https://github.com/rust-lang/rust/issues/58491, where a `try_blocks` example was accidentally run in 2015, which of course produces a bunch of errors. What's the philosophy about gating for this? The keyword is stably a keyword in 2018, so I haven't gated it for now but am not mentioning what the keyword _does_. Let me know if I should do differently. Resolves #53672
2019-02-22Rollup merge of #58431 - RalfJung:btree, r=Mark-SimulacrumMazdak Farrokhzad-15/+42
fix overlapping references in BTree This fixes two kinds of overlapping references in BTree (both found by running the BTree test suite in Miri). In `into_slices_mut`, we did `k.into_key_slice_mut()` followed by `self.into_val_slice_mut()` (where `k` is a copy of `self`). Calling `into_val_slice_mut` calls `self.len()`, which creates a shared reference to `NodeHeader`, which unfortunately (due to padding) overlaps with the mutable reference returned by `into_key_slice_mut`. Hence the key slice got (partially) invalidated. The fix is to avoid creating an `&NodeHeader` after the first slice got created. In the iterators, we used to first create the references that will be returned, and then perform the walk on the tree. Walking the tree creates references (such as `&mut InternalNode`) that overlap with all of the keys and values stored in a pointer; in particular, they overlap with the references the iterator will later return. This is fixed by reordering the operations of walking the tree and obtaining the inner references. The test suite still passes (and it passes in Miri now!), but there is a lot of code here that I do not understand...