summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2016-08-14prohibit splitting literal patternsAriel Ben-Yehuda-1/+85
Before PR #32202, check_match tended to report bogus errors or ICE when encountering a pattern that split a literal, e.g. ```Rust match foo { "bar" => {}, &_ => {} } ``` That PR fixed these issues, but trans::_match generates bad code when it encounters these matches. MIR trans has that fixed, but it is waiting for 6 weeks in beta. Report an error when encountering these instead. Fixes issue #35044.
2016-08-08move `during_closure_kind_inference` flag to mcNiko Matsakis-22/+37
We used to put the flag on the `InferCtxt`.
2016-08-08Avoid writing a temporary closure kindNiko Matsakis-50/+105
We used to write a temporary closure kind into the inference table, but this could lead to obligations being incorrectled resolved before inference had completed. This result could then be cached, leading to further trouble. This patch avoids writing any closure kind until the computation is complete. Fixes #34349.
2016-08-01Add regression test.Jeffrey Seyfried-0/+23
2016-08-01Avoid processing `feature`s on unconfigured crates.Jeffrey Seyfried-1/+1
2016-08-01Add regression testJeffrey Seyfried-1/+7
2016-08-01Make `ext::base::expr_to_string` work correctly with `include!` macro ↵Jeffrey Seyfried-0/+6
invocations
2016-08-01Just pass in NodeId to FunctionContext::new instead of looking it up.Luqman Aden-10/+54
2016-07-26tyencode: Make sure that projection bounds are handled in stable order.Michael Woerister-1/+74
2016-07-21Backport fix for #34209 to betaVadim Petrochenkov-1/+51
2016-07-19Update jemalloc to include a fix for startup issues on OSX 10.12Mike Hommey-0/+0
This fixes jemalloc/jemalloc#140 in the version used by the rust compiler. Fixes #34674
2016-07-06Bump back the Cargo dateAlex Crichton-1/+1
This was moved forward by accident
2016-07-05Try to fix a test on betaAlex Crichton-1/+0
2016-07-05Use lazy range in gdb pretty printersLoïc Damien-2/+6
2016-07-05Bootstrap from the 1.10.0 releaseAlex Crichton-3/+3
2016-07-05Auto merge of #34647 - TimNN:compiler-rt-ios-workaround, r=alexcrichtonbors-0/+0
Update compiler-rt with iOS linking warnings workaround Closes #34617. r? @alexcrichton
2016-07-04Auto merge of #34594 - willcrichton:master, r=nrcbors-2/+117
Move LLVM cleanup so modules are accessible during `after_llvm` phase Fix for #34432. Also added a new phase controller `after_compilation_done` that gets called at the very end (i.e. after linking) at the suggestion of @nrc. The added test will segfault if the modules get deallocated too early, so it ensures the LLVM is not prematurely cleaned up. r? @nrc
2016-07-04Auto merge of #34646 - michaelwoerister:warn-blacklisted-lldb, r=alexcrichtonbors-0/+11
Make rust-lldb warn about unsupported versions of LLDB r? @alexcrichton
2016-07-04Make rust-lldb warn about unsupported versions of LLDBMichael Woerister-0/+11
2016-07-04Auto merge of #34639 - dzamlo:master, r=michaelwoeristerbors-7/+79
Use lazy iterator in vec/slice gdb pretty printers
2016-07-04Use lazy iterator in vec/slice gdb pretty printersLoïc Damien-7/+79
2016-07-04update compiler-rt with iOS linking warnings workaroundTim Neumann-0/+0
closes #34617.
2016-07-04Auto merge of #34602 - Xmasreturns:patch-4, r=steveklabnikbors-0/+6
Update glossary.md Added a brief description of Combinators
2016-07-04Auto merge of #34590 - pwlandoll:master, r=apasel422bors-2/+1
Issue #34076: Removing reference to removed path.prefix() function In the documentation for `std::path::Path`, there is a [reference](https://doc.rust-lang.org/std/path/struct.Path.html#method.is_absolute) to the `path.prefix()` function which has since been removed. The offending reference is now also removed. First pull request, feedback welcome! r? @steveklabnik
2016-07-04Auto merge of #34638 - zackmdavis:if_let_over_none_empty_block_arm, r=jseyfriedbors-349/+215
prefer `if let` to match with `None => {}` arm in some places This is a spiritual succesor to #34268 / 8531d581, in which we replaced a number of matches of None to the unit value with `if let` conditionals where it was judged that this made for clearer/simpler code (as would be recommended by Manishearth/rust-clippy's `single_match` lint). The same rationale applies to matches of None to the empty block. ---- r? @jseyfried
2016-07-04Renamed phase to compilation_doneWill Crichton-5/+5
2016-07-04Added new compilation phase and testWill Crichton-0/+105
2016-07-04Moved LLVM cleanup to after `after_llvm` phaseWill Crichton-2/+12
2016-07-03Auto merge of #34550 - cynicaldevil:master, r=Manishearthbors-1/+8
Added a pretty printer for &mut slices Fixes #30232 I have added a test which checks for correctness in gdb, but I need some help to do the same for lldb. r? @Manishearth
2016-07-03Auto merge of #34480 - jseyfried:remove_entry_points, r=nrcbors-81/+57
Remove redundant `CompileController` entry points Remove the `after_expand` and `after_write_deps` `CompileController` entry points. The only things that separate these entry points from `after_hir_lowering` are dep-info generation and HIR map construction, neither of which is computationally intensive or has the potential to error. r? @nrc
2016-07-03prefer `if let` to match with `None => {}` arm in some placesZack M. Davis-349/+215
This is a spiritual succesor to #34268/8531d581, in which we replaced a number of matches of None to the unit value with `if let` conditionals where it was judged that this made for clearer/simpler code (as would be recommended by Manishearth/rust-clippy's `single_match` lint). The same rationale applies to matches of None to the empty block.
2016-07-03Auto merge of #34530 - alexcrichton:stabilize-1.11, r=aturonbors-194/+507
std: Stabilize APIs for the 1.11.0 release Although the set of APIs being stabilized this release is relatively small, the trains keep going! Listed below are the APIs in the standard library which have either transitioned from unstable to stable or those from unstable to deprecated. Stable * `BTreeMap::{append, split_off}` * `BTreeSet::{append, split_off}` * `Cell::get_mut` * `RefCell::get_mut` * `BinaryHeap::append` * `{f32, f64}::{to_degrees, to_radians}` - libcore stabilizations mirroring past libstd stabilizations * `Iterator::sum` * `Iterator::product` Deprecated * `{f32, f64}::next_after` * `{f32, f64}::integer_decode` * `{f32, f64}::ldexp` * `{f32, f64}::frexp` * `num::One` * `num::Zero` Added APIs (all unstable) * `iter::Sum` * `iter::Product` * `iter::Step` - a few methods were added to accomodate deprecation of One/Zero Removed APIs * `From<Range<T>> for RangeInclusive<T>` - everything about `RangeInclusive` is unstable Closes #27739 Closes #27752 Closes #32526 Closes #33444 Closes #34152 cc #34529 (new tracking issue)
2016-07-04Added a pretty printer for &mut slicesNikhil Shagrithaya-1/+8
2016-07-03std: Stabilize APIs for the 1.11.0 releaseAlex Crichton-194/+507
Although the set of APIs being stabilized this release is relatively small, the trains keep going! Listed below are the APIs in the standard library which have either transitioned from unstable to stable or those from unstable to deprecated. Stable * `BTreeMap::{append, split_off}` * `BTreeSet::{append, split_off}` * `Cell::get_mut` * `RefCell::get_mut` * `BinaryHeap::append` * `{f32, f64}::{to_degrees, to_radians}` - libcore stabilizations mirroring past libstd stabilizations * `Iterator::sum` * `Iterator::product` Deprecated * `{f32, f64}::next_after` * `{f32, f64}::integer_decode` * `{f32, f64}::ldexp` * `{f32, f64}::frexp` * `num::One` * `num::Zero` Added APIs (all unstable) * `iter::Sum` * `iter::Product` * `iter::Step` - a few methods were added to accomodate deprecation of One/Zero Removed APIs * `From<Range<T>> for RangeInclusive<T>` - everything about `RangeInclusive` is unstable Closes #27739 Closes #27752 Closes #32526 Closes #33444 Closes #34152 cc #34529 (new tracking issue)
2016-07-03Auto merge of #34540 - jupp0r:patch-1, r=steveklabnikbors-1/+4
Improve code example for try! This change improves the code example for try!, avoiding to use try! in the example code that shows what code constructs try! can replace.
2016-07-03Auto merge of #34532 - jonmarkprice:master, r=steveklabnikbors-27/+33
Book: Small grammatical and stylistic edits to book I've been reading [the book](https://doc.rust-lang.org/book/) and noticed a few small grammatical and stylistic issues which I've rolled into this pull request. I'm not sure if I should do so many small, unrelated edits in a single pull request but it seems like a lot of overhead for each small edit. Maybe one commit per edit but one pull request per file/section? Feedback is very much appreciated as this is my first pull request ever! r? @steveklabnik rollup
2016-07-03Auto merge of #34614 - cynicaldevil:build-time, r=alexcrichtonbors-0/+12
Build: Shows total time taken to build the compiler Fixes #34600 Prints the total time taken to build rustc by executing `src/bootstrap/bootstrap.py`; also includes time taken to download `stage0` compiler and deps. r? @alexcrichton
2016-07-02Auto merge of #34597 - CensoredUsername:bootstrap-fix, r=alexcrichtonbors-1/+1
Support more python 2.7 versions in bootstrap.py It seems python broke compatability between 2.7.9 and 2.7.12 as on the former a WindowsError was raised while on the latter a subprocess.CalledProcessError was raised while testing for the existence of uname. As a WindowsError being thrown obviously indicates we're running on windows, this should probably be accepted too.
2016-07-02Auto merge of #34580 - eddyb:two-steps-forward-one-step-backwards, r=nagisabors-0/+125
Revert "Remove the return_address intrinsic." This reverts commit b30134dbc3c29cf62a4518090e1389ff26918c19. Servo might want this merged if they don't merge servo/servo#11872 soon. cc @pnkfelix @jdm
2016-07-02Auto merge of #34605 - arielb1:bug-in-the-jungle, r=eddybbors-8/+87
fail obligations that depend on erroring obligations Fix a bug where an obligation that depend on an erroring obligation would be regarded as successful, leading to global cache pollution and random lossage. Fixes #33723. Fixes #34503. r? @eddyb since @nikomatsakis is on vacation beta-nominating because of the massive lossage potential (e.g. with `Copy` this could lead to random memory leaks), plus this is a regression.
2016-07-02Auto merge of #34443 - eddyb:sized-matters, r=arielb1bors-0/+44
Disallow constants and statics from having unsized types. This is a `[breaking-change]` which fixes #34390 by banning unsized `const` and `static`, e.g.: ```rust const A: [i32] = *(&[0, 1, 2] as &[i32]); static B: str = *"foo"; ``` This was not intentionally allowed, and other than for `static` since some versions ago, it ICE'd. If you've been taking advantage of this with `static`, you should be able to just use references instead.
2016-07-02Build: Shows total time taken to build the compilerNikhil Shagrithaya-0/+12
2016-07-02Auto merge of #34539 - arielb1:metadata-hash, r=alexcrichtonbors-159/+214
Make the metadata lock more robust Fixes #33778 and friends. I also needed to add a metadata encoding version to rlibs, as they did not have it before. To keep it backwards-compatible, I added 4 zeroes to the start of the metadata, which are treated as an empty length field by older rustcs. r? @alexcrichton
2016-07-02fix test falloutAriel Ben-Yehuda-9/+9
2016-07-02add a encoding version to the actual metadataAriel Ben-Yehuda-18/+59
previously, only .so files included a metadata encoding version, *outside* of the zlib compressed area. This adds an encoding version inside the metadata itself, in both .so and .rlib files. Fixes #33778.
2016-07-02make the metadata lock more robust and bump the metadata encoding versionAriel Ben-Yehuda-31/+38
check the metadata lock when loading rather than afterwards Fixes #33733 Fixes #33015
2016-07-02Rollup merge of #34583 - steveklabnik:remove-unneeded-deprecated, r=alexcrichtonManish Goregaokar-1/+0
remove unneeded allow flag There isn't anything deprecated being used in this function. This built fine for me locally, but just to be sure, should check Travis.
2016-07-02Rollup merge of #34567 - alexcrichton:rustbuild-android, r=brsonManish Goregaokar-52/+227
rustbuild: Implement testing for Android This commit enhances the rustbuild support for testing Android to the same level of parity as the makefiles. This involved: * A new step to copy the standard library and other shared objects to the emulator. This is injected as a dependency of all test suites for Android. * Appropriate arguments are now passed through to compiletest to ensure that it can run tests. * When testing the standard library the test executables are probed for and shipped to the emulator to run for each test. * Fixing compilation of compiler-rt a bit All support added here is modeled after what's found in the makefiles, just translating one strategy to another. As an added bonus this commit adds support for the "check" step to automatically run tests for all targets, and the "check-target" step now runs all tests for a particular target, automatically filtering the tests if the target is detected as a cross-compile. Note that we don't (and probably won't) have a bot which is actually going to exercise any of this just yet, but all tests have passed locally for me at least.
2016-07-02Rollup merge of #34566 - ollie27:linkchecker_invalid_urls, r=alexcrichtonManish Goregaokar-23/+20
Reject invalid urls in linkchecker For example root-relative links will now be rejected. Also remove some exceptions which have since been fixed and fix a typo in the broken redirect handling.
2016-07-02Rollup merge of #34551 - GuillaumeGomez:runtest_improvement, r=alexcrichtonManish Goregaokar-8/+12
Improve runtest output