boolean (@NotNull Project project, Editor editor, PsiFile file) { if (!myClass.isValid() || !canModify(myClass)) return false; PsiClass base = myClass.getSuperClass(); if (base == null) return false; PsiSubstitutor substitutor = TypeConversionUtil.getSuperClassSubstitutor(base, myClass, PsiSubstitutor.EMPTY); for (PsiMethod baseConstructor: base.getConstructors()) { if (PsiUtil.isAccessible(baseConstructor, myClass, null)) { PsiMethod derived = GenerateMembersUtil.substituteGenericMethod(baseConstructor, substitutor, myClass); String className = myClass.getName(); LOG.assertTrue(className != null); derived.setName(className); if (myClass.findMethodBySignature(derived, false) == null) { return true; } } } return false; }