about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2024-09-03 21:50:08 +0200
committerRalf Jung <post@ralfj.de>2024-09-03 21:50:08 +0200
commit98f74b4d047006aaa475b0252b61f0ca772372fb (patch)
tree1cf9cc4a37aa45d8e98f1a395222afabd795708e /compiler
parent6199b69c53a8c275ca3cd59647ea0af5ca29aae2 (diff)
downloadrust-98f74b4d047006aaa475b0252b61f0ca772372fb.tar.gz
rust-98f74b4d047006aaa475b0252b61f0ca772372fb.zip
explain why Rvalue::Len still exists
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_middle/src/mir/syntax.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/mir/syntax.rs b/compiler/rustc_middle/src/mir/syntax.rs
index 748ca047754..22a4b688c51 100644
--- a/compiler/rustc_middle/src/mir/syntax.rs
+++ b/compiler/rustc_middle/src/mir/syntax.rs
@@ -1307,6 +1307,9 @@ pub enum Rvalue<'tcx> {
     /// If the type of the place is an array, this is the array length. For slices (`[T]`, not
     /// `&[T]`) this accesses the place's metadata to determine the length. This rvalue is
     /// ill-formed for places of other types.
+    ///
+    /// This cannot be a `UnOp(PtrMetadata, _)` because that expects a value, and we only
+    /// have a place, and `UnOp(PtrMetadata, RawPtr(place))` is not a thing.
     Len(Place<'tcx>),
 
     /// Performs essentially all of the casts that can be performed via `as`.