Commit Graph

94372 Commits

Author SHA1 Message Date
Santiago Pastorino
0cfaa28bc5 Make LocalAnalizer visitor iterate instead of recurse 2019-06-06 05:17:26 +02:00
Santiago Pastorino
2bdaccbbcf Make UnsafetyChecker visitor iterate instead of recurse 2019-06-06 05:17:19 +02:00
bors
47f4975cd7 Auto merge of #61498 - TankhouseAle:const-fn-type-name, r=oli-obk
Add "type_name" support in emulate_intrinsic()

I did some dumb Git things and deleted my original fork repo semi-accidentally (but probably for the best as I'd messed up the history.)

This is the same issue as #61399, which was obviously auto-closed, to be clear.
2019-06-05 15:40:16 +00:00
bors
2a1d6c83d3 Auto merge of #61484 - nnethercote:avoid-more-hygiene-lookups, r=petrochenkov
Avoid more hygiene lookups

Mostly by combining multiple `HygieneData::with` calls into a single call on hot paths.

r? @petrochenkov
2019-06-05 12:46:15 +00:00
bors
817d2feb13 Auto merge of #61502 - alexcrichton:update-backtrace, r=estebank
std: Update dependency on `backtrace`

Discovered in #61416 an accidental regression in libstd's backtrace
behavior is that it previously attempted to consult libbacktrace and
would then fall back to `dladdr` if libbacktrace didn't report anything.
The `backtrace` crate, however, did not do this, so that's now been
fixed!

Changes: https://github.com/rust-lang/backtrace-rs/compare/0.3.25...0.3.29

Closes #61416
2019-06-05 08:20:20 +00:00
Alex Crichton
fa1b6add09 std: Update dependency on backtrace
Discovered in #61416 an accidental regression in libstd's backtrace
behavior is that it previously attempted to consult libbacktrace and
would then fall back to `dladdr` if libbacktrace didn't report anything.
The `backtrace` crate, however, did not do this, so that's now been
fixed!

Changes: https://github.com/rust-lang/backtrace-rs/compare/0.3.25...0.3.27

Closes #61416
2019-06-04 18:45:39 -07:00
Nicholas Nethercote
4c9ecbf3d1 Add modernize_and_adjust methods.
These combine two `HygieneData::with` calls into one.
2019-06-05 09:09:35 +10:00
bors
81eb15210a Auto merge of #61527 - pietroalbini:rollup-vhxyqlk, r=pietroalbini
Rollup of 5 pull requests

Successful merges:

 - #61069 (Make MIR drop terminators borrow the dropped location)
 - #61453 (Remove unneeded feature attr from atomic integers doctests)
 - #61488 (Fix NLL typeck ICEs)
 - #61500 (Fix regression 61475)
 - #61523 (Hide gen_future API from documentation)

Failed merges:

r? @ghost
2019-06-04 23:05:05 +00:00
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
Pietro Albini
e83dcebe4f
Rollup merge of #61523 - Nemo157:hide-gen-future, r=cramertj
Hide gen_future API from documentation

This is internal rustc only API which should never be used outside code created by the current `async` transform, if it is used then the panic messages don't make sense as they're written from the perspective of that meaning there is a bug in the `async` transform (e.g. #61482).
2019-06-04 22:39:41 +02:00
Pietro Albini
46344122d1
Rollup merge of #61500 - estebank:expregression, r=petrochenkov
Fix regression 61475

Addresses #61475.
2019-06-04 22:39:39 +02:00
Pietro Albini
d5643be9b4
Rollup merge of #61488 - matthewjasper:fix-nll-typeck-ices, r=pnkfelix
Fix NLL typeck ICEs

* Don't ICE when a type containing a region is constrained by nothing
* Don't ICE trying to normalize a type in a `ParamEnv` containing global bounds.

To explain what was happening in the `issue-61311-normalize.rs` case:

* When borrow checking the `the_fn` in the last `impl` we would try to normalize `Self::Proj` (`<Unit as HasProjFn>::Proj`).
* We would find the `impl` that we're checking and and check its `where` clause.
* This would need us to check `<Box<dyn Obj + 'static> as HasProj>::Proj: Bound`
* We find two possible implementations, the blanket impl and the bound in our `ParamEnv`.
* The bound in our `ParamEnv` was canonicalized, so we don't see it as a global bound. As such we prefer it to the `impl`.
* This means that we cannot normalize `<Box<dyn Obj + 'static> as HasProj>::Proj` to `Unit`.
* The `<Box<dyn Obj + 'static> as HasProj>::Proj: Bound` bound, which looks like it should be in our `ParamEnv` has been normalized to `Unit: Bound`.
* We fail to prove `<Box<dyn Obj + 'static> as HasProj>::Proj: Bound`.
* We ICE, since we believe typeck have errored.

Closes #61311
Closes #61315
Closes #61320

r? @pnkfelix
cc @nikomatsakis
2019-06-04 22:39:38 +02:00
Pietro Albini
98176fc8fb
Rollup merge of #61453 - lzutao:nouse-featuregate-integer_atomics, r=sfackler
Remove unneeded feature attr from atomic integers doctests

Closes #61448

r? @Centril
2019-06-04 22:39:36 +02:00
Pietro Albini
93271d159e
Rollup merge of #61069 - Zoxc:drop-borrow-fix, r=pnkfelix
Make MIR drop terminators borrow the dropped location

r? @eddyb
cc @tmandry
2019-06-04 22:39:35 +02:00
bors
5d8f59f4b1 Auto merge of #61407 - phansch:annotate_snippet_refactoring1, r=oli-obk
Add new diagnostic writer using annotate-snippet library

This adds a new diagnostic writer `AnnotateRsEmitterWriter` that uses
the [`annotate-snippet`][as] library to print out the human readable
diagnostics.

The goal of #59346 is to eventually switch over to using the library instead of
maintaining our own diagnostics output.

This PR does **not** add all the required features to the new
diagnostics writer. It is only meant as a starting point so that other
people can start contributing as well.

There are some FIXMEs in `librustc_errors/annotate_rs_emitter.rs` that
point at yet to be implemented features of the new diagnostic emitter, however
those are most likely not exhaustive.

[as]: https://github.com/rust-lang/annotate-snippets-rs
2019-06-04 20:10:54 +00:00
Wim Looman
7980bc4bbc Hide gen_future API from documentation 2019-06-04 19:22:30 +02: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
Philipp Hansch
bfe5d9796b
eprint -> eprintln to add trailing newline 2019-06-04 18:46:00 +02:00
Philipp Hansch
4a6b91cd66
Simplify source_string and block-format methods 2019-06-04 18:46:00 +02:00
Philipp Hansch
94c8aa6791
Print to stderr and bless 2019-06-04 18:46:00 +02:00
Philipp Hansch
c04a2ccb35
Add new error-format value to use annotate-snippet output 2019-06-04 18:46:00 +02:00
Philipp Hansch
3f727aeeb7
Add new diagnostic writer using annotate-snippet library
This adds a new diagnostic writer `AnnotateRsEmitterWriter` that uses
the [`annotate-snippet`][as] library to print out the human readable
diagnostics.

The goal is to eventually switch over to using the library instead of
maintaining our own diagnostics output.

This commit does *not* add all the required features to the new
diagnostics writer. It is only meant as a starting point so that other
people can contribute as well.

[as]: https://github.com/rust-lang/annotate-snippets-rs
2019-06-04 18:46:00 +02:00
Lzu Tao
d392cb5967 Fix integer overflow in rotate_left 2019-06-04 15:26:10 +00:00
Lzu Tao
f60b5f1bc7 Remove unneeded feature attr from atomic integers doctests 2019-06-04 13:24:39 +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