]> git.lizzy.rs Git - rust.git/commitdiff
adjust LayoutDetails comments
authorRalf Jung <post@ralfj.de>
Wed, 26 Feb 2020 09:26:14 +0000 (10:26 +0100)
committerRalf Jung <post@ralfj.de>
Wed, 26 Feb 2020 09:26:18 +0000 (10:26 +0100)
src/librustc_target/abi/mod.rs

index 447487e4fb279d93a165c375a709eb4d92a20e5c..67a5246012dd089e77754847ff31cfaca4632ce8 100644 (file)
@@ -871,26 +871,26 @@ pub fn reserve<C: HasDataLayout>(&self, cx: &C, count: u128) -> Option<(u128, Sc
 
 #[derive(PartialEq, Eq, Hash, Debug, HashStable_Generic)]
 pub struct LayoutDetails {
-    /// Says where the fields are located.
+    /// Says where the fields are located within the layout.
     /// Primitives and fieldless enums appear as unions without fields.
     pub fields: FieldPlacement,
 
     /// Encodes information about multi-variant layouts.
-    /// Even with `Multiple` variants, a layout can still have fields! Those are then
+    /// Even with `Multiple` variants, a layout still has its own fields! Those are then
     /// shared between all variants. One of them will be the discriminant,
     /// but e.g. generators can have more.
     ///
-    /// A layout-guided recursive descent must first look at all the fields,
-    /// and only then check if this is a multi-variant layout and if so, proceed
-    /// with the active variant.
+    /// To access all fields of this layout, both `fields` and the fields of the active variant
+    /// must be taken into account.
     pub variants: Variants,
 
     /// The `abi` defines how this data is passed between functions, and it defines
     /// value restrictions via `valid_range`.
     ///
-    /// Note that this is entirely orthogonal to the recursive structrue defined by
+    /// Note that this is entirely orthogonal to the recursive structure defined by
     /// `variants` and `fields`; for example, `ManuallyDrop<Result<isize, isize>>` has
-    /// `Abi::ScalarPair`! So, having a non-`Aggregate` `abi` should not stop a recursive descent.
+    /// `Abi::ScalarPair`! So, even with non-`Aggregate` `abi`, `fields` and `variants`
+    /// have to be taken into account to find all fields of this layout.
     pub abi: Abi,
 
     /// The leaf scalar with the largest number of invalid values