diff --git a/amaranth/tracer.py b/amaranth/tracer.py index e8438ff..72df0ad 100644 --- a/amaranth/tracer.py +++ b/amaranth/tracer.py @@ -25,7 +25,7 @@ def get_var_name(depth=2, default=_raise_exception): else: break if call_opc not in ("CALL_FUNCTION", "CALL_FUNCTION_KW", "CALL_FUNCTION_EX", - "CALL_METHOD", "CALL", "CALL_KW"): + "CALL_METHOD", "CALL_METHOD_KW", "CALL", "CALL_KW"): if default is _raise_exception: raise NameNotFound else: diff --git a/tests/test_tracer.py b/tests/test_tracer.py index fdf82ed..5c637ef 100644 --- a/tests/test_tracer.py +++ b/tests/test_tracer.py @@ -1,4 +1,5 @@ from amaranth.hdl._ast import * +from amaranth.hdl import _ast from types import SimpleNamespace from .utils import * @@ -10,6 +11,22 @@ class TracerTestCase(FHDLTestCase): s2 = Signal() self.assertEqual(s2.name, "s2") + def test_call_variants(self): + args = [] + kwargs = {} + s1 = Signal() + self.assertEqual(s1.name, "s1") + s2 = Signal(init=0) + self.assertEqual(s2.name, "s2") + s3 = Signal(*args, **kwargs) + self.assertEqual(s3.name, "s3") + s4 = _ast.Signal() + self.assertEqual(s4.name, "s4") + s5 = _ast.Signal(init=0) + self.assertEqual(s5.name, "s5") + s6 = _ast.Signal(*args, **kwargs) + self.assertEqual(s6.name, "s6") + def test_name(self): class Dummy: s1 = Signal()