diff --git a/artiq/compiler/validators/local_access.py b/artiq/compiler/validators/local_access.py index ee43b30a7..c86f3e46b 100644 --- a/artiq/compiler/validators/local_access.py +++ b/artiq/compiler/validators/local_access.py @@ -99,12 +99,14 @@ class LocalAccessValidator: if isinstance(insn, ir.Closure): env = insn.environment() - for var_name in block_state[env]: - if not block_state[env][var_name]: - # A closure would capture this variable while it is not always - # initialized. Note that this check is transitive. - self._uninitialized_access(insn, var_name, - pred_at_fault(env, var_name)) + # Make sure this environment has any interesting variables. + if env in block_state: + for var_name in block_state[env]: + if not block_state[env][var_name]: + # A closure would capture this variable while it is not always + # initialized. Note that this check is transitive. + self._uninitialized_access(insn, var_name, + pred_at_fault(env, var_name)) # Save the state. state[block] = block_state