diff --git a/artiq/compiler/transforms/inferencer.py b/artiq/compiler/transforms/inferencer.py index 684c575de..a8bb6cbee 100644 --- a/artiq/compiler/transforms/inferencer.py +++ b/artiq/compiler/transforms/inferencer.py @@ -216,6 +216,7 @@ class Inferencer(algorithm.Visitor): value.loc, None) def visit_SliceT(self, node): + self.generic_visit(node) if (node.lower, node.upper, node.step) == (None, None, None): self._unify(node.type, builtins.TInt32(), node.loc, None) diff --git a/artiq/test/lit/regression/issue_1632.py b/artiq/test/lit/regression/issue_1632.py new file mode 100644 index 000000000..c7f36f96b --- /dev/null +++ b/artiq/test/lit/regression/issue_1632.py @@ -0,0 +1,19 @@ +# RUN: %python -m artiq.compiler.testbench.embedding %s + +from artiq.language.core import * +from artiq.language.types import * +import numpy as np + +class A: + def __init__(self): + self.n = 2 + + @kernel + def run(self): + print([1, 2, 3][:self.n]) + +a = A() + +@kernel +def entrypoint(): + a.run()