summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-07-181.27.2 ReleaseMark Rousskov-1/+1
2018-07-18add test for #52213Ariel Ben-Yehuda-0/+24
2018-07-18add a debug log for more MC failuresAriel Ben-Yehuda-3/+6
I don't see why MC should fail on well-formed code, so it might be a better idea to just add a `delay_span_bug` there (anyone remember the `cat_expr Errd` bug from the 1.0 days?). However, I don't think this is a good idea to backport a new delay_span_bug into stable and this code is going away soon-ish anyway.
2018-07-18use the adjusted type for cat_pattern in tuple patternsAriel Ben-Yehuda-1/+1
This looks like a typo introduced in #51686. Fixes #52213.
2018-07-07Release notes 1.27.1Mark Rousskov-1/+1
2018-07-07Apply security patch for rustdocsteveklabnik-1/+7
CVE number has not yet been assigned, patch made by steveklabnik.
2018-07-03use `pat_ty_adjusted` from `expr_use_visitor` to type of argumentsNiko Matsakis-2/+45
2018-07-03rename `pat_ty` to `pat_ty_adjusted` for clarityNiko Matsakis-4/+4
2018-06-18Dummy commit to attempt to recreate prerelease artifactsMark Simulacrum-0/+1
2018-06-18Stable release 1.27.0Mark Simulacrum-3/+3
2018-06-12[BETA] Update CargoEric Huss-0/+0
- rust-lang/cargo#5577 - revert rust-lang/cargo#5461 (Support crate renames in `cargo metadata`) - rust-lang/cargo#5567 - Copy `--all-features` request to all workspace members
2018-06-08Deduplicate and fix a testOliver Schneider-48/+11
2018-06-08Do not promote union field accessesOliver Schneider-4/+55
2018-06-08Deny #[cfg] and #[cfg_attr] on generic parameters.kennytm-3/+124
2018-06-08Revert "Auto merge of #49719 - mark-i-m:no_sep, r=petrochenkov"Pietro Albini-72/+156
This reverts commit d6ba1b9b021c408fcad60ee52acf8af5e1b2eb00, reversing changes made to 8de5353f75dcde04abe947e0560dc5edd861cf3a.
2018-06-03typeck: Do not pass the field check on field errorDan Robertson-3/+82
If a struct pattern has a field error return an error.
2018-06-03change `PointerKind::Implicit` to a noteNiko Matsakis-68/+139
`PointerKind` is included in `LoanPath` and hence forms part of the equality check; this led to having two unequal paths that both represent `*x`, depending on whether the `*` was inserted automatically or explicitly. Bad mojo. The `note` field, in contrast, is intended more-or-less primarily for this purpose of adding extra data.
2018-06-03Fix build backporting #51052Pietro Albini-1/+1
2018-06-03pacify the mercilous tidyNiko Matsakis-1/+2
2018-06-03restore emplacement syntax (obsolete)Niko Matsakis-6/+97
2018-06-03prohibit turbofish in `impl Trait` methodsNiko Matsakis-31/+75
2018-06-03[beta] Fix naming conventions for new lintsVadim Petrochenkov-49/+54
2018-06-03fix @!has conditions in pub-use-extern-macros testQuietMisdreavus-3/+3
2018-06-03update "pub-use-extern-macros" test to hide the regular import statementQuietMisdreavus-0/+1
2018-06-03rustdoc: hide macro export statements from docsQuietMisdreavus-0/+7
2018-06-03Make sure the float comparison output is consistent with the expectedkennytm-7/+71
behavior when NaN is involved.
2018-05-25Beta branch does not have const fn `subsec_millis` yetOliver Schneider-14/+1
2018-05-24Always mark unstable const fn as not constOliver Schneider-7/+2
2018-05-24Enforce stability of const fn in promotedsOliver Schneider-16/+130
2018-05-21Rename ret_ty to declared_ret_tyleonardo.yvens-4/+4
2018-05-21Fix `fn main() -> impl Trait` for non-`Termination` traitleonardo.yvens-4/+41
Fixes #50595. This bug currently affects stable. Why I think we can go for hard error: - It will in stable for at most one cycle and there is no legitimate reason to abuse it, nor any known uses in the wild. - It only affects `bin` crates (which have a `main`), so there is little practical difference between a hard error or a deny lint, both are a one line fix. The fix was to just unshadow a variable. Thanks @nikomatsakis for the mentoring! r? @nikomatsakis
2018-05-21Add doc comments mentioning unspecified behaviour upon exhaustionvarkor-1/+10
2018-05-21Stabilise into_innervarkor-0/+13
2018-05-21Stabilise inclusive_range_methodsvarkor-16/+3
2018-05-15Fix self referential impl Trait substitutionsleonardo.yvens-2/+42
A high impact bug because a lot of common traits use a `Self` substitution by default. Should be backported to beta. There was a check for this which wasn't catching all cases, it was made more robust. Fixes #49376 Fixes #50626 r? @petrochenkov
2018-05-14Update stdsimd module to include ↵steveklabnik-0/+0
https://github.com/rust-lang-nursery/stdsimd/commit/a19ca1cd91cf97777af8268a6136bd2e4648e189
2018-05-14rustc: don't trip an assertion for enums with present but uninhabited variants.Eduard-Mihai Burtescu-0/+20
2018-05-14typeck: Save the index of private fieldsDan Robertson-1/+62
Save the index of all fields regardless of their visibility. Problems could occur later when attempting to index fields in error recovery if they are not inserted.
2018-05-14Introduce OperandValue::nontemporal_store and use it in the intrinsicsAnthony Ramine-78/+65
We use a new MemFlags bitflags type to merge some store code paths.
2018-05-14Introduce OperandValue::volatile_store and use it in the intrinsicsAnthony Ramine-28/+35
Fixes #50371.
2018-05-13Auto merge of #50708 - pietroalbini:beta-backports, r=alexcrichtonbors-64/+188
[beta] Process backports * #50622: rustc: leave space for fields of uninhabited types to allow partial initialization. * #50643: typeck: Fix ICE with struct update syntax r? @alexcrichton
2018-05-13typeck: Fix ICE with struct update syntaxDan Robertson-18/+64
If check_expr_struct_fields fails, do not continue to record update. If we continue to record update, the struct may cause us to ICE later on indexing a field that may or may not exist.
2018-05-13rustc: leave space for fields of uninhabited types to allow partial ↵Eduard-Mihai Burtescu-46/+124
initialization.
2018-05-12[BETA] Update CargoEric Huss-0/+0
Regression fixes: - rust-lang/cargo#5510 `cargo rustc` broken for tests in project with bins - rust-lang/cargo#5523 (#50640) shared proc-macro dependency built incorrectly
2018-05-10std: Avoid `ptr::copy` if unnecessary in `vec::Drain`Alex Crichton-3/+5
This commit is spawned out of a performance regression investigation in #50496. In tracking down this regression it turned out that the `expand_statements` function in the compiler was taking quite a long time. Further investigation showed two key properties: * The function was "fast" on glibc 2.24 and slow on glibc 2.23 * The hottest function was memmove from glibc Combined together it looked like glibc gained an optimization to the memmove function in 2.24. Ideally we don't want to rely on this optimization, so I wanted to dig further to see what was happening. The hottest part of `expand_statements` was `Drop for Drain` in the call to `splice` where we insert new statements into the original vector. This *should* be a cheap operation because we're draining and replacing iterators of the exact same length, but under the hood memmove was being called a lot, causing a slowdown on glibc 2.23. It turns out that at least one of the optimizations in glibc 2.24 was that `memmove` where the src/dst are equal becomes much faster. [This program][prog] executes in ~2.5s against glibc 2.23 and ~0.3s against glibc 2.24, exhibiting how glibc 2.24 is optimizing `memmove` if the src/dst are equal. And all that brings us to what this commit itself is doing. The change here is purely to `Drop for Drain` to avoid the call to `ptr::copy` if the region being copied doesn't actually need to be copied. For normal usage of just `Drain` itself this check isn't really necessary, but because `Splice` internally contains `Drain` this provides a nice speed boost on glibc 2.23. Overall this should fix the regression seen in #50496 on glibc 2.23 and also fix the regression on Windows where `memmove` looks to not have this optimization. Note that the way `splice` was called in `expand_statements` would cause a quadratic number of elements to be copied via `memmove` which is likely why the tuple-stress benchmark showed such a severe regression. Closes #50496 [prog]: https://gist.github.com/alexcrichton/c05bc51c6771bba5ae5b57561a6c1cd3
2018-05-09Auto merge of #50522 - alexcrichton:beta-next, r=alexcrichtonbors-59/+62
[beta] Prepare the 1.27.0 beta release This commit prepares the 1.27.0 beta release by doing: * Update the release channel to `beta` * Update Cargo's submodule * Update `stdsimd`'s submodule * Update the bootstrap compiler to the freshly minted 1.26.0 stable release
2018-05-08[beta] Prepare the 1.27.0 beta releaseAlex Crichton-59/+62
This commit prepares the 1.27.0 beta release by doing: * Update the release channel to `beta` * Update Cargo's submodule * Update `stdsimd`'s submodule * Update the bootstrap compiler to the freshly minted 1.26.0 stable release * Don't attempt to verify clippy/miri build
2018-05-07Auto merge of #50305 - GuillaumeGomez:fix-mod-stackoverflow, r=QuietMisdreavusbors-9/+47
Prevent infinite recursion of modules Fixes #50196. r? @QuietMisdreavus
2018-05-07Auto merge of #50454 - Manishearth:edition-preview-fixes, r=alexcrichtonbors-24/+53
Various edition preview fixes Implement a bunch of things discussed in the meeting.
2018-05-07Auto merge of #50487 - nikic:heap-manually-drop, r=Gankrobors-6/+5
Use ManuallyDrop instead of Option in BinaryHeap Hole implementation The Option is always Some until drop, where it becomes None. Make this more explicit and avoid unwraps by using ManuallyDrop. This change should be performance-neutral as LLVM already optimizes the unwraps away in the inlined code. However I've seen this pattern copied from here to other crates where it is not optimized away, so I think it would be good to change it.