about summary refs log tree commit diff
path: root/compiler/rustc_const_eval/src/interpret/validity.rs
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2024-12-01 13:12:43 +0100
committerRalf Jung <post@ralfj.de>2024-12-18 11:00:21 +0100
commit21de42bf8ddd0f39c766c7705990152302ae1f3b (patch)
treefd27ee9da12fb8c8682f7aaddb4dc749cfa1bfe6 /compiler/rustc_const_eval/src/interpret/validity.rs
parent37e74596c0b59e81b9ac58657f92297ef4ccb7ef (diff)
downloadrust-21de42bf8ddd0f39c766c7705990152302ae1f3b.tar.gz
rust-21de42bf8ddd0f39c766c7705990152302ae1f3b.zip
Variants::Single: do not use invalid VariantIdx for uninhabited enums
Diffstat (limited to 'compiler/rustc_const_eval/src/interpret/validity.rs')
-rw-r--r--compiler/rustc_const_eval/src/interpret/validity.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/rustc_const_eval/src/interpret/validity.rs b/compiler/rustc_const_eval/src/interpret/validity.rs
index 8e18b243906..832183b42dc 100644
--- a/compiler/rustc_const_eval/src/interpret/validity.rs
+++ b/compiler/rustc_const_eval/src/interpret/validity.rs
@@ -342,7 +342,9 @@ impl<'rt, 'tcx, M: Machine<'tcx>> ValidityVisitor<'rt, 'tcx, M> {
                 match layout.variants {
                     Variants::Single { index } => {
                         // Inside a variant
-                        PathElem::Field(def.variant(index).fields[FieldIdx::from_usize(field)].name)
+                        PathElem::Field(
+                            def.variant(index.unwrap()).fields[FieldIdx::from_usize(field)].name,
+                        )
                     }
                     Variants::Multiple { .. } => bug!("we handled variants above"),
                 }