Skip to content

Rollup of 11 pull requests #62923

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

Closed
wants to merge 36 commits into from
Closed
Changes from 2 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
962bf69
Take substs into account in `conservative_is_privately_uninhabited`
varkor Jun 30, 2019
5397dfc
Remove obsolete “should not have to exist” reasons
SimonSapin Jul 8, 2019
01d93bf
Split the SliceConcat trait into Concat and Join
SimonSapin Jul 8, 2019
283f676
Take separator by value in `[T]::join`
SimonSapin Jul 8, 2019
b62a77b
Add joining slices of slices with a slice separator, not just a singl…
SimonSapin Jul 8, 2019
d0635ee
Update src/liballoc/slice.rs
SimonSapin Jul 9, 2019
bbc9366
Update src/liballoc/slice.rs
SimonSapin Jul 9, 2019
5f7768a
Update src/liballoc/str.rs
SimonSapin Jul 9, 2019
bb9bf0c
Add riscv32i-unknown-none-elf target
Disasm Jul 18, 2019
21b502b
warn that raw pointers must be aligned when used, and that writes cau…
RalfJung Jul 20, 2019
2e6b13a
references must be aligned; also move up the warning that fn ptrs mus…
RalfJung Jul 20, 2019
f502bf7
sync with nomicon: raw ptr must be non-dangling and aligned every tim…
RalfJung Jul 21, 2019
4081222
apply feedback
RalfJung Jul 21, 2019
a7b9246
weasle, weasle
RalfJung Jul 22, 2019
9196781
account for non-drop-glue types
RalfJung Jul 22, 2019
4b33968
add support for hexagon-unknown-linux-musl
androm3da Aug 10, 2018
e1e0df8
Remove uses of mem::uninitialized in std::sys::cloudabi
nathanwhit Jul 22, 2019
82dd54b
Modify CloudABI ReentrantMutex to use MaybeUninit
nathanwhit Jul 22, 2019
dd5045e
Apply suggestions from code review
RalfJung Jul 23, 2019
65cf10d
word things more like we usually do
RalfJung Jul 23, 2019
6140371
cleanup: Remove `extern crate serialize as rustc_serialize`s
petrochenkov Jul 23, 2019
0ac6afa
Cleanup std::sys::cloudabi
nathanwhit Jul 23, 2019
b70f217
Use raw pointers in std::sys::cloudabi when passing MaybeUninit values
nathanwhit Jul 23, 2019
2083a12
Normalize use of backticks in compiler messages for libsyntax/*
Jul 23, 2019
ca8420c
Normalize use of backticks in compiler messages for doc
Jul 23, 2019
66815c6
normalize use of backticks for compiler messages in remaining modules
Jul 23, 2019
6afb4e8
Rollup merge of #62261 - varkor:conservative_is_privately_uninhabited…
Centril Jul 24, 2019
e4c3883
Rollup merge of #62528 - SimonSapin:concat, r=alexcrichton
Centril Jul 24, 2019
9258ed6
Rollup merge of #62738 - nathanwhit:fix_mem_uninit_cloudabi, r=RalfJung
Centril Jul 24, 2019
3835b13
Rollup merge of #62784 - Disasm:riscv32i, r=estebank
Centril Jul 24, 2019
6d3efb0
Rollup merge of #62814 - androm3da:hexagon_19jul_2019, r=alexcrichton
Centril Jul 24, 2019
b71e579
Rollup merge of #62822 - RalfJung:pointers, r=Centril
Centril Jul 24, 2019
960a4fc
Rollup merge of #62890 - fakenine:normalize_use_of_backticks_compiler…
Centril Jul 24, 2019
2462bd8
Rollup merge of #62901 - petrochenkov:serde, r=Centril
Centril Jul 24, 2019
9dcef0f
Rollup merge of #62905 - fakenine:normalize_use_of_backticks_compiler…
Centril Jul 24, 2019
69bc410
Rollup merge of #62908 - fakenine:normalize_use_of_backticks_compiler…
Centril Jul 24, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions src/librustc/ty/sty.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1704,22 +1704,21 @@ impl<'tcx> TyS<'tcx> {
/// will be `Abi::Uninhabited`. (Note that uninhabited types may have nonzero
/// size, to account for partial initialisation. See #49298 for details.)
pub fn conservative_is_privately_uninhabited(&self, tcx: TyCtxt<'tcx>) -> bool {
// FIXME(varkor): we can make this less conversative by substituting concrete
// type arguments.
match self.sty {
ty::Never => true,
ty::Adt(def, _) if def.is_union() => {
// For now, `union`s are never considered uninhabited.
false
}
ty::Adt(def, _) => {
ty::Adt(def, substs) => {
// Any ADT is uninhabited if either:
// (a) It has no variants (i.e. an empty `enum`);
// (b) Each of its variants (a single one in the case of a `struct`) has at least
// one uninhabited field.
def.variants.iter().all(|var| {
var.fields.iter().any(|field| {
tcx.type_of(field.did).conservative_is_privately_uninhabited(tcx)
tcx.type_of(field.did).subst(tcx, substs)
.conservative_is_privately_uninhabited(tcx)
})
})
}
Expand Down