Commit Graph

104336 Commits

Author SHA1 Message Date
Mark Rousskov
df4d490038 Minimize unsafety in encode_utf8
Use slice patterns to avoid having to skip bounds checking
2019-12-23 20:46:42 -05:00
bors
9ae6cedb8d Auto merge of #67560 - Centril:rollup-fzdpu9c, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #67233 (Add PartialEq and Eq to Cursor)
 - #67466 (Require const stability attributes on intrinsics to be able to use them in constant contexts)
 - #67507 (Remove mem::uninitalized from tests)
 - #67527 (Results show too much)
 - #67536 (Move `{hir::lowering -> hir}::is_range_literal`)
 - #67538 (Improve diagnostics for invalid assignment)
 - #67546 (Fix ICE in mir interpretation)
 - #67559 (Document that calling Drop, even after it panics, is UB)

Failed merges:

r? @ghost
2019-12-23 18:28:33 +00:00
Mazdak Farrokhzad
68a9a2d648
Rollup merge of #67559 - Mark-Simulacrum:drop-doc, r=RalfJung
Document that calling Drop, even after it panics, is UB

Fixes #60822.

r? @gnzlbg
2019-12-23 15:16:32 +01:00
Mazdak Farrokhzad
7eb025febf
Rollup merge of #67546 - oli-obk:slice_pattern_ice, r=varkor
Fix ICE in mir interpretation

Indices from the end start at 1 so you can immediately subtract them from the length to get the index instead of having to do an additional `-1`. Kinda documented in https://doc.rust-lang.org/nightly/nightly-rustc/rustc/mir/enum.ProjectionElem.html#variant.ConstantIndex
2019-12-23 15:16:31 +01:00
Mazdak Farrokhzad
41647613b1
Rollup merge of #67538 - varkor:lhs-assign-diagnostics, r=Centril
Improve diagnostics for invalid assignment

- Improve wording and span information for invalid assignment diagnostics.
- Link to https://github.com/rust-lang/rfcs/issues/372 when it appears the user is trying a destructuring assignment.
- Make the equality constraint in `where` clauses error consistent with the invalid assignment error.
2019-12-23 15:16:29 +01:00
Mazdak Farrokhzad
3a07f3ba75
Rollup merge of #67536 - Centril:move-is_range_literal, r=Mark-Simulacrum
Move `{hir::lowering -> hir}::is_range_literal`

The function is never used inside lowering, but only ever in external crates.
By moving it, we facilitate lowering as its own crate.

Best read commit-by-commit.

r? @Mark-Simulacrum
2019-12-23 15:16:28 +01:00
Mazdak Farrokhzad
6f38a15c7b
Rollup merge of #67527 - GuillaumeGomez:results-show-too-much, r=kinnison
Results show too much

Fixes #67461.

To reproduce the current issue: search anything, then once the results appears, press escape. They should disappear then re-appear right away. This is because blurring an element triggers the "change" event.

r? @kinnison
2019-12-23 15:16:26 +01:00
Mazdak Farrokhzad
67c0f4e2c9
Rollup merge of #67507 - Mark-Simulacrum:purge-uninit, r=Centril
Remove mem::uninitalized from tests

This purges uses of uninitialized where possible from test cases. Some
are merely moved over to the equally bad pattern of
MaybeUninit::uninit().assume_init() but with an annotation that this is
"the best we can do".

Fixes #62397
2019-12-23 15:16:24 +01:00
Mazdak Farrokhzad
1de2705c79
Rollup merge of #67466 - oli-obk:const_intrinsic, r=Centril
Require const stability attributes on intrinsics to be able to use them in constant contexts

r? @Centril

finally fixes #61495

cc @RalfJung
2019-12-23 15:16:23 +01:00
Mazdak Farrokhzad
260514da94
Rollup merge of #67233 - Luro02:cursor_traits, r=sfackler
Add PartialEq and Eq to Cursor

closes #67226
2019-12-23 15:16:21 +01:00
Oliver Scherer
63d28221c6
Fix typo 2019-12-23 15:11:09 +01:00
Mark Rousskov
a08df28a6f Document that calling Drop, even after it panics, is UB 2019-12-23 09:04:00 -05:00
varkor
9e5081394c Fix reformatting rebase issues 2019-12-23 12:39:48 +00:00
Mazdak Farrokhzad
4bb83468a2 is_range_literal: leave FIXME 2019-12-23 13:11:15 +01:00
Mazdak Farrokhzad
dd7f49301e is_range_literal: fix fallout 2019-12-23 13:11:10 +01:00
varkor
9a602243c4 Add new folder for destructuring assignment tests 2019-12-23 11:20:13 +00:00
varkor
35979a92bf Add span information to ExprKind::Assign 2019-12-23 11:20:13 +00:00
varkor
5ab4735559 Recognise nested tuples/arrays/structs 2019-12-23 11:17:55 +00:00
varkor
5fa02ecc29 Add note about destructuring assignments 2019-12-23 11:17:55 +00:00
varkor
b7bfdbe681 Improve invalid assignment error 2019-12-23 11:16:51 +00:00
varkor
a5991c57cf Add the full issue reference to equality constraints in where clauses 2019-12-23 11:15:55 +00:00
Mazdak Farrokhzad
45acee3090 Move {hir::lowering -> hir}::is_range_literal.
The function is never used inside lowering,
but only ever in external crates.

