lib.enum: change shape mismatch warning category to SyntaxWarning.

This commit is contained in:
Catherine 2023-03-03 06:14:53 +00:00
parent c1b9c64e10
commit f77a335abf
2 changed files with 6 additions and 6 deletions

View file

@ -47,7 +47,7 @@ class EnumMeta(ShapeCastable, py_enum.EnumMeta):
message="Value of enumeration member {!r} is signed, but enumeration "
"shape is {!r}" # the repr will be `unsigned(X)`
.format(member, shape),
category=RuntimeWarning,
category=SyntaxWarning,
stacklevel=2)
elif (member_shape.width > shape.width or
member_shape.width == shape.width and
@ -56,7 +56,7 @@ class EnumMeta(ShapeCastable, py_enum.EnumMeta):
message="Value of enumeration member {!r} will be truncated to "
"enumeration shape {!r}"
.format(member, shape),
category=RuntimeWarning,
category=SyntaxWarning,
stacklevel=2)
else:
# Shape is not provided explicitly. Behave the same as a standard enumeration;

View file

@ -53,24 +53,24 @@ class EnumTestCase(FHDLTestCase):
self.assertEqual(Shape.cast(EnumD), signed(4))
def test_shape_explicit_wrong_signed_mismatch(self):
with self.assertWarnsRegex(RuntimeWarning,
with self.assertWarnsRegex(SyntaxWarning,
r"^Value of enumeration member <EnumA\.A: -1> is signed, but enumeration "
r"shape is unsigned\(1\)$"):
class EnumA(Enum, shape=unsigned(1)):
A = -1
def test_shape_explicit_wrong_too_wide(self):
with self.assertWarnsRegex(RuntimeWarning,
with self.assertWarnsRegex(SyntaxWarning,
r"^Value of enumeration member <EnumA\.A: 2> will be truncated to enumeration "
r"shape unsigned\(1\)$"):
class EnumA(Enum, shape=unsigned(1)):
A = 2
with self.assertWarnsRegex(RuntimeWarning,
with self.assertWarnsRegex(SyntaxWarning,
r"^Value of enumeration member <EnumB\.A: 1> will be truncated to enumeration "
r"shape signed\(1\)$"):
class EnumB(Enum, shape=signed(1)):
A = 1
with self.assertWarnsRegex(RuntimeWarning,
with self.assertWarnsRegex(SyntaxWarning,
r"^Value of enumeration member <EnumC\.A: -2> will be truncated to enumeration "
r"shape signed\(1\)$"):
class EnumC(Enum, shape=signed(1)):