Skip to content

Commit 857433d

Browse files
authored
Adding missing test for InlineGetItem rewrite. (#451)
Sorry I forgot to move over this other test to check that the slices are handled.
1 parent 9f333b2 commit 857433d

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

test/dialects/test_ilist.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ def const_range():
164164
assert const_range() == ilist.IList(range(0, 3))
165165

166166

167-
def test_inline_get_item():
167+
def test_inline_get_item_integer():
168168
items = tuple(ir.TestValue() for _ in range(2))
169169

170170
test_block = ir.Block(
@@ -199,6 +199,30 @@ def test_inline_get_item():
199199
assert test_block.is_equal(expected_block)
200200

201201

202+
def test_inline_getitem_slice():
203+
values = tuple(ir.TestValue() for _ in range(6))
204+
test_block = ir.Block(
205+
[
206+
qreg := ilist.New(values=values),
207+
slice_value := py.Constant(slice(2, 5, 1)),
208+
py.GetItem(obj=qreg.result, index=slice_value.result),
209+
]
210+
)
211+
slice_value.result.hints["const"] = const.Value(slice(2, 5, 1))
212+
213+
rule = rewrite.Walk(ilist.rewrite.InlineGetItem())
214+
rule.rewrite(test_block)
215+
216+
expected_block = ir.Block(
217+
[
218+
qreg := ilist.New(values=values),
219+
slice_value := py.Constant(slice(2, 5, 1)),
220+
ilist.New(values=(values[2], values[3], values[4])),
221+
]
222+
)
223+
assert test_block.is_equal(expected_block)
224+
225+
202226
def test_ilist_constprop():
203227
from kirin.analysis import const
204228

0 commit comments

Comments
 (0)