]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoRollup merge of #67561 - euclio:remove-description, r=jonas-schievink
Mazdak Farrokhzad [Tue, 24 Dec 2019 03:40:00 +0000 (04:40 +0100)]
Rollup merge of #67561 - euclio:remove-description, r=jonas-schievink

remove `description` from `Error` impls in docs

Since `description` is soft-deprecated, there's no need to show it implemented in these examples.

4 years agoRollup merge of #67551 - ldm0:E0627, r=Dylan-DPC
Mazdak Farrokhzad [Tue, 24 Dec 2019 03:39:58 +0000 (04:39 +0100)]
Rollup merge of #67551 - ldm0:E0627, r=Dylan-DPC

Add long error code explanation message for E0627

Part of #61137.

r? @GuillaumeGomez

4 years agoRollup merge of #67547 - GuillaumeGomez:cleanup-err-codes, r=Dylan-DPC
Mazdak Farrokhzad [Tue, 24 Dec 2019 03:39:57 +0000 (04:39 +0100)]
Rollup merge of #67547 - GuillaumeGomez:cleanup-err-codes, r=Dylan-DPC

Cleanup err codes

r? @Dylan-DPC

4 years agoRollup merge of #67543 - JohnTitor:regression-tests, r=Centril
Mazdak Farrokhzad [Tue, 24 Dec 2019 03:39:55 +0000 (04:39 +0100)]
Rollup merge of #67543 - JohnTitor:regression-tests, r=Centril

Add regression tests for fixed ICEs

Closes #61747 (fixed from 1.41.0-nightly (4007d4ef2 2019-12-01))
Closes #66205 (fixed from 1.41.0-nightly (4007d4ef2 2019-12-01))
Closes #66270 (fixed by #66246)
Closes #67424 (fixed by #67160)

Also picking a minor nit up from #67071 with 101dd7bad9432730fa2f625ae43afcc2929457d4

r? @Centril

4 years agoRollup merge of #67337 - oli-obk:no_mut_static_ref_from_const, r=RalfJung
Mazdak Farrokhzad [Tue, 24 Dec 2019 03:39:53 +0000 (04:39 +0100)]
Rollup merge of #67337 - oli-obk:no_mut_static_ref_from_const, r=RalfJung

Ensure that evaluating or validating a constant never reads from a static

r? @RalfJung

as per https://github.com/rust-lang/rust/pull/66302#issuecomment-554663387

This does not yet address the fact that evaluation of a constant can read from a static (under unleash-miri)

4 years agoAuto merge of #66296 - Centril:bindings_after_at-init, r=pnkfelix
bors [Mon, 23 Dec 2019 21:49:44 +0000 (21:49 +0000)]
Auto merge of #66296 - Centril:bindings_after_at-init, r=pnkfelix

Initial implementation of `#![feature(bindings_after_at)]`

Following up on #16053, under the gate `#![feature(bindings_after_at)]`, `x @ Some(y)` is allowed subject to restrictions necessary for soundness.

The implementation and test suite should be fairly complete now.

One aspect that is not covered is the interaction with nested `#![feature(or_patterns)]`.
This is not possible to test at the moment in a good way because that feature has not progressed sufficiently and has fatal errors in MIR building. We should make sure to add such tests before we stabilize both features (but shipping one of them is fine).

r? @pnkfelix
cc @nikomatsakis @matthewjasper @pcwalton
cc https://github.com/rust-lang/rust/issues/65490

4 years agoAuto merge of #67560 - Centril:rollup-fzdpu9c, r=Centril
bors [Mon, 23 Dec 2019 18:28:33 +0000 (18:28 +0000)]
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

4 years agoBless tests
Oliver Scherer [Mon, 23 Dec 2019 16:48:22 +0000 (17:48 +0100)]
Bless tests

4 years agoApply suggestion from Centril
Yuki Okushi [Sun, 22 Dec 2019 23:24:11 +0000 (08:24 +0900)]
Apply suggestion from Centril

Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
4 years agoAdd test for issue-67424
Yuki Okushi [Sun, 22 Dec 2019 22:37:16 +0000 (07:37 +0900)]
Add test for issue-67424

4 years agoremove `description` from `Error` impls in docs
Andy Russell [Mon, 23 Dec 2019 15:47:28 +0000 (09:47 -0600)]
remove `description` from `Error` impls in docs

4 years agoTidy
Oliver Scherer [Mon, 23 Dec 2019 14:22:36 +0000 (15:22 +0100)]
Tidy

