about summary refs log tree commit diff
path: root/src/test/codegen/align-struct.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-05-21 18:52:46 +0000
committerbors <bors@rust-lang.org>2020-05-21 18:52:46 +0000
commit9310e3bd4f425f84fc27878ebf2bda1f30935a63 (patch)
tree120fa2fbc4061f1a5b4fe22c8169b7a9882f6909 /src/test/codegen/align-struct.rs
parent148c125b1bf20674e8d0c55c21b3433a6d465b07 (diff)
parentd7e1d5f0c275c6e876f97a3d95d27a020bc88046 (diff)
downloadrust-9310e3bd4f425f84fc27878ebf2bda1f30935a63.tar.gz
rust-9310e3bd4f425f84fc27878ebf2bda1f30935a63.zip
Auto merge of #71930 - Nadrieril:exhaustiveness-remove-tyerr, r=varkor
De-abuse TyKind::Error in exhaustiveness checking

Replaces https://github.com/rust-lang/rust/pull/71074. Context: https://github.com/rust-lang/rust/issues/70866.

In order to remove the use of `TyKind::Error`, I had to make sure we skip over those fields whose inhabitedness should not be observed. This is potentially error-prone however, since we must be careful not to mix filtered and unfiltered lists of patterns. I managed to hide away most of the filtering behind a new `Fields` struct, that I used everywhere relevant. I quite like the result; I think the twin concepts of `Constructor` and `Fields` make a good mental model.

As usual, I tried to separate commits that shuffle code around from commits that require more thought to review.

cc @varkor @Centril
Diffstat (limited to 'src/test/codegen/align-struct.rs')
0 files changed, 0 insertions, 0 deletions