From 26bbc61794bc5dd60c3e53f848e27ca8b45dac23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fin=20Maa=C3=9F?= Date: Mon, 13 Jan 2025 15:35:01 +0100 Subject: [PATCH] Improve slice handling in _Value class to return self for specific cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return self, when the slice would be the same. Signed-off-by: Fin Maaß --- migen/fhdl/structure.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/migen/fhdl/structure.py b/migen/fhdl/structure.py index 0865e76fa..56eff1b96 100644 --- a/migen/fhdl/structure.py +++ b/migen/fhdl/structure.py @@ -102,11 +102,15 @@ def __getitem__(self, key): raise IndexError if key < 0: key += n + if key == 0 and n == 1: + return self return _Slice(self, key, key+1) elif isinstance(key, slice): start, stop, step = key.indices(n) if step != 1: return Cat(self[i] for i in range(start, stop, step)) + if start == 0 and stop == n: + return self return _Slice(self, start, stop) else: raise TypeError("Cannot use type {} ({}) as key".format(