4 years agoRollup merge of #67559 - Mark-Simulacrum:drop-doc, r=RalfJung
Mazdak Farrokhzad [Mon, 23 Dec 2019 14:16:32 +0000 (15:16 +0100)]
Rollup merge of #67559 - Mark-Simulacrum:drop-doc, r=RalfJung

Document that calling Drop, even after it panics, is UB

Fixes #60822.

r? @gnzlbg

4 years agoRollup merge of #67546 - oli-obk:slice_pattern_ice, r=varkor
Mazdak Farrokhzad [Mon, 23 Dec 2019 14:16:31 +0000 (15:16 +0100)]
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

4 years agoRollup merge of #67538 - varkor:lhs-assign-diagnostics, r=Centril
Mazdak Farrokhzad [Mon, 23 Dec 2019 14:16:29 +0000 (15:16 +0100)]
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.

4 years agoRollup merge of #67536 - Centril:move-is_range_literal, r=Mark-Simulacrum
Mazdak Farrokhzad [Mon, 23 Dec 2019 14:16:28 +0000 (15:16 +0100)]
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

4 years agoRollup merge of #67527 - GuillaumeGomez:results-show-too-much, r=kinnison
Mazdak Farrokhzad [Mon, 23 Dec 2019 14:16:26 +0000 (15:16 +0100)]
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

4 years agoRollup merge of #67507 - Mark-Simulacrum:purge-uninit, r=Centril
Mazdak Farrokhzad [Mon, 23 Dec 2019 14:16:24 +0000 (15:16 +0100)]
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

4 years agoRollup merge of #67466 - oli-obk:const_intrinsic, r=Centril
Mazdak Farrokhzad [Mon, 23 Dec 2019 14:16:23 +0000 (15:16 +0100)]
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

4 years agoRollup merge of #67233 - Luro02:cursor_traits, r=sfackler
Mazdak Farrokhzad [Mon, 23 Dec 2019 14:16:21 +0000 (15:16 +0100)]
Rollup merge of #67233 - Luro02:cursor_traits, r=sfackler

Add PartialEq and Eq to Cursor

closes #67226

4 years agoFix typo
Oliver Scherer [Mon, 23 Dec 2019 14:11:09 +0000 (15:11 +0100)]
Fix typo

4 years agoDocument that calling Drop, even after it panics, is UB
Mark Rousskov [Mon, 23 Dec 2019 13:13:12 +0000 (08:13 -0500)]
Document that calling Drop, even after it panics, is UB

4 years agoUpdate src/librustc_mir/interpret/intern.rs
Oliver Scherer [Mon, 23 Dec 2019 13:50:34 +0000 (14:50 +0100)]
Update src/librustc_mir/interpret/intern.rs

Co-Authored-By: Ralf Jung <post@ralfj.de>
4 years agoShow `const_err` lints
Oliver Scherer [Sun, 22 Dec 2019 20:42:50 +0000 (21:42 +0100)]
Show `const_err` lints

4 years agoConstants reading or referencing statics is illegal
Oliver Scherer [Sun, 22 Dec 2019 20:40:00 +0000 (21:40 +0100)]
Constants reading or referencing statics is illegal

and some uses of it will be illegal forever
(e.g. mutable or interior mutable statics)

4 years agoDynamically prevent constants from accessing statics
Oliver Scherer [Mon, 16 Dec 2019 14:23:42 +0000 (15:23 +0100)]
Dynamically prevent constants from accessing statics

4 years agoPanic on mutable allocs in constants
Oliver Scherer [Mon, 16 Dec 2019 14:23:26 +0000 (15:23 +0100)]
Panic on mutable allocs in constants

4 years agoadjust E0303 error code docs
Mazdak Farrokhzad [Sun, 15 Dec 2019 07:06:56 +0000 (08:06 +0100)]
adjust E0303 error code docs

4 years agoRemove `bindings_after_at` from `INCOMPLETE_FEATURES`.
Mazdak Farrokhzad [Sun, 15 Dec 2019 04:06:54 +0000 (05:06 +0100)]
Remove `bindings_after_at` from `INCOMPLETE_FEATURES`.

4 years agoTest that nested type ascription is banned.
Mazdak Farrokhzad [Sun, 15 Dec 2019 03:52:13 +0000 (04:52 +0100)]
Test that nested type ascription is banned.

