about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2019-02-21 16:14:31 +0100
committerRalf Jung <post@ralfj.de>2019-02-21 16:14:31 +0100
commitb01f81be7445ca83a8a9fd51937e3047c22eea09 (patch)
tree2948a116d2ed2a9b42bebe99a9d95a6c490a5de1
parent0f6d36375f76f31a5252b8b8ab5faaafb374e721 (diff)
downloadrust-b01f81be7445ca83a8a9fd51937e3047c22eea09.tar.gz
rust-b01f81be7445ca83a8a9fd51937e3047c22eea09.zip
remark about the one place where place computation calls size_and_align_of
-rw-r--r--src/librustc_mir/interpret/place.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/librustc_mir/interpret/place.rs b/src/librustc_mir/interpret/place.rs
index 637f1dcc4a4..ec701a939f2 100644
--- a/src/librustc_mir/interpret/place.rs
+++ b/src/librustc_mir/interpret/place.rs
@@ -389,9 +389,11 @@ where
         // above). In that case, all fields are equal.
         let field_layout = base.layout.field(self, usize::try_from(field).unwrap_or(0))?;
 
-        // Offset may need adjustment for unsized fields
+        // Offset may need adjustment for unsized fields.
         let (meta, offset) = if field_layout.is_unsized() {
-            // re-use parent metadata to determine dynamic field layout
+            // Re-use parent metadata to determine dynamic field layout.
+            // With custom DSTS, this *will* execute user-defined code, but the same
+            // happens at run-time so that's okay.
             let align = match self.size_and_align_of(base.meta, field_layout)? {
                 Some((_, align)) => align,
                 None if offset == Size::ZERO =>