Commit Graph

91919 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
d2fd3fe957
Rollup merge of #59041 - saleemjaffer:trait_doc_comment_better_error_msg, r=pnkfelix
fixes rust-lang#56766

fixes #56766
2019-04-01 17:29:53 +02:00
Mazdak Farrokhzad
0d01fbaeb8
Rollup merge of #58919 - estebank:impl-trait-return-lifetime, r=pnkfelix
Suggest using anonymous lifetime in `impl Trait` return

Fix #48467.

r? @nikomatsakis
2019-04-01 17:29:51 +02:00
Mazdak Farrokhzad
9f9529acd5
Rollup merge of #58507 - Zoxc:time-extended, r=michaelwoerister
Add a -Z time option which prints only passes which runs once

This ensures `-Z time-passes` fits on my screen =P

r? @michaelwoerister
2019-04-01 17:29:48 +02:00
bors
9ebf47851a Auto merge of #59593 - pietroalbini:appveyor-version, r=alexcrichton
Print the appveyor agent version at the start of the build

[AppVeyor support asked for this.](https://help.appveyor.com/discussions/problems/19657-successful-builds-failing-with-code-259#comment_47132359)

r? @alexcrichton
2019-04-01 15:24:15 +00:00
Aleksey Kladov
a240c59980 stabilize ptr::hash
closes #56286
2019-04-01 16:36:07 +03:00
Alex Crichton
60f6cbd002 wasi: Use raw syscalls for stdio
I've since learned that the mapping between libc fds and wasi fds are
expected to be one-to-one, so we can use the raw syscalls for writing to
stdout/stderr and reading from stdin! This should help ensure that we
don't depend on a C library too unnecessarily.
2019-04-01 05:31:48 -07:00
Alex Crichton
382f9a7a3d wasi: Load arguments via syscalls
This commit switches the wasi target to loading CLI arguments via the
syscalls provided by wasi rather than through the argc/argv passed to
the main function. While serving the same purpose it's hoped that using
syscalls will make us a bit more portable (less reliance from libstd on
an external C library) as well as avoiding the need for a lock!
2019-04-01 05:29:53 -07:00
kenta7777
656d4c30e9 typo fix 2019-04-01 19:51:12 +09:00
Aaron Power
d6fa621211 Updated RELEASES.md for 1.34.0 2019-04-01 11:35:19 +02:00
Lukas Kalbertodt
d3d3049f3a
Forward formatter settings to bounds of Range<T> in fmt::Debug impl
Before this change, formatter settings were lost when printing a
`Range`. For example, printing a `Range<f32>` with `{:.2?}` would not
apply the precision modifier when printing the floats. Now the `Debug`
impls look a bit more verbose, but modifier are not lost.
2019-04-01 10:52:44 +02:00
Aaron Hill
d2584e3b6a
Only track 'visited' state for function types 2019-03-31 22:53:27 -04:00
mark
abab4af7f9 update rustc-guide submodule 2019-03-31 19:36:00 -05:00
Aaron Hill
c4556a5a65
Fix typos 2019-03-31 20:09:30 -04:00
Aaron Hill
aed7ec42b3
Add codegen test 2019-03-31 20:09:30 -04:00
Aaron Hill
e1837a0d1a
Fix inverted panic check 2019-03-31 20:09:30 -04:00
Aaron Hill
512069f8e5
Fix stack overflow when generating debuginfo for 'recursive' type
By using 'impl trait', it's possible to create a self-referential
type as follows:

fn foo() -> impl Copy { foo }

This is a function which returns itself.
Normally, the signature of this function would be impossible
to write - it would look like 'fn foo() -> fn() -> fn() ...'
e.g. a function which returns a function, which returns a function...

Using 'impl trait' allows us to avoid writing this infinitely long
type. While it's useless for practical purposes, it does compile and run

However, issues arise when we try to generate llvm debuginfo for such a
type. All 'impl trait' types (e.g. ty::Opaque) are resolved when we
generate debuginfo, which can lead to us recursing back to the original
'fn' type when we try to process its return type.

To resolve this, I've modified debuginfo generation to account for these
kinds of weird types. Unfortunately, there's no 'correct' debuginfo that
we can generate - 'impl trait' does not exist in debuginfo, and this
kind of recursive type is impossible to directly represent.

To ensure that we emit *something*, this commit emits dummy
debuginfo/type names whenever it encounters a self-reference. In
practice, this should never happen - it's just to ensure that we can
emit some kind of debuginfo, even if it's not particularly meaningful

Fixes #58463
2019-03-31 20:09:29 -04:00
bors
eab3eb38df Auto merge of #59507 - nnethercote:indent-with-SPACES, r=petrochenkov
Optimize indentation in the pretty printer.

Currently the pretty-printer calls `write!` for every space of
indentation. On some workloads the indentation level can exceed 100, and
a faster implementation reduces instruction counts by up to 7% on a few
workloads.
2019-03-31 23:50:46 +00:00
Pietro Albini
3c26f65c09
ci: print the appveyor agent version at the start of the build 2019-03-31 23:56:09 +02:00
Nicholas Nethercote
606f3158bf Optimize indentation in the pretty printer.
Currently the pretty-printer calls `write!` for every space of
indentation. On some workloads the indentation level can exceed 100, and
a faster implementation reduces instruction counts by up to 7% on a few
workloads.
2019-04-01 07:55:25 +11:00
bors
e3428db7c2 Auto merge of #59577 - dlrobertson:fix_58881, r=nagisa
Fix LLVM IR generated for C-variadic arguments

It is possible to create malformed LLVM IR given variadic arguments that
are aggregate types. This occurs due to improper tracking of the current
argument in the functions list of arguments.

Fixes: #58881
2019-03-31 20:28:00 +00:00
O01eg
5bcc365a0f
Fix custom relative libdir.
Uses relative libdir to place libraries on all stages.
Adds verbose installation output.
2019-03-31 22:28:12 +03:00
Dan Robertson
a9d62be557
Fix LLVM IR generated for C-variadic arguments
It is possible to create malformed LLVM IR given variadic arguments that
are aggregate types. This occurs due to improper tracking of the current
argument in the functions list of arguments.
2019-03-31 17:37:37 +00:00
bors
4fac5c98b2 Auto merge of #59590 - Centril:rollup, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #58805 (Lint for redundant imports)
 - #59506 (Use platform dependent mcount function)
 - #59519 (rustc_target: factor out common fields of non-Single Variants.)
 - #59580 (Allow closure to unsafe fn coercion)
 - #59581 (Stabilize refcell_replace_swap feature)
 - #59583 (match match match match match)
 - #59587 (Remove #[doc(hidden)] from Error::type_id)

Failed merges:

r? @ghost
2019-03-31 17:21:14 +00:00
Mazdak Farrokhzad
34454451a1
Rollup merge of #59587 - XAMPPRocky:master, r=Centril
Remove #[doc(hidden)] from Error::type_id

Nominating this for beta so that `Error::type_id` has documentation in time for release.

cc @rust-lang/release @rust-lang/docs
2019-03-31 19:19:56 +02:00
Mazdak Farrokhzad
9eba66b35f
Rollup merge of #59583 - oberien:patch-1, r=Centril
match match match match match
2019-03-31 19:19:54 +02:00
Mazdak Farrokhzad
9d198db339
Rollup merge of #59581 - jmcomets:stabilize-refcell_replace_swap, r=Centril
Stabilize refcell_replace_swap feature

Please be kind, this is my first time contributing. 😄

I noticed #43570 only needs stabilizing (and I need it for a side project I'm working on), so I followed the [guide](https://rust-lang.github.io/rustc-guide/stabilization_guide.html#stabilization-pr) to move things forward.

I'm happy to amend things if needed, let me know!
2019-03-31 19:19:53 +02:00
Mazdak Farrokhzad
1909a0303a
Rollup merge of #59580 - taiki-e:coerce-closure, r=oli-obk
Allow closure to unsafe fn coercion

Closes #57883
2019-03-31 19:19:51 +02:00
Mazdak Farrokhzad
0171fe5598
Rollup merge of #59519 - eddyb:layout-variants-refactor, r=oli-obk
rustc_target: factor out common fields of non-Single Variants.

@tmandry and I were discussing ways to generalize the current variants/discriminant layout to allow more fields in the "`enum`" (or another multi-variant types, such as potentially generator state, in the future), shared by all variants, than just the tag/niche discriminant.

This refactor should make it easier to extend multi-variant layouts, as nothing is duplicating anymore between "tagged enums" and "niche-filling enums".

r? @oli-obk
2019-03-31 19:19:50 +02:00
Mazdak Farrokhzad
245a0afb52
Rollup merge of #59506 - JohnTitor:improve-mcount, r=nagisa
Use platform dependent mcount function

close #59097

This pull-request is based on #57244 and [here](https://github.com/llvm-mirror/clang/search?q=MCountName&unscoped_MCountName).

r? @nagisa
2019-03-31 19:19:48 +02:00
Mazdak Farrokhzad
dffdd8f728
Rollup merge of #58805 - fabric-and-ink:redundant_import, r=petrochenkov
Lint for redundant imports

Add lint for redundant imports. The changes are suggested by @petrochenkov.

Closes #10178.
2019-03-31 19:19:47 +02:00
Esteban Küber
30c247f881 Suggest using anonymous lifetime in impl Trait return without hacks
Fallback to `static_impl_trait` for nice error message by peeking at the
return type and the lifetime type. Point at the return type instead of
the return expr/stmt in NLL mode.
2019-03-31 09:11:47 -07:00
Taiki Endo
07021e07ed Allow closure to unsafe fn coercion 2019-04-01 00:00:43 +09:00
Aaron Power
14f4e27df3 Fixed URL in cargotest::TEST_REPOS 2019-03-31 16:56:30 +02:00
Aaron Power
c056a79f35 Remove #[doc(hidden)] from Error::type_id 2019-03-31 16:54:05 +02:00
Yuki OKUSHI
7b26a43ae5 Use u{1} instead of 01 2019-03-31 23:17:49 +09:00
Matthew Jasper
16ee042100 Fixes for shallow borrows
* Don't promote these borrows if we're going to remove them before
  codegen
* Correctly mark unreachable code
2019-03-31 15:14:50 +01:00
bors
a89c03a30a Auto merge of #59584 - Centril:rollup, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #58828 (libstd: deny(elided_lifetimes_in_paths))
 - #59234 (Mention `no merge policy` in the CONTRIBUTING guide)
 - #59572 (Include bounds in generic re-ordering diagnostic)
 - #59574 (Distinguish message for external macros depending on error level)

Failed merges:

r? @ghost
2019-03-31 14:11:11 +00:00
Mazdak Farrokhzad
fb8396da84
Rollup merge of #59574 - JohnTitor:distinguish-error-vs-warning, r=Centril
Distinguish message for external macros depending on error level

fixes #57716

(I picked you because assigned to this issue.)
r? @estebank
2019-03-31 16:10:38 +02:00
Mazdak Farrokhzad
61222b5731
Rollup merge of #59572 - davidtwco:issue-59508, r=varkor
Include bounds in generic re-ordering diagnostic

Fixes #59508.

r? @estebank
cc @varkor
2019-03-31 16:10:37 +02:00
Mazdak Farrokhzad
df18e190be
Rollup merge of #59234 - stepnivlk:add-no_merge_policy, r=oli-obk
Mention `no merge policy` in the CONTRIBUTING guide

Issue: https://github.com/rust-lang/rust/issues/59233
2019-03-31 16:10:36 +02:00
Mazdak Farrokhzad
a02b825c93
Rollup merge of #58828 - Centril:deny-elided_lifetimes_in_paths-libstd, r=oli-obk
libstd: deny(elided_lifetimes_in_paths)

r? @oli-obk
2019-03-31 16:10:34 +02:00
Guillaume Gomez
ddd034aa6f Fix invalid bounds string generation in rustdoc 2019-03-31 15:32:25 +02:00
Jaro Fietz
55b7efe29f
match match match match match 2019-03-31 15:20:10 +02:00
Jean-Marie Comets
c789a539a2 refcell_replace_swap: remove feature gate & obsolete documentation item 2019-03-31 14:50:06 +02:00
Mazdak Farrokhzad
1d9508a33a libstd: deny(elided_lifetimes_in_paths), fixes in redox 2019-03-31 14:33:50 +02:00
Fabian Drinck
c1d5314bd3 Remove redundant import 2019-03-31 14:11:46 +02:00
Mazdak Farrokhzad
351a20c32f libstd: deny(elided_lifetimes_in_paths), fixes in sgx 2019-03-31 12:56:51 +02:00
Mazdak Farrokhzad
c5d60910ca libstd: deny(elided_lifetimes_in_paths), fixes in wasi 2019-03-31 12:56:51 +02:00
Mazdak Farrokhzad
6f4df8c0c2 libstd: deny(elided_lifetimes_in_paths), fixes in cloudabi 2019-03-31 12:56:51 +02:00
Mazdak Farrokhzad
379c380a60 libstd: deny(elided_lifetimes_in_paths) 2019-03-31 12:56:51 +02:00