4 years agoTest that `_ @ subpat` is syntactically rejected.
Mazdak Farrokhzad [Sun, 15 Dec 2019 03:40:26 +0000 (04:40 +0100)]
Test that `_ @ subpat` is syntactically rejected.

4 years agoharden & split borrowck-pat-at-and-box
Mazdak Farrokhzad [Sun, 15 Dec 2019 03:29:34 +0000 (04:29 +0100)]
harden & split borrowck-pat-at-and-box

4 years agoenhance borrowck-pat-by-copy-bindings-in-at
Mazdak Farrokhzad [Sun, 15 Dec 2019 03:12:35 +0000 (04:12 +0100)]
enhance borrowck-pat-by-copy-bindings-in-at

4 years agoclarify bind-by-move-neither-can-livee..
Mazdak Farrokhzad [Sun, 15 Dec 2019 03:09:47 +0000 (04:09 +0100)]
clarify bind-by-move-neither-can-livee..

4 years agobindings_after_at: harden tests wrt. contexts & slice_patterns
Mazdak Farrokhzad [Sun, 15 Dec 2019 02:50:55 +0000 (03:50 +0100)]
bindings_after_at: harden tests wrt. contexts & slice_patterns

4 years agobindings_after_at: harden tests wrt. promotion
Mazdak Farrokhzad [Sat, 14 Dec 2019 23:50:44 +0000 (00:50 +0100)]
bindings_after_at: harden tests wrt. promotion

4 years ago--bless bindings-after-at tests
Mazdak Farrokhzad [Sat, 14 Dec 2019 23:32:20 +0000 (00:32 +0100)]
--bless bindings-after-at tests

4 years agodocument check_borrow_conflicts_in_at_patterns
Mazdak Farrokhzad [Sat, 14 Dec 2019 22:57:20 +0000 (23:57 +0100)]
document check_borrow_conflicts_in_at_patterns

4 years agoimprove robustness of pat walkers
Mazdak Farrokhzad [Sat, 14 Dec 2019 22:43:21 +0000 (23:43 +0100)]
improve robustness of pat walkers

4 years agorefactor with extract_binding_mode
Mazdak Farrokhzad [Sat, 14 Dec 2019 22:18:39 +0000 (23:18 +0100)]
refactor with extract_binding_mode

4 years agoadd check_borrow_conflicts_in_at_patterns analysis
Mazdak Farrokhzad [Sat, 14 Dec 2019 16:43:07 +0000 (17:43 +0100)]
add check_borrow_conflicts_in_at_patterns analysis

4 years agocheck_legality_of_move_bindings: generalize diagnostics & add comments
Mazdak Farrokhzad [Sat, 14 Dec 2019 17:20:13 +0000 (18:20 +0100)]
check_legality_of_move_bindings: generalize diagnostics & add comments

4 years agoadd a fixme
Mazdak Farrokhzad [Sat, 14 Dec 2019 16:43:48 +0000 (17:43 +0100)]
add a fixme

4 years agoIntroduce `#![feature(bindings_after_at)]`.
Mazdak Farrokhzad [Mon, 11 Nov 2019 10:39:52 +0000 (11:39 +0100)]
Introduce `#![feature(bindings_after_at)]`.
Under the gate, `x @ Some(y)` is allowed.
This is subject to various restrictions for soundness.

4 years agoYield is an expression form, not a statement.
Donough Liu [Mon, 23 Dec 2019 13:07:13 +0000 (21:07 +0800)]
Yield is an expression form, not a statement.

4 years agoAdd long error code explanation message for E0627
Donough Liu [Mon, 23 Dec 2019 13:05:02 +0000 (21:05 +0800)]
Add long error code explanation message for E0627

4 years agoFix reformatting rebase issues
varkor [Mon, 23 Dec 2019 12:39:48 +0000 (12:39 +0000)]
Fix reformatting rebase issues

4 years agois_range_literal: leave FIXME
Mazdak Farrokhzad [Sun, 22 Dec 2019 19:55:27 +0000 (20:55 +0100)]
is_range_literal: leave FIXME

4 years agois_range_literal: fix fallout
Mazdak Farrokhzad [Sun, 22 Dec 2019 19:53:30 +0000 (20:53 +0100)]
is_range_literal: fix fallout

4 years agoAdd new folder for destructuring assignment tests
varkor [Sun, 22 Dec 2019 23:09:54 +0000 (23:09 +0000)]
Add new folder for destructuring assignment tests

4 years agoAdd span information to `ExprKind::Assign`
varkor [Sun, 22 Dec 2019 21:08:53 +0000 (21:08 +0000)]
Add span information to `ExprKind::Assign`

