New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 11 pull requests #59538
Rollup of 11 pull requests #59538
Commits on Mar 26, 2019
-
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 rust-lang#58463
-
Commits on Mar 27, 2019
Commits on Mar 28, 2019
-
-
-
-
-
Implement
#[non_exhaustive]
on variants.This commit removes the check that disallows the `#[non_exhaustive]` attribute from being placed on enum variants and removes the associated tests. Further, this commit lowers the visibility of enum variant constructors when the variant is marked as non-exhaustive.
Commits on Mar 29, 2019
-
-
-
-
-
This commit updates the unstable book and diagnostics to reflect that the `#[non_exhaustive]` attribute is now available for enum variants.
-
Support non-exhaustive enum variants in rustdoc.
This commit adds support for non-exhaustive enum variants in rustdoc, extending the existing support for non-exhaustive enums and structs.
-
Whitelist
rustc_on_unimplemented
to avoid erroneous flagging as an ……unused attribute.
-
-
Whitelist rustc_layout_scalar_valid_range_{start,end} so incr comp do…
…es not flag them as unused.
-
Edited the dbg! docs stating that dbg! works the same way in release …
…builds.
Christian committedMar 29, 2019 -
Christian committed
Mar 29, 2019 -
Wrapped lines earlier such that it is more coherent with the rest of the text. Co-Authored-By: DevQps <46896178+DevQps@users.noreply.github.com>
-
Removed duplicate line. Co-Authored-By: DevQps <46896178+DevQps@users.noreply.github.com>
-
-
-
In doc examples, don't ignore read/write results
Calling `Read::read` or `Write::write` without checking the returned `usize` value is almost always an error. Example code in the documentation should demonstrate how to use the return value correctly. Otherwise, people might copy the example code thinking that it is okay to "fire and forget" these methods.
-
This was incorrectly copypasta'd from RepeatWith.
-
Rollup merge of rust-lang#59376 - davidtwco:finally-rfc-2008-variants…
…, r=petrochenkov,QuietMisdreavus RFC 2008: Enum Variants Part of rust-lang#44109. See [Zulip topic](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/rfc-2008/near/132663140) for previous discussion. r? @petrochenkov cc @nikomatsakis
-
Rollup merge of rust-lang#59446 - Aaron1011:fix/debuginfo-overflow, r…
…=oli-obk 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 rust-lang#58463
-
Rollup merge of rust-lang#59453 - estebank:recover-tuple-parse, r=pet…
…rochenkov Recover from parse error in tuple syntax
-
Rollup merge of rust-lang#59455 - estebank:borrow-sugg-shorthand-fiel…
…d, r=davidtwco Account for short-hand field syntax when suggesting borrow Fix rust-lang#52965.
-
Rollup merge of rust-lang#59499 - pietroalbini:fix-arm-broken-link, r…
…=alexcrichton Fix broken download link in the armhf-gnu image Thanks to @johnterickson for pointing this out! r? @alexcrichton
-
Rollup merge of rust-lang#59512 - euclio:stdio-locks, r=sfackler
implement `AsRawFd` for stdio locks cc rust-lang/rfcs#2074.
-
Rollup merge of rust-lang#59525 - pnkfelix:whitelist-some-rustc-attrs…
…, r=petrochenkov Whitelist some rustc attrs These rustc attrs are used within libcore, and were causing failures when one mixed incremental compilation with bootstrapping (due to a default of `-D warnings` when bootstrapping). Fix rust-lang#59523 Fix rust-lang#59524 Cc rust-lang#58633
-
Rollup merge of rust-lang#59528 - DevQps:improve-dbg-macro-docs, r=Ce…
…ntril Improve the dbg! macro docs # Description As stated has been discussed in rust-lang#58383 the docs do not clearly state why it is useful to have the option to use `dbg!` in release builds as well. This PR should change that. closes rust-lang#58383
-
Rollup merge of rust-lang#59532 - mbrubeck:docs, r=Centril
In doc examples, don't ignore read/write results Calling `Read::read` or `Write::write` without checking the returned `usize` value is almost always an error. Example code in the documentation should demonstrate how to use the return value correctly. Otherwise, people might copy the example code thinking that it is okay to "fire and forget" these methods.
-
Rollup merge of rust-lang#59534 - laurmaedje:collapse-blanket-impls, …
…r=GuillaumeGomez rustdoc: collapse blanket impls in the same way as normal impls If the rustdoc setting _Auto-hide trait implementations documentation_ is activated (on by default), normal trait implementations are collapsed by default. Blanket impls on the other hand are not collapsed. I'm not sure whether this is intended, but considering that the blanket impls for `From`, `Into`, `TryFrom`, ... are on every type, it would reduce the documentation bloat if these would also be collapsed when the setting is active. (I'm not really familiar with the codebase and therefore just copied the code for the normal impl collapsing, but I could deduplicate it into a method, of course, too.)
-
Rollup merge of rust-lang#59537 - goffrie:patch-3, r=Centril
Fix OnceWith docstring. This was incorrectly copypasta'd from RepeatWith.