about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-10-02Auto merge of #54343 - blitzerr:master, r=nikomatsakisbors-249/+345
First shot at #54015 Closes #54015
2018-10-02Update clippyManish Goregaokar-14/+14
2018-10-02Auto merge of #54701 - arielb1:outlives-later, r=nikomatsakisbors-57/+172
normalize param-env type-outlives predicates last The normalization of type-outlives predicates can depend on misc. environment predicates, but not the other way around. Inferred lifetime bounds can propagate type-outlives bounds far and wide, so their normalization needs to work well. Fixes #54467 r? @nikomatsakis beta-nominating because this is required for inferred_outlives_bounds, which is in beta
2018-10-02Auto merge of #54694 - csmoe:self_this, r=estebankbors-1/+97
Suggest to use self for fake-self from other languages Closes https://github.com/rust-lang/rust/issues/54019 r? @estebank
2018-10-01Auto merge of #54693 - RalfJung:ctfe-scalar-pair-undef, r=oli-obkbors-150/+166
do not normalize all non-scalar constants to a ConstValue::ScalarPair We still need `ConstValue::ScalarPair` for match handling (matching slices and strings), but that will never see anything `Undef`. For non-fat-ptr `ScalarPair`, just point to the allocation like larger data structures do. Fixes https://github.com/rust-lang/rust/issues/54387 r? @eddyb
2018-10-01normalize param-env type-outlives predicates lastAriel Ben-Yehuda-57/+172
The normalization of type-outlives predicates can depend on misc. environment predicates, but not the other way around. Inferred lifetime bounds can propagate type-outlives bounds far and wide, so their normalization needs to work well. Fixes #54467
2018-10-01Auto merge of #54667 - RalfJung:maybe-uninit, r=pnkfelixbors-14/+181
Panic when using mem::uninitialized or mem::zeroed on an uninhabited type All code by @japaric. This re-submits one half of https://github.com/rust-lang/rust/pull/53508. This is likely not the one that introduced the perf regression, but just to be sure I'll do a perf run anyway.
2018-10-01Rollup merge of #54676 - ↵kennytm-13/+5
pnkfelix:issue-15287-kill-zflag-disabling-ast-check, r=alexcrichton Remove `-Z disable_ast_check_for_mutation_in_guard` One should use `#![feature(bind_by_move_pattern_guards)]` over `-Z disable_ast_check_for_mutation_in_guard` cc #15287
2018-10-01Rollup merge of #54713 - flip1995:tool_lints_nightly, r=Manishearthkennytm-2/+8
Add nightly check for tool_lints warning cc #54358 Let's add the nightly check, just in case something prevents a stabilization until 1.31.beta.
2018-10-01Rollup merge of #54674 - RalfJung:miri, r=oli-obkkennytm-5/+5
update miri
2018-10-01Add nightly check for tool_lints warningflip1995-2/+8
cc #54358
2018-10-01Rollup merge of #54708 - collin5:b49475, r=Mark-Simulacrumkennytm-0/+5
Make ./x.py help <cmd> invoke ./x.py <cmd> -h on its own Fixes #49475 r? @Mark-Simulacrum
2018-10-01Rollup merge of #54681 - alexcrichton:san-names, r=kennytmkennytm-4/+37
Rename sanitizer runtime libraries on OSX Currently we ship sanitizer libraries as they're built, but these names unfortunately conflict with the names of the sanitizer libraries installed on the system. If a crate, for example, links in C code that wants to use the system sanitizer and the Rust code doesn't use sanitizers at all, then using `cargo` may accidentally pull in the Rust-installed sanitizer library due to a conflict in names. This change is intended to be entirely transparent for Rust users of sanitizers, it should only hopefully improve our story with other users! Closes #54134
2018-10-01Rollup merge of #54679 - phansch:improve_bug_message, r=matthewjasperkennytm-1/+6
Improve bug! message for impossible case in Relate Hitting this branch [in Clippy][clippy_issue] and I think it makes sense to print both values here in case other people hit this branch, too. (still have to figure out why this branch is hit) [clippy_issue]: https://github.com/rust-lang-nursery/rust-clippy/issues/2831#issuecomment-424597092
2018-10-01Rollup merge of #54656 - nieksand:workqueue_doc, r=varkorkennytm-1/+1
Correct doc for WorkQueue<T>::pop(). The old function doc looks like copy-pasta from WorkQueue::insert(). WorkQueue::pop() does not enqueue nor does it return a boolean false. Doc corrected accordingly.
2018-10-01Rollup merge of #54641 - ljedrz:cleanup_rustc_infer, r=estebankkennytm-200/+170
A few cleanups and minor improvements to rustc/infer - use unwrap_or(_else) where applicable - convert single-branch matches to if-let - use to_owned instead of to_string with string literals - improve vector allocations - readability improvements - miscellaneous minor code improvements
2018-10-01Rollup merge of #54623 - alexreg:impl_trait_in_bindings-help, r=estebankkennytm-56/+88
Added help message for `impl_trait_in_bindings` feature gate r? @estebank CC @Centril
2018-10-01Rollup merge of #54544 - frewsxcv:frewsxcv-deref, r=GuillaumeGomezkennytm-2/+13
Indicate how to move value out of Box in docs. Fixes https://github.com/rust-lang/rust/issues/53634.
2018-10-01Rollup merge of #54488 - zackmdavis:and_the_case_of_the_unused_crate, r=estebankkennytm-1/+74
in which we include attributes in unused `extern crate` suggestion spans ![unused_extern](https://user-images.githubusercontent.com/1076988/45921698-50243e80-be6f-11e8-930a-7b2a33b4935c.png) Resolves #54400. r? @estebank
2018-10-01Rollup merge of #54308 - dsciarra:issue-22692, r=estebankkennytm-14/+69
Better user experience when attempting to call associated functions with dot notation Closes #22692
2018-10-01Rollup merge of #53784 - tbu-:pr_doc_slice_isize_max, r=RalfJungkennytm-3/+14
Document that slices cannot be larger than `isize::MAX` bytes Fixes #53676.
2018-10-01mark fix as MaybeIncorrectcsmoe-4/+4
2018-10-01update ui test for suggest-selfcsmoe-1/+45
2018-10-01lint to use self for this/mycsmoe-1/+15
2018-10-01Auto merge of #54675 - alexcrichton:defaultlibs, r=varkorbors-6/+12
rust: Add a `-C default-linker-libraries` option This commit adds a new codegen option for the compiler which disables rustc's passing of `-nodefaultlibs` by default on relevant platforms. Sometimes Rust is linked with C code which fails to link with `-nodefaultlibs` and is unnecessarily onerous to get linking correctly with `-nodefaultlibs`. An example of this is that when you compile C code with sanitizers and then pass `-fsanitize=address` to the linker, it's incompatible with `-nodefaultlibs` also being passed to the linker. In these situations it's easiest to turn off Rust's default passing of `-nodefaultlibs`, which was more ideological to start with than anything! Preserving the default is somewhat important but having this be opt-in shouldn't cause any breakage. Closes #54237
2018-10-01allow use of ./x.py help <cmd> ...Collins Abitekaniza-0/+5
2018-10-01Auto merge of #54662 - matklad:once-perf, r=alexcrichtonbors-0/+1
Fix Once perf regression Because `call_once` is generic, but `is_completed` is not, we need `#[inline]` annotation to allow LLVM to inline `is_completed` into `call_once` in downstream crates. cc https://github.com/rust-lang/rust/pull/53027/files#r221418859
2018-09-30Auto merge of #54650 - eddyb:no-extern's-land, r=alexcrichtonbors-110/+59
Don't lint non-extern-prelude extern crate's in Rust 2018. Fixes #54381 by silencing the lint telling users to remove `extern crate` when `use` doesn't work. r? @alexcrichton cc @petrochenkov @nikomatsakis @Centril
2018-09-30Added help message for `impl_trait_in_bindings` feature gate.Alexander Regueiro-56/+88
2018-09-30Auto merge of #53255 - orium:fix-bug-overflow-send, r=arielb1bors-49/+183
Add a per-tree error cache to the obligation forest This implements part of what @nikomatsakis mentioned in https://github.com/rust-lang/rust/pull/30533#issuecomment-170705871: > 1. If you find that a new obligation is a duplicate of one already in the tree, the proper processing is: > * if that other location is your parent, you should abort with a cycle error (or accept it, if coinductive) > * if that other location is not an ancestor, you can safely ignore the new obligation In particular it implements the "if that other location is your parent accept it, if coinductive" part. This fixes #40827. I have to say that I'm not 100% confident that this is rock solid. This is my first pull request :tada:, and I didn't know anything about the trait resolver before this. In particular I'm not totally sure that comparing predicates is enough (for instance, do we need to compare `param_env` as well?). Also, I'm not sure what @nikomatsakis mentions [here](https://github.com/rust-lang/rust/issues/30977#issue-127091096), but it might be something that affects this PR: > In particular, I am wary of getting things wrong around inference variables! We can always add things to the set in their current state, and if unifications occur then the obligation is just kind of out-of-date, but I want to be sure we don't accidentally fail to notice that something is our ancestor. I decided this was subtle enough to merit its own PR. Anyway, go ahead and review :slightly_smiling_face:. Ref #30977. # Performance We are now copying vectors around, so I decided to do some benchmarking. A simple benchmark shows that this does not seem to affect performance in a measurable way: I ran `cargo clean && cargo build` 20 times on actix-web (84b27db) and these are the results: ```text rustc master: Mean Std.Dev. Min Median Max real 66.637 2.996 57.220 67.714 69.314 user 307.293 14.741 258.093 312.209 320.702 sys 12.524 0.653 10.499 12.726 13.193 rustc fix-bug-overflow-send: Mean Std.Dev. Min Median Max real 66.297 4.310 53.532 67.516 70.348 user 306.812 22.371 236.917 314.748 326.229 sys 12.757 0.952 9.671 13.125 13.544 ``` I will do a more comprehensive benchmark (compiling rustc stage1) and post the results. r? @nikomatsakis, @nnethercote PS: It is better to review this commit-by-commit.
2018-09-30Deduplicate errors in the obligation forest.Diogo Sousa-27/+162
Fixes #40827.
2018-09-30Typos and style fixes.Diogo Sousa-24/+23
2018-09-30the test requires unwinding so we don't run it on the wasm32-bare targetJorge Aparicio-0/+1
2018-09-30add codegen testJorge Aparicio-0/+23
2018-09-30make the nil-enum test work againJorge Aparicio-2/+7
2018-09-30adapt to change in Session APIJorge Aparicio-1/+1
2018-09-30allow dead_codeJorge Aparicio-0/+1
2018-09-30add empty enum to the test casesJorge Aparicio-0/+20
2018-09-30improve the run-pass testJorge Aparicio-4/+34
2018-09-30move our check to reuse a previous computationJorge Aparicio-20/+21
2018-09-30improve panic messageJorge Aparicio-8/+6
2018-09-30use is_uninhabited in more placesJorge Aparicio-12/+12
2018-09-30panic when instantiating an uninhabited type via mem::{uninitialized,zeroed}Jorge Aparicio-0/+88
2018-09-30Auto merge of #54622 - matthewjasper:more-nll-mode, r=pnkfelixbors-142/+458
Enable NLL compare mode for more tests Most of these tests were disabled due to NLL bugs that have since been fixed. A few needed updating for NLL. r? @nikomatsakis
2018-09-30add test for fake selfcsmoe-0/+38
2018-09-30Auto merge of #54596 - mjbshaw:drop, r=RalfJungbors-13/+69
Make core::mem::needs_drop a const fn This fixes #51929.
2018-09-30move ScalarMaybeUndef into the miri engineRalf Jung-113/+113
2018-09-30do not normalize non-scalar constants to a ConstValue::ScalarPairRalf Jung-37/+53
2018-09-30Auto merge of #53816 - zackmdavis:elided_lifetimes_in_paths_field_day, ↵bors-545/+557
r=nikomatsakis don't elide lifetimes in paths in librustc/ In light of the "Apply to rustc" checkbox on #44524 and @nikomatsakis's [recent comment about regularly wanting visual indication of elided lifetimes in types](https://github.com/rust-lang/rust/issues/44524#issuecomment-414663773), I was curious to see what it would look like if we turned the `elided_lifetimes_in_path` lint on in at least one crate in the codebase (I chose librustc). Given that I couldn't figure out how to get `cargo fix` work with the build system, this arguably wasn't a very efficient use of my time, but once I started, the conjunction of moral law and the sunk cost fallacy forced me to continue. This is mostly applying the `<'_>` suggestions issued by the lint, but there were a few places where I named the lifetimes (_e.g._, `<'a, 'gcx, 'tcx>` on `TyCtxt`) in order to match style with surrounding code. r? @nikomatsakis
2018-09-30Auto merge of #54639 - nagisa:lets-alias-for-now, r=eddybbors-10/+48
Do not put noalias annotations by default This will be re-enabled sooner or later depending on results of further investigation. Fixes #54462 Beta backport is: #54640 r? @nikomatsakis