@@ -184,11 +184,13 @@ impl<T> OnceCell<T> {
184184 ///
185185 /// let mut cell = OnceCell::new();
186186 /// let value = cell.get_mut_or_init(|| 92);
187- /// assert_eq!(value, &92);
187+ /// assert_eq!(*value, 92);
188+ ///
188189 /// *value += 2;
189- /// assert_eq!(value, &94);
190+ /// assert_eq!(*value, 94);
191+ ///
190192 /// let value = cell.get_mut_or_init(|| unreachable!());
191- /// assert_eq!(value, & 94);
193+ /// assert_eq!(* value, 94);
192194 /// ```
193195 #[ inline]
194196 #[ unstable( feature = "once_cell_get_mut" , issue = "121641" ) ]
@@ -259,15 +261,16 @@ impl<T> OnceCell<T> {
259261 ///
260262 /// use std::cell::OnceCell;
261263 ///
262- /// let mut cell = OnceCell::new();
263- /// assert_eq!(cell.get_mut_or_try_init(|| Err(())), Err(()));
264+ /// let mut cell: OnceCell<u32> = OnceCell::new();
265+ ///
266+ /// // Failed initializers do not change the value
267+ /// assert!(cell.get_mut_or_try_init(|| "not a number!".parse()).is_err());
264268 /// assert!(cell.get().is_none());
265- /// let value = cell.get_mut_or_try_init(|| -> Result<i32, ()> {
266- /// Ok(92)
267- /// });
268- /// assert_eq!(value, Ok(&mut 92));
269+ ///
270+ /// let value = cell.get_mut_or_try_init(|| "1234".parse());
271+ /// assert_eq!(value, Ok(&mut 1234));
269272 /// *value.unwrap() += 2;
270- /// assert_eq!(cell.get(), Some(&94 ))
273+ /// assert_eq!(cell.get(), Some(&1236 ))
271274 /// ```
272275 #[ unstable( feature = "once_cell_get_mut" , issue = "121641" ) ]
273276 pub fn get_mut_or_try_init < F , E > ( & mut self , f : F ) -> Result < & mut T , E >
0 commit comments