equal
deleted
inserted
replaced
158 Ok(py.None()) |
158 Ok(py.None()) |
159 } |
159 } |
160 |
160 |
161 def __delitem__(&self, key: PyObject) -> PyResult<()> { |
161 def __delitem__(&self, key: PyObject) -> PyResult<()> { |
162 // __delitem__ is both for `del idx[r]` and `del idx[r1:r2]` |
162 // __delitem__ is both for `del idx[r]` and `del idx[r1:r2]` |
163 self.cindex(py).borrow().inner().del_item(py, key)?; |
163 self.cindex(py).borrow().inner().del_item(py, &key)?; |
|
164 let start = key.getattr(py, "start")?; |
|
165 let start = UncheckedRevision(start.extract(py)?); |
|
166 let start = self.index(py) |
|
167 .borrow() |
|
168 .check_revision(start) |
|
169 .ok_or_else(|| { |
|
170 nodemap_error(py, NodeMapError::RevisionNotInIndex(start)) |
|
171 })?; |
|
172 self.index(py).borrow_mut().remove(start).unwrap(); |
164 let mut opt = self.get_nodetree(py)?.borrow_mut(); |
173 let mut opt = self.get_nodetree(py)?.borrow_mut(); |
165 let nt = opt.as_mut().unwrap(); |
174 let nt = opt.as_mut().unwrap(); |
166 nt.invalidate_all(); |
175 nt.invalidate_all(); |
167 self.fill_nodemap(py, nt)?; |
176 self.fill_nodemap(py, nt)?; |
168 Ok(()) |
177 Ok(()) |