GuessTypeVisitor (PsiExpression place, boolean honorAssignments) { List<PsiElement> exprsAndVars = getPotentiallyAffectingElements(place); GuessTypeVisitor visitor = new GuessTypeVisitor(place, honorAssignments); for (PsiElement e : exprsAndVars) { e.accept(visitor); if (e == place || visitor.isDfaNeeded()) { break; } } return visitor; }