@@ -44,15 +44,17 @@ impl<T> MyOption<T> {
4444 }
4545 }
4646
47- // summary=repo::test;<crate::option::MyOption>::as_ref;Argument[self].Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
47+ // NOTE: The returned value inside the variant should be inside a `Reference`, requires handling
48+ // `ref` in patterns.
49+ // summary=repo::test;<crate::option::MyOption>::as_ref;Argument[self].Reference.Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
4850 pub fn as_ref ( & self ) -> MyOption < & T > {
4951 match * self {
5052 MySome ( ref x) => MySome ( x) ,
5153 MyNone => MyNone ,
5254 }
5355 }
5456
55- // summary=repo::test;<crate::option::MyOption>::as_mut;Argument[self].Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
57+ // summary=repo::test;<crate::option::MyOption>::as_mut;Argument[self].Reference. Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
5658 pub fn as_mut ( & mut self ) -> MyOption < & mut T > {
5759 match * self {
5860 MySome ( ref mut x) => MySome ( x) ,
@@ -285,30 +287,34 @@ impl<T> MyOption<T> {
285287 }
286288 }
287289
288- // MISSING: summary=repo::test;<crate::option::MyOption>::insert;Argument[0];ReturnValue;value;dfc-generated
289- // SPURIOUS-summary=repo::test;<crate::option::MyOption>::insert;Argument[self].Variant[crate::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
290+ // summary=repo::test;<crate::option::MyOption>::insert;Argument[0];Argument[self].Reference.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
291+ // The below should be `ReturnValue.Reference` and not just `ReturnValue`.
292+ // SPURIOUS-summary=repo::test;<crate::option::MyOption>::insert;Argument[0];ReturnValue;value;dfc-generated
293+ // The content of `self` is overwritten so it does not flow to the return value.
294+ // SPURIOUS-summary=repo::test;<crate::option::MyOption>::insert;Argument[self].Reference.Variant[crate::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
290295 pub fn insert ( & mut self , value : T ) -> & mut T {
291296 * self = MySome ( value) ;
292297
293298 // SAFETY: the code above just filled the MyOption
294299 unsafe { self . as_mut ( ) . unwrap_unchecked ( ) }
295300 }
296301
297- // summary=repo::test;<crate::option::MyOption>::get_or_insert;Argument[self].Variant[crate::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
298- // MISSING: repo::test;<crate::option::MyOption>::get_or_insert;Argument[0];ReturnValue;value;dfc-generated
302+ // summary=repo::test;<crate::option::MyOption>::get_or_insert;Argument[0];Argument[self].Reference.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
303+ // summary=repo::test;<crate::option::MyOption>::get_or_insert;Argument[0];ReturnValue;value;dfc-generated
304+ // summary=repo::test;<crate::option::MyOption>::get_or_insert;Argument[self].Reference.Variant[crate::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
299305 pub fn get_or_insert ( & mut self , value : T ) -> & mut T {
300306 self . get_or_insert_with ( || value)
301307 }
302308
303- // summary=repo::test;<crate::option::MyOption>::get_or_insert_default;Argument[self].Variant[crate::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
309+ // summary=repo::test;<crate::option::MyOption>::get_or_insert_default;Argument[self].Reference. Variant[crate::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
304310 pub fn get_or_insert_default ( & mut self ) -> & mut T
305311 where
306312 T : Default ,
307313 {
308314 self . get_or_insert_with ( T :: default)
309315 }
310316
311- // summary=repo::test;<crate::option::MyOption>::get_or_insert_with;Argument[self].Variant[crate::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
317+ // summary=repo::test;<crate::option::MyOption>::get_or_insert_with;Argument[self].Reference. Variant[crate::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
312318 // MISSING: Mutating `self` parameter.
313319 pub fn get_or_insert_with < F > ( & mut self , f : F ) -> & mut T
314320 where
@@ -329,7 +335,7 @@ impl<T> MyOption<T> {
329335 mem:: replace ( self , MyNone )
330336 }
331337
332- // summary=repo::test;<crate::option::MyOption>::take_if;Argument[self].Variant[crate::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
338+ // summary=repo::test;<crate::option::MyOption>::take_if;Argument[self].Reference. Variant[crate::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
333339 // MISSING: Uses `take` which doesn't have flow
334340 pub fn take_if < P > ( & mut self , predicate : P ) -> MyOption < T >
335341 where
@@ -378,7 +384,7 @@ impl<T, U> MyOption<(T, U)> {
378384}
379385
380386impl < T > MyOption < & T > {
381- // summary=repo::test;<crate::option::MyOption>::copied;Argument[self].Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
387+ // summary=repo::test;<crate::option::MyOption>::copied;Argument[self].Variant[crate::option::MyOption::MySome(0)].Reference ;ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
382388 pub fn copied ( self ) -> MyOption < T >
383389 where
384390 T : Copy ,
@@ -404,7 +410,7 @@ impl<T> MyOption<&T> {
404410}
405411
406412impl < T > MyOption < & mut T > {
407- // summary=repo::test;<crate::option::MyOption>::copied;Argument[self].Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
413+ // summary=repo::test;<crate::option::MyOption>::copied;Argument[self].Variant[crate::option::MyOption::MySome(0)].Reference ;ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
408414 pub fn copied ( self ) -> MyOption < T >
409415 where
410416 T : Copy ,
@@ -474,14 +480,14 @@ impl<T> From<T> for MyOption<T> {
474480}
475481
476482impl < ' a , T > From < & ' a MyOption < T > > for MyOption < & ' a T > {
477- // summary=repo::test;<crate::option::MyOption as crate::convert::From>::from;Argument[0].Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
483+ // summary=repo::test;<crate::option::MyOption as crate::convert::From>::from;Argument[0].Reference. Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
478484 fn from ( o : & ' a MyOption < T > ) -> MyOption < & ' a T > {
479485 o. as_ref ( )
480486 }
481487}
482488
483489impl < ' a , T > From < & ' a mut MyOption < T > > for MyOption < & ' a mut T > {
484- // summary=repo::test;<crate::option::MyOption as crate::convert::From>::from;Argument[0].Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
490+ // summary=repo::test;<crate::option::MyOption as crate::convert::From>::from;Argument[0].Reference. Variant[crate::option::MyOption::MySome(0)];ReturnValue.Variant[crate::option::MyOption::MySome(0)];value;dfc-generated
485491 fn from ( o : & ' a mut MyOption < T > ) -> MyOption < & ' a mut T > {
486492 o. as_mut ( )
487493 }
0 commit comments