fn frozen_by_borrow_of<'a>(&self, mut path: &'a repr::Path) -> Vec<&'a repr::Path> {
        let mut result = vec![];
        loop {
            result.push(path);
            match *path {
                repr::Path::Var(_) => return result,
                repr::Path::Extension(ref base_path, field_name) => {
                    match *self.env.path_ty(base_path) {
                        // If you borrowed `*r`, writing to `r` does
                        // not actually affect the memory at `*r`, so
                        // we can stop iterating backwards now.
                        repr::Ty::Ref(_, _, _) => {
                            assert_eq!(field_name, repr::FieldName::star());
                            return result;
                        }

                        // If you have borrowed `a.b`, then writing to
                        // `a` would overwrite `a.b`, which is
                        // disallowed.
                        repr::Ty::Struct(..) => {
                            path = base_path;
                        }

                        repr::Ty::Unit => panic!("unit has no fields"),
                        repr::Ty::Bound(..) => panic!("unexpected bound type"),
                    }
                }
            }
        }
    }
/// If `path` is mutably borrowed, returns a vector of paths which -- if
/// moved or if the storage went away -- would invalidate this
/// reference.
If `path` is mutably borrowed, returns a vector of paths which -- if
moved or if the storage went away -- would invalidate this
reference.
If ` path ` is mutably borrowed returns a vector of paths which -- if moved or if the storage went away -- would invalidate this reference .
fn frozen_by_borrow_of<'a>(&self, mut path: &'a repr::Path) -> Vec<&'a repr::Path> {
        let mut result = vec![];
        loop {
            result.push(path);
            match *path {
                repr::Path::Var(_) => return result,
                repr::Path::Extension(ref base_path, field_name) => {
                    match *self.env.path_ty(base_path) {
                        // If you borrowed `*r`, writing to `r` does
                        // not actually affect the memory at `*r`, so
                        // we can stop iterating backwards now.
                        repr::Ty::Ref(_, _, _) => {
                            assert_eq!(field_name, repr::FieldName::star());
                            return result;
                        }
                        // If you have borrowed `a.b`, then writing to
                        // `a` would overwrite `a.b`, which is
                        // disallowed.
                        repr::Ty::Struct(..) => {
                            path = base_path;
                        }
                        repr::Ty::Unit => panic!("unit has no fields"),
                        repr::Ty::Bound(..) => panic!("unexpected bound type"),
                    }
                }
            }
        }
    }
fn frozen_by_borrow_of < ' a > ( & self , mut path : & ' a repr :: Path ) -> Vec < & ' a repr :: Path > { let mut result = vec ! [ ] ; loop { result . push ( path ) ; match * path { repr :: Path :: Var ( _ ) => return result , repr :: Path :: Extension ( ref base_path , field_name ) => { match * self . env . path_ty ( base_path ) { // If you borrowed `*r`, writing to `r` does // not actually affect the memory at `*r`, so // we can stop iterating backwards now. repr :: Ty :: Ref ( _ , _ , _ ) => { assert_eq ! ( field_name repr FieldName star ( ) ) ; return result ; } // If you have borrowed `a.b`, then writing to // `a` would overwrite `a.b`, which is // disallowed. repr :: Ty :: Struct ( .. ) => { path = base_path ; } repr :: Ty :: Unit => panic ! ( " " ) , repr :: Ty :: Bound ( .. ) => panic ! ( " " ) , } } } } }
If `path` is mutably borrowed, returns a vector of paths which -- if
moved or if the storage went away -- would invalidate this
reference.
If ` path ` is mutably borrowed returns a vector of paths which -- if moved or if the storage went away -- would invalidate this reference .
&self
path
&'a repr::Path
&self
path
&'a repr::Path