mirror of
https://github.com/m-labs/artiq.git
synced 2024-12-25 11:18:27 +08:00
transforms.inferencer: infer a monomorphic type for slice ":"
This commit is contained in:
parent
be560dbc63
commit
cc22837627
@ -202,12 +202,16 @@ class Inferencer(algorithm.Visitor):
|
||||
value.loc, None)
|
||||
|
||||
def visit_SliceT(self, node):
|
||||
self._unify(node.type, builtins.TInt(),
|
||||
node.loc, None)
|
||||
for operand in (node.lower, node.upper, node.step):
|
||||
if operand is not None:
|
||||
self._unify(operand.type, node.type,
|
||||
operand.loc, None)
|
||||
if (node.lower, node.upper, node.step) == (None, None, None):
|
||||
self._unify(node.type, builtins.TInt32(),
|
||||
node.loc, None)
|
||||
else:
|
||||
self._unify(node.type, builtins.TInt(),
|
||||
node.loc, None)
|
||||
for operand in (node.lower, node.upper, node.step):
|
||||
if operand is not None:
|
||||
self._unify(operand.type, node.type,
|
||||
operand.loc, None)
|
||||
|
||||
def visit_ExtSlice(self, node):
|
||||
diag = diagnostic.Diagnostic("error",
|
||||
|
6
lit-test/test/inferencer/slice.py
Normal file
6
lit-test/test/inferencer/slice.py
Normal file
@ -0,0 +1,6 @@
|
||||
# RUN: %python -m artiq.compiler.testbench.inferencer %s >%t
|
||||
# RUN: OutputCheck %s --file-to-check=%t
|
||||
|
||||
x = [0]
|
||||
# CHECK-L: [::int(width=32)]
|
||||
x[:] = [1]
|
Loading…
Reference in New Issue
Block a user