4 years agoRecognise nested tuples/arrays/structs
varkor [Sun, 22 Dec 2019 20:27:42 +0000 (20:27 +0000)]
Recognise nested tuples/arrays/structs

4 years agoAdd note about destructuring assignments
varkor [Sun, 22 Dec 2019 20:14:08 +0000 (20:14 +0000)]
Add note about destructuring assignments

4 years agoImprove invalid assignment error
varkor [Sun, 22 Dec 2019 18:42:15 +0000 (18:42 +0000)]
Improve invalid assignment error

4 years agoAdd the full issue reference to equality constraints in `where` clauses
varkor [Sun, 22 Dec 2019 18:18:49 +0000 (18:18 +0000)]
Add the full issue reference to equality constraints in `where` clauses

4 years agoMove `{hir::lowering -> hir}::is_range_literal`.
Mazdak Farrokhzad [Sun, 22 Dec 2019 19:46:14 +0000 (20:46 +0100)]
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.

4 years agoUpdate src/librustc_mir/interpret/place.rs
Oliver Scherer [Mon, 23 Dec 2019 10:27:34 +0000 (11:27 +0100)]
Update src/librustc_mir/interpret/place.rs

Co-Authored-By: Ralf Jung <post@ralfj.de>
4 years agoUpdate E0124.md
Dylan DPC [Mon, 23 Dec 2019 07:25:33 +0000 (12:55 +0530)]
Update E0124.md

4 years agoRemove mem::uninitalized from tests
Mark Rousskov [Sun, 22 Dec 2019 02:43:13 +0000 (21:43 -0500)]
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".

4 years agoAuto merge of #67540 - Mark-Simulacrum:fmt-the-world, r=Centril
bors [Mon, 23 Dec 2019 02:47:52 +0000 (02:47 +0000)]
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.

4 years agoChange bound order in rustfmt test
Mark Rousskov [Mon, 23 Dec 2019 02:46:51 +0000 (21:46 -0500)]
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.

4 years agotemporary retry around msys2 install
Mark Rousskov [Mon, 23 Dec 2019 01:06:02 +0000 (20:06 -0500)]
temporary retry around msys2 install

4 years agoFix ICE in mir interpretation
Oliver Scherer [Mon, 23 Dec 2019 00:24:11 +0000 (01:24 +0100)]
Fix ICE in mir interpretation

4 years agotest fallout
Mark Rousskov [Mon, 23 Dec 2019 00:04:10 +0000 (19:04 -0500)]
test fallout

4 years agoFormat the world
Mark Rousskov [Sun, 22 Dec 2019 22:42:04 +0000 (17:42 -0500)]
Format the world

4 years agoAdd test for issue-66270
Yuki Okushi [Sun, 22 Dec 2019 22:36:30 +0000 (07:36 +0900)]
Add test for issue-66270

4 years agoAdd test for issue-66205
Yuki Okushi [Sun, 22 Dec 2019 22:36:02 +0000 (07:36 +0900)]
Add test for issue-66205

4 years agoAdd test for issue-61747
Yuki Okushi [Sun, 22 Dec 2019 22:35:18 +0000 (07:35 +0900)]
Add test for issue-61747

4 years agoUse `is_none` instead of `if let`
Yuki Okushi [Sun, 22 Dec 2019 20:13:46 +0000 (05:13 +0900)]
Use `is_none` instead of `if let`

4 years agoRemove most files from format ignore list
Mark Rousskov [Sun, 22 Dec 2019 21:43:54 +0000 (16:43 -0500)]
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).

4 years agoClean up E0128 explanation
Guillaume Gomez [Sun, 22 Dec 2019 19:39:25 +0000 (20:39 +0100)]
Clean up E0128 explanation

4 years agoClean up E0124 explanation
Guillaume Gomez [Sun, 22 Dec 2019 19:39:17 +0000 (20:39 +0100)]
Clean up E0124 explanation

4 years agoAuto merge of #67532 - Centril:rollup-3duj42d, r=Centril
bors [Sun, 22 Dec 2019 19:30:57 +0000 (19:30 +0000)]
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

4 years agoRollup merge of #67525 - Mark-Simulacrum:fix-toolstate-master, r=Centril
Mazdak Farrokhzad [Sun, 22 Dec 2019 18:46:18 +0000 (19:46 +0100)]
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).

