void (@NotNull GroovyPsiElement scope) { final MultiMap<PsiElement, GrVariable> scopes = collectVariables(scope); for (final Map.Entry<PsiElement, Collection<GrVariable>> entry : scopes.entrySet()) { final PsiElement scopeToProcess = entry.getKey(); final Set<GrVariable> forInParameters = new HashSet<>(); final Set<GrVariable> variables = new HashSet<>(); for (final GrVariable var : entry.getValue()) { variables.add(var); if (var instanceof GrParameter && ((GrParameter)var).getDeclarationScope() instanceof GrForStatement) { forInParameters.add(var); } } final GroovyControlFlow flow = getFlow(scopeToProcess); highlightInvalidWriteAccess(flow, variables, forInParameters); } }