By moving it, we faciliate lowering as its own crate.
2019-12-23 12:03:22 +01:00
Oliver Scherer
5b8df34203
Update src/librustc_mir/interpret/place.rs
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-12-23 11:27:34 +01:00
Mark Rousskov
c205f6a06a Remove mem::uninitalized from tests
This purges uses of uninitialized where possible from test cases. Some
are merely moved over to the equally bad pattern of
MaybeUninit::uninit().assume_init() but with an annotation that this is
"the best we can do".
2019-12-22 21:58:12 -05:00
bors
a916ac22b9 Auto merge of #67540 - Mark-Simulacrum:fmt-the-world, r=Centril
Format the world

This PR modifies the formatting infrastructure a bit in the first commit (to enable the forgotten 2018 edition), as well as removes most directories from the ignore list in rustfmt.toml. It then follows that up with the second commit which runs `x.py fmt` and formats the entire repository.

We continue to not format the test directory (`src/test`) because of interactions with pretty printing and, in part, because re-blessing all of those files is somewhat harder to review, so is best suited for a follow up PR in my opinion.
2019-12-23 02:47:52 +00:00
Mark Rousskov
0f24ccd21d Change bound order in rustfmt test
It is unclear why this changed, but since it seems like a harmless
change, we're going to move forward with reformatting.
2019-12-22 21:46:51 -05:00
Mark Rousskov
3a6cd8e42b temporary retry around msys2 install 2019-12-22 20:17:00 -05:00
Oliver Scherer
056dff5748 Fix ICE in mir interpretation 2019-12-23 01:24:11 +01:00
Mark Rousskov
86f12c110b test fallout 2019-12-22 19:04:10 -05:00
Mark Rousskov
a06baa56b9 Format the world 2019-12-22 17:42:47 -05:00
Mark Rousskov
8eb7c58dbb Remove most files from format ignore list
Also moves formatting to use edition 2018, and to be done in parallel.
This brings near-linear speed ups (at least with a small amount of
cores).
2019-12-22 17:41:02 -05:00
bors
9b98af84c4 Auto merge of #67532 - Centril:rollup-3duj42d, r=Centril
Rollup of 8 pull requests

Successful merges:

 - #66877 (Add simpler entry points to const eval for common usages.)
 - #67299 (Add `ImmTy::try_from_(u)int` methods)
 - #67487 (Rustdoc mutability removal)
 - #67499 (Misc MIR building cleanups)
 - #67506 (Remove iter_private.rs)
 - #67508 (Fix typo in path parser name)
 - #67519 (Document why Any is not an unsafe trait)
 - #67525 (Utilize rust-lang/rust commit hashes in toolstate)

Failed merges:

r? @ghost
2019-12-22 19:30:57 +00:00
Mazdak Farrokhzad
9c5b73e9a4
Rollup merge of #67525 - Mark-Simulacrum:fix-toolstate-master, r=Centril
Utilize rust-lang/rust commit hashes in toolstate

When moving the script out of CI configuration and into a proper script
we lost track of the current directory changing (and as such the
parameters of the script needing to be different now).
2019-12-22 19:46:18 +01:00
Mazdak Farrokhzad
ce6f0b0a1e
Rollup merge of #67519 - Mark-Simulacrum:any-unsafe, r=Centril
Document why Any is not an unsafe trait

The added documentation is not public (i.e., not in a doc comment) but that seems appropriate for this sort of low-level detail.

Fixes #62303
2019-12-22 19:46:16 +01:00
Mazdak Farrokhzad
63d480a07f
Rollup merge of #67508 - davesque:master, r=Dylan-DPC
Fix typo in path parser name

It appears that a little typo crept into the name of a path parsing method.
2019-12-22 19:46:15 +01:00
Mazdak Farrokhzad
7fd41b5a73
Rollup merge of #67506 - qnighy:remove-iter-private, r=Dylan-DPC
Remove iter_private.rs

The contents of this file have been moved in #56932 (520e8b0) and the file should have been removed as well.
2019-12-22 19:46:13 +01:00
Mazdak Farrokhzad
19d749e593
Rollup merge of #67499 - Centril:mir-match-clean, r=matthewjasper
Misc MIR building cleanups

