List<PsiField> (@NotNull PsiClass psiClass, @NotNull PsiField startField, @NotNull List<PsiMethod> constructors) { List<PsiField> fields = new ArrayList<>(); for (PsiField field : psiClass.getFields()) { if (field == startField || (!field.hasModifierProperty(PsiModifier.STATIC) && field.hasModifierProperty(PsiModifier.FINAL) && !HighlightControlFlowUtil.isFieldInitializedAfterObjectConstruction(field) && (constructors.isEmpty() || ContainerUtil.exists(constructors, ctr -> !isFieldAssignedInConstructor(field, ctr))))) { fields.add(field); } } return fields; }