In claimExpired(), line 600 checks if (!claimsStarted) claimsStarted = true. However, by the time execution reaches this line, claimsStarted has already been unconditionally set to true by the resolution block (line 549 for auto-CORRUPTED early return, line 575 for SURVIVED/EXPIRED fallthrough). The guard at line 600 can never fire in the current code path — it is dead code.
Likelihood: N/A — the condition is structurally always false; the guard never executes.
Impact: Low — no runtime effect. The dead code consumes minimal bytecode (a conditional jump that always falls through). It exists as vestigial defense-in-depth but could confuse future maintainers.
File: L22-DeadGuard-ClaimsStarted.poc.t.sol
Run: forge test --match-path 'L22-DeadGuard-ClaimsStarted.poc.t.sol' -vv
Remove the dead guard, or add a comment documenting it as defense-in-depth against future code changes:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.