Commit Graph

94342 Commits

Author SHA1 Message Date
Nicholas Nethercote ab9bbf48db Avoid unnecessary rust_2018 calls.
The commit combines two calls into one by saving the result in a local
variable. The commit also moves the check for `async` later, so that
when a different keyword is present the `rust_2018` call will be avoided
completely.
2019-06-05 07:43:15 +10:00
Nicholas Nethercote 425736dc97 Add a useful comment about this file. 2019-06-05 07:43:15 +10:00
Nicholas Nethercote dc807a9f7e Add walk_chain.
This combines multiple `HygieneData::with` calls on a hot path.
2019-06-05 07:43:15 +10:00
Nicholas Nethercote 6596743d5e Add SyntaxContext::hygienic_eq.
This combines multiple `HygieneData::with` calls into one, by combining
parts of `hygienic_eq` and `adjust_ident`.
2019-06-05 07:43:15 +10:00
Nicholas Nethercote f9209fcd63 Add and use SyntaxContext::outer_and_expn_info.
This combines two `HygieneData::with` calls into one on a hot path.
2019-06-05 07:43:15 +10:00
Nicholas Nethercote e19857c4db Optimize glob_adjust and reverse_glob_adjust.
They can each now do a single `HygieneData::with` call by replacing the
`SyntaxContext` and `Mark` methods with the equivalent methods from
`HygieneData`.
2019-06-05 07:43:14 +10:00
Nicholas Nethercote 58a486928e Add HygieneData::apply_mark.
This combines two `HygieneData::with` calls into one.
2019-06-05 07:43:14 +10:00
Nicholas Nethercote 4527a868d6 Add HygieneData::apply_mark_with_transparency.
Also remove `HygieneData::apply_mark_internal`, which is no longer
needed.
2019-06-05 07:43:14 +10:00
Nicholas Nethercote a84aee3dbe Add HygieneData::apply_mark_internal. 2019-06-05 07:43:14 +10:00
Nicholas Nethercote a02b2e36c0 Add HygieneData::marks. 2019-06-05 07:43:14 +10:00
Nicholas Nethercote 88fd7a8eb7 Add HygieneData::adjust. 2019-06-05 07:43:14 +10:00
Nicholas Nethercote cd64cc835d Add HygieneData::remove_mark. 2019-06-05 07:43:14 +10:00
Nicholas Nethercote 7bec8c94b4 Add HygieneData::default_transparency.
Also use `HygieneData::expn_info` in an appropriate place.
2019-06-05 07:43:14 +10:00
Nicholas Nethercote 0ba36ea7c1 Add some useful methods to HygieneData. 2019-06-05 07:43:14 +10:00
Nicholas Nethercote 8797e8cabd Move modern calls inside glob_adjust and reverse_glob_adjust. 2019-06-05 07:43:14 +10:00
bors 97c9437585 Auto merge of #61454 - lzutao:ice-rotate_left, r=RalfJung
Fix integer overflow in rotate_left

Closes #61406
r? @RalfJung
2019-06-04 17:20:14 +00:00
Lzu Tao d392cb5967 Fix integer overflow in rotate_left 2019-06-04 15:26:10 +00:00
bors acda261de8 Auto merge of #61437 - christianpoveda:const-eval-indirects, r=wesleywiser,oli-obk
Add const-eval support for indirects

r? @wesleywiser
2019-06-04 12:37:44 +00:00
Wesley Wiser b2536781af Whitespace fixes 2019-06-04 06:30:36 -04:00
bors 021a503309 Auto merge of #61136 - matthewjasper:cannot-move-errors, r=pnkfelix
Make cannot move errors more consistent with other borrowck errors

* Note the type of the place being moved in all cases.
* Note the place being moved from.
* Simplify the search for overloaded place operators
* Extend the note for move from overloaded deref apply to all types.
* Add a note for moves from overloaded index.
* Special case moves for closure captures.

r? @pnkfelix
2019-06-04 08:31:53 +00:00
bors c22ce2806c Auto merge of #61510 - Centril:rollup-bvi95y2, r=Centril
Rollup of 13 pull requests

