boolean (@NotNull UCallExpression uCallExpression) { if (uCallExpression.getValueArgumentCount() != 1) return false; if (uCallExpression.getKind() != UastCallKind.CONSTRUCTOR_CALL) { if (uCallExpression.getKind() != UastCallKind.METHOD_CALL && !Objects.equals(uCallExpression.getMethodName(), "super")) { return false; } } // Kotlin EP_NAME field with CTOR call -> handled by UField branch if (UastUtils.getParentOfType(uCallExpression, UField.class) != null) { return false; } PsiMethod resolvedMethod = uCallExpression.resolve(); if (resolvedMethod == null) return false; if (!resolvedMethod.isConstructor()) return false; return InheritanceUtil.isInheritor(resolvedMethod.getContainingClass(), KeyedExtensionCollector.class.getName()); }