public virtual object GetIndex(object self, object index) { Slice slice = index as Slice; if (slice != null && slice.step == null) { object getSlice; if (Ops.TryGetAttr(DefaultContext.Default, self, SymbolTable.GetSlice, out getSlice)) { int start, stop; slice.DeprecatedFixed(self, out start, out stop); return(Ops.Call(getSlice, start, stop)); } } return(Ops.Invoke(self, SymbolTable.GetItem, index)); }
public virtual void SetIndex(object self, object index, object value) { Slice slice = index as Slice; if (slice != null && slice.step == null) { object setSlice; if (Ops.TryGetAttr(DefaultContext.Default, self, SymbolTable.SetSlice, out setSlice)) { int start, stop; slice.DeprecatedFixed(self, out start, out stop); Ops.Call(setSlice, start, stop, value); return; } } Ops.Invoke(self, SymbolTable.SetItem, index, value); }