4 years agoRollup merge of #67519 - Mark-Simulacrum:any-unsafe, r=Centril
Mazdak Farrokhzad [Sun, 22 Dec 2019 18:46:16 +0000 (19:46 +0100)]
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

4 years agoRollup merge of #67508 - davesque:master, r=Dylan-DPC
Mazdak Farrokhzad [Sun, 22 Dec 2019 18:46:15 +0000 (19:46 +0100)]
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.

4 years agoRollup merge of #67506 - qnighy:remove-iter-private, r=Dylan-DPC
Mazdak Farrokhzad [Sun, 22 Dec 2019 18:46:13 +0000 (19:46 +0100)]
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.

4 years agoRollup merge of #67499 - Centril:mir-match-clean, r=matthewjasper
Mazdak Farrokhzad [Sun, 22 Dec 2019 18:46:12 +0000 (19:46 +0100)]
Rollup merge of #67499 - Centril:mir-match-clean, r=matthewjasper

Misc MIR building cleanups

r? @matthewjasper

4 years agoRollup merge of #67487 - GuillaumeGomez:rustdoc-mutability-removal, r=Centril
Mazdak Farrokhzad [Sun, 22 Dec 2019 18:46:10 +0000 (19:46 +0100)]
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

4 years agoRollup merge of #67299 - christianpoveda:try_immty_from_int, r=RalfJung
Mazdak Farrokhzad [Sun, 22 Dec 2019 18:46:08 +0000 (19:46 +0100)]
Rollup merge of #67299 - christianpoveda:try_immty_from_int, r=RalfJung

Add `ImmTy::try_from_(u)int` methods

r? @RalfJung

4 years agoRollup merge of #66877 - skinny121:const-eval-entry-points, r=oli-obk
Mazdak Farrokhzad [Sun, 22 Dec 2019 18:46:07 +0000 (19:46 +0100)]
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.

4 years agoFix invalid results showing back
Guillaume Gomez [Sun, 22 Dec 2019 14:42:29 +0000 (15:42 +0100)]
Fix invalid results showing back

4 years agoImprove code readability
Guillaume Gomez [Sun, 22 Dec 2019 14:42:10 +0000 (15:42 +0100)]
Improve code readability

4 years agoUtilize rust-lang/rust commit hashes in toolstate
Rust Toolstate Update [Sun, 22 Dec 2019 14:21:08 +0000 (09:21 -0500)]
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).

4 years agoAuto merge of #65939 - anp:incremental-rustfmt-rollout, r=Mark-Simulacrum
bors [Sun, 22 Dec 2019 13:34:05 +0000 (13:34 +0000)]
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

4 years agoAdd error message if `Scalar::from_(u)int` fails
Christian Poveda [Sun, 22 Dec 2019 13:22:14 +0000 (08:22 -0500)]
Add error message if `Scalar::from_(u)int` fails

4 years agoImprove JS code a bit by avoid erasing all event handlers
Guillaume Gomez [Sun, 22 Dec 2019 13:14:37 +0000 (14:14 +0100)]
Improve JS code a bit by avoid erasing all event handlers

4 years agoDocument why Any is not an unsafe trait
Mark Rousskov [Sun, 22 Dec 2019 12:54:18 +0000 (07:54 -0500)]
Document why Any is not an unsafe trait

4 years agoDo not run if rustfmt.toml does not exist
Mark Rousskov [Sun, 22 Dec 2019 12:44:09 +0000 (07:44 -0500)]
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.

4 years agoImplement PrintWithSpace trait on hir::Mutability
Guillaume Gomez [Sat, 21 Dec 2019 14:47:27 +0000 (15:47 +0100)]
Implement PrintWithSpace trait on hir::Mutability

4 years agoAuto merge of #66931 - cjgillot:hirene-preamble, r=eddyb
bors [Sun, 22 Dec 2019 10:30:51 +0000 (10:30 +0000)]
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.

4 years agoadd partialeq and eq to cursor
Luro02 [Wed, 11 Dec 2019 16:59:32 +0000 (17:59 +0100)]
add partialeq and eq to cursor

4 years agoAuto merge of #67505 - Centril:rollup-7win7ty, r=Centril
bors [Sun, 22 Dec 2019 07:01:50 +0000 (07:01 +0000)]
Auto merge of #67505 - Centril:rollup-7win7ty, r=Centril

Rollup of 6 pull requests

