1
Fork 0

Auto merge of #21995 - leejunseok:fix_invariant_ex, r=steveklabnik

Should fix #20147

This is my second PR in the history of ever (I botched my first one #21828). Any tips would be appreciated!
This commit is contained in:
bors 2015-02-07 09:55:14 +00:00
commit a08504bb35

View file

@ -311,16 +311,17 @@ impl<T: ?Sized> Clone for ContravariantType<T> {
/// ///
/// # Example /// # Example
/// ///
/// The Cell type is an example which uses unsafe code to achieve /// The Cell type is an example of an `InvariantType` which uses unsafe
/// "interior" mutability: /// code to achieve "interior" mutability:
/// ///
/// ``` /// ```
/// struct Cell<T> { value: T } /// struct Cell<T> { value: T }
/// ``` /// ```
/// ///
/// The type system would infer that `value` is only read here and /// The type system would infer that `value` is only read here
/// never written, but in fact `Cell` uses unsafe code to achieve /// and never written, but in fact `Cell` uses unsafe code to achieve
/// interior mutability. /// interior mutability. In order to get correct behavior, the
/// `InvariantType` marker must be applied.
#[unstable(feature = "core", #[unstable(feature = "core",
reason = "likely to change with new variance strategy")] reason = "likely to change with new variance strategy")]
#[lang="invariant_type"] #[lang="invariant_type"]