forked from M-Labs/artiq
compiler: Fix #1871 (array() breaks math functions)
GitHub: Fixes #1871.
This commit is contained in:
parent
ca67ae8365
commit
8786b137a3
@ -169,7 +169,9 @@ def fn_list():
|
||||
return types.TConstructor(TList())
|
||||
|
||||
def fn_array():
|
||||
return types.TConstructor(TArray())
|
||||
# numpy.array() is actually a "magic" macro that is expanded in-place, but
|
||||
# just as for builtin functions, we do not want to quote it, etc.
|
||||
return types.TBuiltinFunction("array")
|
||||
|
||||
def fn_Exception():
|
||||
return types.TExceptionConstructor(TException("Exception"))
|
||||
|
@ -530,3 +530,42 @@ class NumpyBoolTest(ExperimentCase):
|
||||
def test_numpy_bool(self):
|
||||
"""Test NumPy bools decay to ARTIQ compiler builtin bools as expected"""
|
||||
self.create(_NumpyBool).run()
|
||||
|
||||
|
||||
class _Alignment(EnvExperiment):
|
||||
def build(self):
|
||||
self.setattr_device("core")
|
||||
|
||||
@rpc
|
||||
def a_tuple(self) -> TList(TTuple([TBool, TFloat, TBool])):
|
||||
return [(True, 1234.5678, True)]
|
||||
|
||||
@kernel
|
||||
def run(self):
|
||||
a, b, c = self.a_tuple()[0]
|
||||
d, e, f = self.a_tuple()[0]
|
||||
assert a == d
|
||||
assert b == e
|
||||
assert c == f
|
||||
return 0
|
||||
|
||||
|
||||
class AlignmentTest(ExperimentCase):
|
||||
def test_tuple(self):
|
||||
self.create(_Alignment).run()
|
||||
|
||||
|
||||
class _NumpyQuoting(EnvExperiment):
|
||||
def build(self):
|
||||
self.setattr_device("core")
|
||||
|
||||
@kernel
|
||||
def run(self):
|
||||
a = np.array([10, 20])
|
||||
b = np.sqrt(4.0)
|
||||
|
||||
|
||||
class NumpyQuotingTest(ExperimentCase):
|
||||
def test_issue_1871(self):
|
||||
"""Ensure numpy.array() does not break NumPy math functions"""
|
||||
self.create(_NumpyQuoting).run()
|
||||
|
Loading…
Reference in New Issue
Block a user