Commit graph

90927 commits

Author SHA1 Message Date
Tim Vermeulen
0de63d901b Fix comment 2019-03-12 17:53:25 +01:00
Tim Vermeulen
b23a0473b3 Remove the projection part of select_fold1 2019-03-12 17:52:26 +01:00
Tim Vermeulen
8d18e57b8a Fix the bench_max and bench_max_by_key benchmarks 2019-03-12 17:52:10 +01:00
Simon Sapin
db99a3bccd Remove stabilized feature gate in doctest 2019-03-12 17:42:42 +01:00
Oliver Scherer
5074489456 Unregress using scalar unions in constants. 2019-03-12 17:37:22 +01:00
bors
d06a020e2b Auto merge of #58330 - GuillaumeGomez:rustdoc-js-non-std, r=QuietMisdreavus,Mark-Simulacrum
Add rustdoc JS non-std tests

@QuietMisdreavus: You asked it, here it is!

r? @QuietMisdreavus
2019-03-12 15:33:59 +00:00
Niko Matsakis
261daf27c9 ignore higher-ranked WF requirements for trait objects
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-12 10:57:06 -04:00
Niko Matsakis
4632e3345b add a useful debug printout 2019-03-12 10:52:29 -04:00
Oliver Scherer
2a1eb1cef1 Document the precomputation algorithm's purpose 2019-03-12 15:00:12 +01:00
Oliver Scherer
1ae131211b Explain the bits of UndefMask 2019-03-12 14:43:49 +01:00
Artyom Pavlov
78b248dc4c
fix typo 2019-03-12 16:42:18 +03:00
Ralf Jung
8ec8639bf3 expand 2019-03-12 13:44:09 +01:00
Ralf Jung
7fcdb93cf5 Note that NonNull does not launder shared references for mutation 2019-03-12 13:41:12 +01:00
Seo Sanghyeon
2027459f77 Visit impl Trait for dead_code lint 2019-03-12 21:35:20 +09:00
bors
8f4c226fc5 Auto merge of #58608 - 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-12 12:09:47 +00:00
Felix S. Klock II
0a03ca7493 Addressed review feedback regarding comment phrasing. 2019-03-12 13:00:50 +01:00
Sayan Nandan
365d918b31
Replace assert with assert_eq for better debugging 2019-03-12 10:08:57 +05:30
Chris Gregory
6b88c90504 impl FromIterator for Result: Use assert_eq! instead of assert! 2019-03-11 21:04:34 -04:00
Chris Gregory
c46f75882f Fix RangeBounds documentation to include inclusive operations 2019-03-11 20:55:24 -04:00
Chris Gregory
95fc3f4767 Standardize Range* documentation
This updates the final example in the documentation for the types
`Range`, `RangeFrom`, `RangeFull`, `RangeInclusive`, `RangeTo`,
`RangeToInclusive`.
2019-03-11 20:55:23 -04:00
bors
7486b9c208 Auto merge of #59044 - petrochenkov:uiui, r=davidtwco
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-11 21:45:29 +00:00
Vadim Petrochenkov
07f99b9fec Update tests that don't run on my platform 2019-03-11 23:30:10 +03:00
Vadim Petrochenkov
c1cfacfb13 Update NLL tests 2019-03-11 23:18:35 +03:00
Vadim Petrochenkov
fa72a81bea Update tests 2019-03-11 23:10:26 +03:00
Artyom Pavlov
197efb0524
fix test 2019-03-11 18:59:41 +00:00
Vadim Petrochenkov
2060d49c39 compiletest: Filter away test annotations from UI test output 2019-03-11 21:37:21 +03:00
bors
e68bf8ae15 Auto merge of #58021 - ishitatsuyuki:57667-fix, r=RalfJung
Fix fallout from #57667
2019-03-11 17:20:20 +00:00
newpavlov
980871af27 fix tests 2019-03-11 19:57:53 +03:00
kenta7777
18b40c6413 removed the definition of mask 2019-03-12 01:15:05 +09:00
kenta7777
0ede9e61e2 replaced some bit operations with truncate 2019-03-12 01:06:12 +09:00
Alexander Regueiro
d4b2071b1f Resolved nits raised in review. 2019-03-11 15:54:57 +00:00
Felix S. Klock II
837856d120 Test illustrating that the nested_impl_trait lint should only catch shallow cases. 2019-03-11 16:30:40 +01:00
newpavlov
35c19c5b3d move MAX_NANOS_F64/32 to methods 2019-03-11 18:06:13 +03:00
newpavlov
e25df326ca consistent naming for duration_float methods and additional f32 methods 2019-03-11 17:53:22 +03:00
Felix S. Klock II
c99303351d Revised warning-downgrade strategy for nested impl trait.
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-11 15:14:24 +01:00
kenta7777
4c9f7a08e5 reduced some code repetitions of bit operation 2019-03-11 22:32:27 +09:00
kenta7777
749e9d460a added a function for reducing repetition of bit operation 2019-03-11 22:31:25 +09:00
bors
de5c3c4b07 Auto merge of #59073 - Xanewok:rustup-rustc-interface, r=Zoxc
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`: 6a1b5a9cfd...6840dd69af. 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-11 12:14:00 +00:00
bors
cf3c9a78aa Auto merge of #59071 - Manishearth:clippyup, r=oli-obk
Update clippy

r? @oli-obk
2019-03-11 09:08:45 +00:00
John Kåre Alsaker
01e2e1f88f Remove precompute_in_scope_traits_hashes 2019-03-11 09:56:26 +01:00
bors
f52f18529a Auto merge of #58788 - matthewjasper:compare-children, r=pnkfelix
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-11 06:10:31 +00:00
kyren
8b1742ea6a Fix #54822 and associated faulty tests
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
2019-03-10 23:01:30 -04:00
Alexander Regueiro
8629fd3e4e Improvements to comments in libstd, libcore, liballoc. 2019-03-11 02:25:44 +00:00
bors
c2ddf5a1dd Auto merge of #58784 - oli-obk:accidental_promotion, r=eddyb
Don't promote function calls to nonpromotable things

fixes https://github.com/rust-lang/rust/issues/58767 and fixes https://github.com/rust-lang/rust/issues/58634

r? @eddyb

should we additionally check the function call return type? It might be a promotable function (or any `const fn` inside a `const fn`), but its return type might contain interior mutability.
2019-03-11 01:28:16 +00:00
Nikita Baksalyar
d1034c19a2 Fix incorrect links in librustc_codegen_llvm documentation 2019-03-11 01:11:54 +00:00
Guillaume Gomez
37ab3dc5b3 Make js tests work even with resource-suffix option 2019-03-10 23:10:40 +01:00
bors
9d71ec1358 Auto merge of #59054 - ehuss:ci-i686-gnu-tests, r=pietroalbini
CI: Trim some tests from i686-gnu

This removes some tests from the i686-gnu job. This job clocks in at 2hr 56min, and removing these should cut about 10 to 15 minutes, giving a little more breathing room. I suspect these don't need to be tested on every platform.
2019-03-10 20:34:15 +00:00
Matthew Jasper
7285b5630b Make migrate mode work at item level granularity 2019-03-10 17:27:31 +00:00
Ralf Jung
52d9fa827d enabled too many tests 2019-03-10 18:20:23 +01:00
Ralf Jung
4888b1fb99 we can now skip should_panic tests with the libtest harness 2019-03-10 17:47:42 +01:00