r? @matthewjasper
2019-12-22 19:46:12 +01:00
Mazdak Farrokhzad
76db2e3cc4
Rollup merge of #67487 - GuillaumeGomez:rustdoc-mutability-removal, r=Centril
Rustdoc mutability removal

Fixes #67470.

As discussed in another PR, the `clean::Mutability` type in rustdoc is useless. So let's remove it!

r? @Centril
2019-12-22 19:46:10 +01:00
Mazdak Farrokhzad
2b2cc38f5c
Rollup merge of #67299 - christianpoveda:try_immty_from_int, r=RalfJung
Add `ImmTy::try_from_(u)int` methods

r? @RalfJung
2019-12-22 19:46:08 +01:00
Mazdak Farrokhzad
97bee3a793
Rollup merge of #66877 - skinny121:const-eval-entry-points, r=oli-obk
Add simpler entry points to const eval for common usages.

I found the `tcx.const_eval` API to be complex/awkward to work with, because of the inherent complexity from all of the different situations it is called from. Though it mainly used in one of the following ways:
- Evaluates the value of a constant without any substitutions, e.g. evaluating a static, discriminant, etc.
- Evaluates the value of a resolved instance of a constant. this happens when evaluating unevaluated constants or normalising trait constants.
- Evaluates a promoted constant.

This PR adds three new functions `const_eval_mono`, `const_eval_resolve`, and `const_eval_promoted` to `TyCtxt`, which each cater to one of the three ways `tcx.const_eval`
 is normally used.
2019-12-22 19:46:07 +01:00
Guillaume Gomez
71ff18fb89 Fix invalid results showing back 2019-12-22 15:42:29 +01:00
Guillaume Gomez
b67701347a Improve code readability 2019-12-22 15:42:10 +01:00
Rust Toolstate Update
a6df38ec9f Utilize rust-lang/rust commit hashes in toolstate
When moving the script out of CI configuration and into a proper script
we lost track of the current directory changing (and as such the
parameters of the script needing to be different now).
2019-12-22 09:21:08 -05:00
bors
0d2817a439 Auto merge of #65939 - anp:incremental-rustfmt-rollout, r=Mark-Simulacrum
Enable incremental rustfmt adoption

Enables an incremental rollout of rustfmt usage within the compiler via a granular ignore configuration and automated enforcement. The decision to format the repository was approved in https://github.com/rust-lang/compiler-team/issues/80#issuecomment-491324079.

This PR includes:

* an `[ignore]` section to `rustfmt.toml` including most of the repository
* `./x.py` downloads rustfmt from a specific nightly (we do not pin to beta or stable as we need unstable features)
* an `./x.py fmt [--check]` command which runs cargo-fmt
* `./x.py fmt --check` runs during the same test step as `src/tools/tidy`, on master, but not on beta or stable as we don't want to depend on nightly rustfmt there.
* a commit to format `src/librustc_fs_util` as an initial target and to ensure enforcement is working from the start
2019-12-22 13:34:05 +00:00
Christian Poveda
683c4c788f
Add error message if Scalar::from_(u)int fails 2019-12-22 08:29:46 -05:00
Guillaume Gomez
4ce2384501 Improve JS code a bit by avoid erasing all event handlers 2019-12-22 14:14:37 +01:00
Mark Rousskov
6878913096 Document why Any is not an unsafe trait 2019-12-22 08:12:55 -05:00
Mark Rousskov
b9e4174d8c Do not run if rustfmt.toml does not exist
distcheck (and generally publishing tarballs) will not package
rustfmt.toml and we for now still support running tidy etc in those
tarballs.
2019-12-22 07:44:09 -05:00
Guillaume Gomez
0d7a49d356 Implement PrintWithSpace trait on hir::Mutability 2019-12-22 13:31:47 +01:00
bors
26286c7ad0 Auto merge of #66931 - cjgillot:hirene-preamble, r=eddyb
Allocate HIR on an arena 1/4

This PR is the first in a series of 4, aiming at allocating the HIR on an arena, as a memory optimisation.

1. This first PR lays the groundwork and migrates some low-hanging fruits.
2. The second PR will migrate `hir::Expr`, `hir::Pat` and related.
3. The third PR will migrate `hir::Ty` and related.
4. The final PR will be dedicated to eventual cleanups.

In order to make the transition as gradual as possible, some lowering routines receive `Box`-allocated data and move it into the arena. This is a bit wasteful, but hopefully temporary.
Nonetheless, special care should be taken to avoid double arena allocations.

Work mentored by @Zoxc.
2019-12-22 10:30:51 +00:00