Successful merges:

 - #61135 (Fix documentation of `Rc::make_mut` regarding `rc::Weak`.)
 - #61404 (miri unsizing: fix projecting into a field of an operand)
 - #61409 (Fix an ICE with a const argument in a trait)
 - #61413 (Re-implement async fn drop order lowering )
 - #61419 (Add an unusual-conversion example to to_uppercase)
 - #61420 (Succinctify splice docs)
 - #61444 (Suggest using `as_ref` on `*const T`)
 - #61446 (On TerminatorKind::DropAndReplace still handle unused_mut correctly)
 - #61485 (azure: retry s3 upload if it fails)
 - #61489 (ci: Reenable step timings on AppVeyor)
 - #61496 (Do not panic in tidy on unbalanced parentheses in cfg's)
 - #61497 (Treat 0 as special value for codegen-units-std)
 - #61499 (Add regression test for existential type ICE #53457)

Failed merges:

r? @ghost
2019-06-04 05:37:44 +00:00
Christian Poveda 31ab573052 Add const-eval support for indirects 2019-06-03 23:53:46 -05:00
Mazdak Farrokhzad 5baa58ea5f Rollup merge of #61499 - varkor:issue-53457, r=oli-obk
Add regression test for existential type ICE #53457

Closes #53457.
2019-06-04 04:48:31 +02:00
Mazdak Farrokhzad 5deaa0af41 Rollup merge of #61497 - Mark-Simulacrum:codegen-units-std-num-cpus, r=alexcrichton
Treat 0 as special value for codegen-units-std

Fixes #57669
2019-06-04 04:48:29 +02:00
Mazdak Farrokhzad 6ad6ef2355 Rollup merge of #61496 - Mark-Simulacrum:tidy-unbalanced-parens, r=varkor
Do not panic in tidy on unbalanced parentheses in cfg's

Fixes #60505
2019-06-04 04:48:27 +02:00
Mazdak Farrokhzad cb2feb6460 Rollup merge of #61489 - alexcrichton:appveyor-timings, r=pietroalbini
ci: Reenable step timings on AppVeyor

This was accidentally regressed in #60777 by accident, and we've stopped
printing out step timings on AppVeyor recently reducing the ability for
us to track build times over time!
2019-06-04 04:48:25 +02:00
Mazdak Farrokhzad 31d7aa48b4 Rollup merge of #61485 - pietroalbini:retry-azure-upload, r=alexcrichton
azure: retry s3 upload if it fails

