void (@NotNull PsiMethodCallExpression callExpression, boolean isDeclared, @NotNull ProblemsHolder holder) { final ReflectiveClass ownerClass = getOwnerClass(callExpression); if (ownerClass != null && ownerClass.isExact()) { final PsiMethod[] methods = ownerClass.getPsiClass().getConstructors(); final PsiExpression[] arguments = callExpression.getArgumentList().getExpressions(); final PsiModifierListOwner constructorOrClass; if (methods.length != 0) { constructorOrClass = matchMethod(callExpression, methods, arguments, 0); } else { // implicit constructor constructorOrClass = arguments.length == 0 ? ownerClass.getPsiClass() : null; } if (constructorOrClass == null) { if (reportUnresolvedMembersOf(ownerClass)) { holder.registerProblem(callExpression.getArgumentList(), JavaBundle.message( "inspection.reflection.member.access.cannot.resolve.constructor.arguments")); } return; } if (!isDeclared && !constructorOrClass.hasModifierProperty(PsiModifier.PUBLIC)) { holder.registerProblem(callExpression.getArgumentList(), JavaBundle.message( "inspection.reflection.member.access.constructor.not.public"), new UseAppropriateMethodFix("getDeclaredConstructor")); } } }