             throw ExecutionError.IllegalMove(move, playerTurn, board)
         }
         try execute(uncheckedMove: move, promotion: promotion)
-        if kingIsChecked {
-            attackersToKing = 0
-        } else {
-            attackersToKing = board.attackersToKing(for: playerTurn)
-        }
-        _undoHistory = []
     }
 
     /// Executes `move`, updating the state for `self`.


        let player = playerTurn
        for moveSquare in movesBitboard {
            try! execute(uncheckedMove: square >>> moveSquare)
            if board.attackersToKing(for: player) != 0 {
                movesBitboard[moveSquare] = false
            }

            throw ExecutionError.illegalMove(move, playerTurn, board)
        }
        try execute(uncheckedMove: move, promotion: promotion)
    }

    /// Executes `move`, updating the state for `self`.
