Skip to content

Commit 2202653

Browse files
committed
Miri engine validity check: simplify code with 'matches!'
and improve a comment a bit
1 parent f965120 commit 2202653

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

compiler/rustc_mir/src/interpret/validity.rs

+8-12
Original file line numberDiff line numberDiff line change
@@ -775,17 +775,13 @@ impl<'rt, 'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> ValueVisitor<'mir, 'tcx, M>
775775
);
776776
}
777777
ty::Array(tys, ..) | ty::Slice(tys)
778-
if {
779-
// This optimization applies for types that can hold arbitrary bytes (such as
780-
// integer and floating point types) or for structs or tuples with no fields.
781-
// FIXME(wesleywiser) This logic could be extended further to arbitrary structs
782-
// or tuples made up of integer/floating point types or inhabited ZSTs with no
783-
// padding.
784-
match tys.kind() {
785-
ty::Int(..) | ty::Uint(..) | ty::Float(..) => true,
786-
_ => false,
787-
}
788-
} =>
778+
// This optimization applies for types that can hold arbitrary bytes (such as
779+
// integer and floating point types) or for structs or tuples with no fields.
780+
// FIXME(wesleywiser) This logic could be extended further to arbitrary structs
781+
// or tuples made up of integer/floating point types or inhabited ZSTs with no
782+
// padding.
783+
if matches!(tys.kind(), ty::Int(..) | ty::Uint(..) | ty::Float(..))
784+
=>
789785
{
790786
// Optimized handling for arrays of integer/float type.
791787

@@ -853,7 +849,7 @@ impl<'rt, 'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> ValueVisitor<'mir, 'tcx, M>
853849
// of an array and not all of them, because there's only a single value of a specific
854850
// ZST type, so either validation fails for all elements or none.
855851
ty::Array(tys, ..) | ty::Slice(tys) if self.ecx.layout_of(tys)?.is_zst() => {
856-
// Validate just the first element
852+
// Validate just the first element (if any).
857853
self.walk_aggregate(op, fields.take(1))?
858854
}
859855
_ => {

0 commit comments

Comments
 (0)