We had some cases (like [this](https://dev.azure.com/rust-lang/e71b0ddf-dd27-435a-873c-e30f86eea377/_apis/build/builds/370/logs/734) a few hours ago) when uploading to S3 fails with a network error. This retries the upload if it fails.

r? @alexcrichton
2019-06-04 04:48:23 +02:00
Mazdak Farrokhzad f8a236394c Rollup merge of #61446 - czipperz:nll-unused_mut, r=matthewjasper
On TerminatorKind::DropAndReplace still handle unused_mut correctly

Closes #61424

- [x] Todo add regression test
2019-06-04 04:48:21 +02:00
Mazdak Farrokhzad 28ce2b1fdb Rollup merge of #61444 - estebank:const-pt-as-ref, r=matthewjasper
Suggest using `as_ref` on `*const T`

Fix #21596.
2019-06-04 04:48:19 +02:00
Mazdak Farrokhzad 1ae4727f3f Rollup merge of #61420 - felixrabe:patch-2, r=dtolnay
Succinctify splice docs
2019-06-04 04:48:16 +02:00
Mazdak Farrokhzad 5d1d2992ef Rollup merge of #61419 - scottmcm:casing-is-on-strings, r=cramertj
Add an unusual-conversion example to to_uppercase

Like how to_lowercase has ὈΔΥΣΣΕΎΣ.
2019-06-04 04:48:13 +02:00
Mazdak Farrokhzad 3a06a93f59 Rollup merge of #61413 - davidtwco:async-argument-order-in-a-sane-way, r=eddyb
Re-implement async fn drop order lowering

This PR re-implements the async fn drop order lowering changes so
that it all takes place in HIR lowering, building atop the work done by
@eddyb to refactor `Res::Upvar`.

Previously, this types involved in the lowering were constructed in
libsyntax as they had to be used during name resolution and HIR
lowering. This was awful because none of that logic should have existed
in libsyntax.

This commit also changes `ArgSource` to keep a `HirId` to the original
argument pattern rather than a cloned copy of the pattern.

Only b7aa4ed and 71fb8fa should be reviewed, any other commits
are from #61276 (though 447e336 might end up staying in this PR).

As a nice side effect, it also fixes #61187 (cc #61192).

r? @eddyb
cc @cramertj
2019-06-04 04:48:11 +02:00
Mazdak Farrokhzad 1563514196 Rollup merge of #61409 - varkor:condition-trait-param-ice, r=oli-obk
Fix an ICE with a const argument in a trait

This goes some way towards fixing https://github.com/rust-lang/rust/issues/61383 (the reduced test case is fixed).
2019-06-04 04:48:08 +02:00
Mazdak Farrokhzad fb4652e85f Rollup merge of #61404 - RalfJung:miri-unsize, r=oli-obk
miri unsizing: fix projecting into a field of an operand

I don't know why this open-coded an operand field projection. Probably this code predates one or more of my refactorings.

Fixes https://github.com/rust-lang/miri/issues/754

r? @oli-obk
2019-06-04 04:48:06 +02:00
Mazdak Farrokhzad 45cdc6d578 Rollup merge of #61135 - czipperz:rc-make_mut-weak-doc, r=Mark-Simulacrum
Fix documentation of `Rc::make_mut` regarding `rc::Weak`.

Closes #60961
2019-06-04 04:48:03 +02:00
bors dc7c4aa804 Auto merge of #61467 - Manishearth:clippyup, r=Manishearth
Update clippy

r? @ghost
2019-06-04 02:42:13 +00:00
Manish Goregaokar 8704947ad2 Update clippy 2019-06-03 16:00:38 -07:00
bors e22b7a3eef Auto merge of #59148 - lcnr:unchecked_maths, r=eddyb
add support for unchecked math

add compiler support for
```rust
/// Returns the result of an unchecked addition, resulting in
/// undefined behavior when `x + y > T::max_value()` or `x + y < T::min_value()`.
pub fn unchecked_add<T>(x: T, y: T) -> T;

/// Returns the result of an unchecked substraction, resulting in
/// undefined behavior when `x - y > T::max_value()` or `x - y < T::min_value()`.
pub fn unchecked_sub<T>(x: T, y: T) -> T;

/// Returns the result of an unchecked multiplication, resulting in
/// undefined behavior when `x * y > T::max_value()` or `x * y < T::min_value()`.
pub fn unchecked_mul<T>(x: T, y: T) -> T;
```

cc https://github.com/rust-lang/rfcs/issues/2508
2019-06-03 22:05:55 +00:00
lcnr/Bastian Kauschke d7e0834c5f add ui tests for unchecked math 2019-06-03 21:30:25 +02:00
bors 6ffb8f53ee Auto merge of #61100 - varkor:must_use-tuple-expr, r=cramertj
Apply #[must_use] lint to components of tuples

Fixes https://github.com/rust-lang/rust/issues/61061.
2019-06-03 19:12:17 +00:00
Mark Rousskov 5ce3c8137b Treat 0 as special value for codegen-units-std
Fixes #57669
2019-06-03 12:57:29 -06:00
varkor 1c6dce8b6d Add ui/impl-trait/issues folder 2019-06-03 19:57:13 +01:00
varkor 41dd21a9bc Add a regression test for #53457 2019-06-03 19:54:28 +01:00
Mark Rousskov 242056cadf Do not panic in tidy on unbalanced parentheses in cfg's 2019-06-03 11:53:09 -06:00
varkor de2bf3a761 Add nested must_use variant 2019-06-03 18:50:32 +01:00
varkor 81fa794af9 Specify tuple element in lint message 2019-06-03 18:19:29 +01:00
varkor 058551c4fd Add function call to test 2019-06-03 18:19:29 +01:00
varkor 3c768ade4d Fix issue with recursively encountering uninhabited type 2019-06-03 18:19:29 +01:00
varkor e121d9671a Use precise span for must_use tuple components 2019-06-03 18:19:29 +01:00
varkor fd36b5fd52 Add test for #[must_use] in tuples 2019-06-03 18:19:29 +01:00