Esse código realmente causa um problema de "acesso ao fechamento modificado"?

Tomando o código a seguir, o Resharper me diz quevoicesSoFar evoicesNeededMaximum causar "acesso a um fechamento modificado". Eu li sobre isso, mas o que me intriga aqui é que o Resharper sugere corrigir isso extraindo as variáveis logo antes da consulta LINQ. Mas é aí que eles já estão!

O compartilhador pára de reclamar se eu apenas adicionarint voicesSoFar1 = voicesSoFar logo depoisint voicesSoFar = 0. Existe alguma lógica estranha que não entendo que corrija a sugestão do Resharper? Ou existe uma maneira de "acessar com segurança fechamentos modificados" em casos como esses sem causar bugs?

// this takes voters while we have less than 300 voices    
int voicesSoFar = 0;    
int voicesNeededMaximum = 300;    
var eligibleVoters =
    voters.TakeWhile((p => (voicesSoFar += p.Voices) < voicesNeededMaximum));

questionAnswers(3)

yourAnswerToTheQuestion