Fix awkward wording. · qinheping/verify-rust-std@80f8aeb (original) (raw)

`@@ -63,22 +63,21 @@ use crate::ptr;

`

63

63

`` /// # Safety hazards when storing ManuallyDrop in a struct or an enum.

``

64

64

`///

`

65

65

`/// Special care is needed when all of the conditions below are met:

`

66

``

`` -

/// * A field of a struct or enum is a ManuallyDrop or contains a

``

67

``

`` -

/// ManuallyDrop, without the ManuallyDrop being inside a union.

``

``

66

`` +

/// * A struct or enum contains a ManuallyDrop.

``

``

67

`` +

/// * The ManuallyDrop is not inside a union.

``

68

68

`/// * The struct or enum is part of public API, or is stored in a struct or an

`

69

69

`/// enum that is part of public API.

`

70

``

`` -

/// * There is code outside of a Drop implementation that calls

``

71

``

`` -

/// [ManuallyDrop::drop] or [ManuallyDrop::take] on the ManuallyDrop

``

72

``

`-

/// field.

`

``

70

`` +

/// * There is code that drops the contents of the ManuallyDrop field, and

``

``

71

`` +

/// this code is outside the struct or enum's Drop implementation.

``

73

72

`///

`

74

``

`-

/// In particular, the following hazards can occur:

`

``

73

`+

/// In particular, the following hazards may occur:

`

75

74

`///

`

76

75

`/// #### Storing generic types

`

77

76

`///

`

78

77

`` /// If the ManuallyDrop contains a client-supplied generic type, the client

``

79

``

`` -

/// might provide a Box, causing undefined behavior when the struct / enum is

``

80

``

`-

/// later moved, as mentioned above. For example, the following code causes

`

81

``

`-

/// undefined behavior:

`

``

78

`` +

/// might provide a Box as that type. This would cause undefined behavior when

``

``

79

`+

/// the struct or enum is later moved, as mentioned in the previous section. For

`

``

80

`+

/// example, the following code causes undefined behavior:

`

82

81

`///

`

83

82

```` /// ```no_run

````

84

83

`/// use std::mem::ManuallyDrop;

`

`@@ -114,7 +113,7 @@ use crate::ptr;

`

114

113

`/// #### Deriving traits

`

115

114

`///

`

116

115

`` /// Deriving Debug, Clone, PartialEq, PartialOrd, Ord, or Hash on

``

117

``

`-

/// the struct / enum could be unsound, since the derived implementations of

`

``

116

`+

/// the struct or enum could be unsound, since the derived implementations of

`

118

117

`` /// these traits would access the ManuallyDrop field. For example, the

``

119

118

`/// following code causes undefined behavior:

`

120

119

`///

`