From: whitequark Date: Fri, 14 Dec 2018 08:51:36 +0000 (+0000) Subject: back.pysim: fix completely broken codegen for Switch. X-Git-Tag: working~277 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bb843cb40c4dd75431c5f3599b8e44548eef0b4d;p=nmigen.git back.pysim: fix completely broken codegen for Switch. --- diff --git a/nmigen/back/pysim.py b/nmigen/back/pysim.py index 0a9afec..d740ebd 100644 --- a/nmigen/back/pysim.py +++ b/nmigen/back/pysim.py @@ -169,14 +169,15 @@ class _StatementCompiler(StatementTransformer): mask = "1" * len(value) mask = int(mask, 2) value = int(value, 2) - cases.append((lambda test: test & mask == value, - self.on_statements(stmts))) + def make_test(mask, value): + return lambda test: test & mask == value + cases.append((make_test(mask, value), self.on_statements(stmts))) def run(state): test_value = test(state) for check, body in cases: if check(test_value): body(state) - return + return return run def on_statements(self, stmts):