boolean (@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { if (lastParent instanceof PsiCaseLabelElementList) { PsiSwitchBlock switchStatement = getEnclosingSwitchBlock(); if (switchStatement != null) { PsiExpression expression = switchStatement.getExpression(); if (expression != null) { PsiType type = expression.getType(); if (type instanceof PsiClassType) { PsiClass aClass = ((PsiClassType)type).resolve(); if (aClass != null) { if (!aClass.processDeclarations(new FilterScopeProcessor(ElementClassFilter.ENUM_CONST, processor), state, this, place)) { return false; } } } } } } return true; }