pub fn push(&mut self, scope: &Rc<RefCell<Scope>>) {
        {
            let scope_borrow = scope.borrow();
            if scope_borrow.parent.is_none()
                || !Rc::ptr_eq(&self.cur_scope, &scope_borrow.parent.as_ref().unwrap())
            {
                println!(
                    "Scope parent: {:?}\n\nCur Scope: {:?}",
                    scope_borrow.parent, self.cur_scope
                );
                panic!("Precondition of push not fulfilled pushed scope's parent must be current scope");
            }
        }
        self.cur_scope = Rc::clone(&scope);
    }
/// Precondition: scope's parent must be cur_scope
scope's parent must be cur_scope
scope ' s parent must be cur_scope
pub fn push(&mut self, scope: &Rc<RefCell<Scope>>) {
        {
            let scope_borrow = scope.borrow();
            if scope_borrow.parent.is_none()
                || !Rc::ptr_eq(&self.cur_scope, &scope_borrow.parent.as_ref().unwrap())
            {
                println!(
                    "Scope parent: {:?}\n\nCur Scope: {:?}",
                    scope_borrow.parent, self.cur_scope
                );
                panic!("Precondition of push not fulfilled pushed scope's parent must be current scope");
            }
        }
        self.cur_scope = Rc::clone(&scope);
    }
pub fn push ( & mut self , scope : & Rc < RefCell < Scope > > ) { { let scope_borrow = scope . borrow ( ) ; if scope_borrow . parent . is_none ( ) || ! Rc :: ptr_eq ( & self . cur_scope , & scope_borrow . parent . as_ref ( ) . unwrap ( ) ) { println ! ( " \n \n " scope_borrow parent self cur_scope ) ; panic ! ( " " ) ; } } self . cur_scope = Rc :: clone ( & scope ) ; }
Precondition: scope's parent must be cur_scope
Precondition : scope ' s parent must be cur_scope
&mut self
scope
&Rc<RefCell<Scope>>