Successful merges:

 - #67148 ( Refactor type & bounds parsing thoroughly)
 - #67410 (Reenable static linking of libstdc++ on windows-gnu)
 - #67439 (Cleanup `lower_pattern_unadjusted` & Improve slice pat typeck)
 - #67480 (Require issue = "none" over issue = "0" in unstable attributes)
 - #67500 (Tweak non_shorthand_field_patterns' suggestion)
 - #67504 (Warn against relying on ?Sized being last)

Failed merges:

r? @ghost

4 years agoFix typo in path parser name
David Sanders [Sun, 22 Dec 2019 05:11:02 +0000 (22:11 -0700)]
Fix typo in path parser name

4 years agoAuto merge of #67486 - matthiaskrgr:submodule_upd, r=oli-obk
bors [Sun, 22 Dec 2019 03:42:58 +0000 (03:42 +0000)]
Auto merge of #67486 - matthiaskrgr:submodule_upd, r=oli-obk

submodules: update clippy from 69f99e74 to acbc609a

Changes:
````
rustup "Merge `ast::Mutability` and `mir::Mutability`"
rustup https://github.com/rust-lang/rust/pull/67130
rustup https://github.com/rust-lang/rust/pull/67455
Update lints for `iterator_step_by_zero` changes
Fix 'redudant' spelling in redundant_clone docs
Fix documentation example for unnecessary_filter_map.
Fix `expect_fun_call` false negative on references
Fix `iterator_step_by_zero` description in declaration
Fix `iterator_step_by_zero` definition
Correct `iterator_step_by_zero` documentation
Update iterator_step_by_zero
Prevent `cmp_nan` when inside constants
Detect comparisons with NAN constants
Fix clippy build failure
````

r? @oli-obk  @Manishearth

4 years agoRollup merge of #67504 - Mark-Simulacrum:note-data-offset, r=Centril
Mazdak Farrokhzad [Sun, 22 Dec 2019 01:40:07 +0000 (02:40 +0100)]
Rollup merge of #67504 - Mark-Simulacrum:note-data-offset, r=Centril

Warn against relying on ?Sized being last

Fixes #62522

4 years agoRollup merge of #67500 - JohnTitor:non-shorthand-field-patterns, r=Centril
Mazdak Farrokhzad [Sun, 22 Dec 2019 01:40:06 +0000 (02:40 +0100)]
Rollup merge of #67500 - JohnTitor:non-shorthand-field-patterns, r=Centril

Tweak non_shorthand_field_patterns' suggestion

Fixes #66434

r? @estebank

4 years agoRollup merge of #67480 - rossmacarthur:fix-41260-avoid-issue-0-part-2, r=Centril
Mazdak Farrokhzad [Sun, 22 Dec 2019 01:40:04 +0000 (02:40 +0100)]
Rollup merge of #67480 - rossmacarthur:fix-41260-avoid-issue-0-part-2, r=Centril

Require issue = "none" over issue = "0" in unstable attributes

These changes make the use of `issue = "none"` required in unstable attributes throughout the compiler.

Notes:
- #66299 is now in beta so `issue = "none"` is accepted.
- The `tidy` tool now fails on `issue = "0"`.
- Tests that used `issue = "0"` were changed to use `issue = "none"`, except for _one_ that asserts `issue = "0"` can still be used.
- The compiler still allows `issue = "0"` because some submodules require it, this could be disallowed once these are updated.

Resolves #41260

r? @varkor

4 years agoRollup merge of #67439 - Centril:clean-hair-slice, r=matthewjasper
Mazdak Farrokhzad [Sun, 22 Dec 2019 01:40:03 +0000 (02:40 +0100)]
Rollup merge of #67439 - Centril:clean-hair-slice, r=matthewjasper

Cleanup `lower_pattern_unadjusted` & Improve slice pat typeck

Following up on https://github.com/rust-lang/rust/pull/67318, in this PR, the HAIR lowering of patterns (`lower_pattern_unadjusted`) is cleaned up with a focus on slice patterns (in particular, some dead code is removed). Moreover, `check_pat_slice` is refactored some more.

r? @matthewjasper

4 years agoRollup merge of #67410 - mati865:mingw_link_fix, r=Mark-Simulacrum
Mazdak Farrokhzad [Sun, 22 Dec 2019 01:40:01 +0000 (02:40 +0100)]
Rollup merge of #67410 - mati865:mingw_link_fix, r=Mark-Simulacrum

Reenable static linking of libstdc++ on windows-gnu

Fixes https://github.com/rust-lang/rust/issues/67408

Verified locally that `rustc_driver` is now statically linked to libstdc++.