about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2019-03-12Add a test for #10876varkor-0/+19
2019-03-12Add tests to ensure that Iterator::min and Iterator::max are stableTim Vermeulen-0/+28
2019-03-12Fix commentTim Vermeulen-1/+1
2019-03-12Remove the projection part of select_fold1Tim Vermeulen-56/+21
2019-03-12Fix the bench_max and bench_max_by_key benchmarksTim Vermeulen-2/+2
2019-03-12Remove stabilized feature gate in doctestSimon Sapin-1/+0
2019-03-12Unregress using scalar unions in constants.Oliver Scherer-13/+24
2019-03-12Auto merge of #58330 - GuillaumeGomez:rustdoc-js-non-std, ↵bors-39/+482
r=QuietMisdreavus,Mark-Simulacrum Add rustdoc JS non-std tests @QuietMisdreavus: You asked it, here it is! r? @QuietMisdreavus
2019-03-12ignore higher-ranked WF requirements for trait objectsNiko Matsakis-2/+60
In the `issue-53548` test added in this commit, the `Box<dyn Trait>` type is expanded to `Box<dyn Trait + 'static>`, but the generator "witness" that results is `for<'r> { Box<dyn Trait + 'r> }`. The WF code was encountering an ICE (when debug-assertions were enabled) and an unexpected compilation error (without debug-asserions) when trying to process this `'r` region bound. In particular, to be WF, the region bound must meet the requirements of the trait, and hence we got `for<'r> { 'r: 'static }`. This would ICE because the `Binder` constructor we were using was assering that no higher-ranked regions were involved (because the WF code is supposed to skip those). The error (if debug-asserions were disabled) came because we obviously cannot prove that `'r: 'static` for any region `'r`. Pursuant with our "lazy WF" strategy for higher-ranked regions, the fix is not to require that `for<'r> { 'r: 'static }` holds (this is also analogous to what we would do for higher-ranked regions appearing within the trait in other positions).
2019-03-12add a useful debug printoutNiko Matsakis-0/+2
2019-03-12Document the precomputation algorithm's purposeOliver Scherer-0/+7
2019-03-12Explain the bits of `UndefMask`Oliver Scherer-0/+2
2019-03-12fix typoArtyom Pavlov-1/+1
2019-03-12expandRalf Jung-1/+2
2019-03-12Note that NonNull does not launder shared references for mutationRalf Jung-0/+9
2019-03-12Visit impl Trait for dead_code lintSeo Sanghyeon-1/+44
2019-03-12Auto merge of #58608 - ↵bors-73/+345
pnkfelix:warning-period-for-detecting-nested-impl-trait, r=zoxc Warning period for detecting nested impl trait Here is some proposed code for making a warning period for the new checking of nested impl trait. It undoes some of the corrective effects of PR #57730, by using boolean flags to track parts of the analysis that were previously skipped prior to PRs #57730 and #57981 landing. Cc #57979
2019-03-12Addressed review feedback regarding comment phrasing.Felix S. Klock II-2/+2
2019-03-12Address review commentsVadim Petrochenkov-2/+6
2019-03-12syntax: Optimize `maybe_whole`/`maybe_whole_expr` slightlyVadim Petrochenkov-14/+14
2019-03-12syntax: Better recovery for `$ty::AssocItem` and `ty!()::AssocItem`Vadim Petrochenkov-77/+198
2019-03-12Replace assert with assert_eq for better debuggingSayan Nandan-118/+118
2019-03-11impl FromIterator for Result: Use assert_eq! instead of assert!Chris Gregory-1/+1
2019-03-11Fix RangeBounds documentation to include inclusive operationsChris Gregory-1/+1
2019-03-11Standardize `Range*` documentationChris Gregory-26/+42
This updates the final example in the documentation for the types `Range`, `RangeFrom`, `RangeFull`, `RangeInclusive`, `RangeTo`, `RangeToInclusive`.
2019-03-11Add run-make-fulldeps test caseDouglas Creager-0/+82
2019-03-11Be more discerning on when to attempt suggesting a comma in a macro invocationEsteban Küber-9/+27
2019-03-11Auto merge of #59044 - petrochenkov:uiui, r=davidtwcobors-7548/+7506
Filter away test annotations from UI test output If you worked with UI tests for some time you could notice one issue affecting their readability and also readability of diffs when the tests change. Look at the output of this test. ```rust fn main() { let 1 = 2; //~ ERROR refutable pattern in local binding } ``` ``` error[E0005]: refutable pattern in local binding: `-2147483648i32..=0i32` not covered --> src/main.rs:2:9 | 2 | let 1 = 2; //~ ERROR refutable pattern in local binding | ^ pattern `-2147483648i32..=0i32` not covered error: aborting due to previous error For more information about this error, try `rustc --explain E0005`. ``` You can see that the "refutable pattern in local binding" is duplicated. One instance is the actual error, and the second instance is the expected error annotation. This annotation is useful in the test input, but in the output it clutters the text and makes it harder to see what text refers to actual errors and what is just comments, especially if there are many errors in a single test file. @estebank [reported](https://github.com/rust-lang/rust/pull/57379#discussion_r245523361) using the next trick to avoid the clutter ```rust fn main() { let 1 = 2; //~^ ERROR refutable pattern in local binding } ``` ``` error[E0005]: refutable pattern in local binding: `-2147483648i32..=0i32` not covered --> src/main.rs:2:9 | 2 | let 1 = 2; | ^ pattern `-2147483648i32..=0i32` not covered error: aborting due to previous error For more information about this error, try `rustc --explain E0005`. ``` , i.e. using `//~^` and placing the annotation one line below will remove the annotation from the output. However, this doesn't always works (consider errors with multi-line spans), and shouldn't be necessary in general! `compiletest` could automatically filter away its own annotations from the output instead. This is exactly what this PR does. r? @davidtwco
2019-03-11Update tests that don't run on my platformVadim Petrochenkov-51/+3
2019-03-11Update NLL testsVadim Petrochenkov-794/+794
2019-03-11Update testsVadim Petrochenkov-6703/+6703
2019-03-11fix testArtyom Pavlov-2/+2
2019-03-11compiletest: Filter away test annotations from UI test outputVadim Petrochenkov-0/+6
2019-03-11Add initial implementation of 'sort_at_index' for slices -- analog to C++'s ↵Pavel Krajcevski-0/+355
std::nth_element (a.k.a. quickselect) Add some more notes to the documentation: - Mention that the median can be found if we used `len() / 2`. - Mention that this function is usually called "kth element" in other libraries. Address some comments in PR: - Change wording on some of the documentation - Change recursive function into a loop Update name to `partition_at_index` and add convenience return values. Address reviewer comments: - Don't swap on each iteration when searching for min/max element. - Add some docs about when we panic. - Test that the sum of the lengths of the output matches the length of the input. - Style fix for for-loop. Address more reviewer comments Fix Rng stuff for test Fix doc test build Don't run the partition_at_index test on wasm targets Miri does not support entropy for test partition_at_index
2019-03-11Auto merge of #58021 - ishitatsuyuki:57667-fix, r=RalfJungbors-33/+6
Fix fallout from #57667
2019-03-11fix testsnewpavlov-5/+9
2019-03-12removed the definition of maskkenta7777-6/+0
2019-03-12replaced some bit operations with truncatekenta7777-3/+3
2019-03-11Resolved nits raised in review.Alexander Regueiro-6/+6
2019-03-11Test illustrating that the nested_impl_trait lint should only catch shallow ↵Felix S. Klock II-0/+72
cases.
2019-03-11move MAX_NANOS_F64/32 to methodsnewpavlov-2/+4
2019-03-11consistent naming for duration_float methods and additional f32 methodsnewpavlov-9/+121
2019-03-11Revised warning-downgrade strategy for nested impl trait.Felix S. Klock II-27/+77
Instead of a sticky-boolean flag that would downgrade errors to warnings during further recursion into the type (which is overly broad because we were not missing errors at arbitrarily deep levels), this instead tracks state closer to what the original bug actually was. In particular, the actual original bug was that we were failing to record the existence of an outer `impl Trait` solely when it occurred as an *immediate child* during the walk of the child types in `visit_generic_args`. Therefore, the correct way to precisely model when that bug would manifest itself (and thus downgrade the error-to-warning accordingly) is to track when those outer `impl Trait` cases were previously unrecorded. That's what this code does, by storing a flag with the recorded outer `impl Trait` indicating at which point in the compiler's control flow it had been stored. I will note that this commit passes the current test suite. A follow-up commit will also include tests illustrating the cases that this commit gets right (and were handled incorrectly by the previous sticky boolean).
2019-03-11reduced some code repetitions of bit operationkenta7777-2/+3
2019-03-11added a function for reducing repetition of bit operationkenta7777-0/+6
2019-03-11Auto merge of #59073 - Xanewok:rustup-rustc-interface, r=Zoxcbors-3/+8
Update RLS and Clippy due to #56732 (rustc_interface crate) Closes #59060. In addition to plain submodule bumps, this also contains update to rls-rustc. The in-tree, from the RLS monorepo, version is used instead of the crates.io one (@nrc I think we might stop publishing `rls-rustc` altogether, right? It's only there to work around passing `-Zsave-analysis` to stable `rustc` and meant to be used only by RLS, IIRC). @Zoxc also due to how we need to access the expanded AST still from the RLS side in order to pass save analysis data in-memory, I delayed the AST drop after the `after_analysis` callback if the `-Zsave-analysis` is passed. It'd be also good if you could take a look at the changes inside the `rls` and `rls-rustc`: https://github.com/rust-lang/rls/compare/6a1b5a9cfda2ae19372e0613e76ebefba36edcf5...6840dd69af3ada1f8a432075f1f0be679ea8a468. The `rls-rustc` is based on your [PR](https://github.com/rust-dev-tools/rls-rustc/pull/11) but I also had to change some bits in the RLS itself. r? @Zoxc / @Manishearth
2019-03-11Auto merge of #59071 - Manishearth:clippyup, r=oli-obkbors-5/+10
Update clippy r? @oli-obk
2019-03-11Remove precompute_in_scope_traits_hashesJohn Kåre Alsaker-11/+0
2019-03-11Auto merge of #58788 - matthewjasper:compare-children, r=pnkfelixbors-25/+129
Make migrate mode work at item level granularity Migrate mode now works entirely at the item level rather than the body level, ensuring that we don't lose any errors in contained closures. Closes #58776 r? @pnkfelix
2019-03-10Fix #54822 and associated faulty testskyren-28/+33
Type checking associated constants can require trait bounds, but an empty parameter environment was provided to the trait solver. Providing an appropriate parameter environment seems to fix #54822 and also make one of the cases in src/test/ui/nll/trait-associated-constant.rs that should compile successfully do so. It also (slightly) improves the error message in src/test/ui/associated-const/associated-const-generic-obligations.rs