boolean (@NotNull PsiClass clazz, @NotNull PsiElement place) { final List<PsiMethod> constructors = getAllConstructors(clazz, place); final List<PsiMethod> accessibleParameterlessConstructors = new SmartList<>(); final List<PsiMethod> inaccessibleConstructors = new SmartList<>(); for (PsiMethod constructor : constructors) { if (PsiUtil.isAccessible(place, constructor)) { if (constructor.hasParameters()) { return true; } accessibleParameterlessConstructors.add(constructor); } else { inaccessibleConstructors.add(constructor); } } return accessibleParameterlessConstructors.isEmpty() && ( ContainerUtil.or(inaccessibleConstructors, constructor -> constructor.hasParameters()) || ContainerUtil.or(clazz.getAllMethods(), method -> GroovyPropertyUtils.isSimplePropertySetter(method)) ); }