compat.fhdl.structure: simplify handling of default case.

This commit is contained in:
whitequark 2019-06-25 21:52:03 +00:00
parent e5e23644a4
commit b1af0601fa

View file

@ -92,8 +92,7 @@ class Case(ast.Switch):
k = k.value k = k.value
new_cases.append((k, v)) new_cases.append((k, v))
if default is not None: if default is not None:
k = "-" * len(ast.Value.wrap(test)) new_cases.append((None, default))
new_cases.append((k, default))
super().__init__(test, OrderedDict(new_cases)) super().__init__(test, OrderedDict(new_cases))
@deprecated("instead of `Case(...).makedefault()`, use an explicit default case: " @deprecated("instead of `Case(...).makedefault()`, use an explicit default case: "
@ -106,12 +105,12 @@ class Case(ast.Switch):
or choice > key): or choice > key):
key = choice key = choice
elif isinstance(key, str) and key == "default": elif isinstance(key, str) and key == "default":
key = "-" * len(self.test) key = None
else: else:
key = "{:0{}b}".format(wrap(key).value, len(self.test)) key = "{:0{}b}".format(wrap(key).value, len(self.test))
stmts = self.cases[key] stmts = self.cases[key]
del self.cases[key] del self.cases[key]
self.cases["-" * len(self.test)] = stmts self.cases[None] = stmts
return self return self