void (@NotNull PsiNewExpression expression) { super.visitNewExpression(expression); final PsiExpressionList argumentList = expression.getArgumentList(); if (argumentList == null) { return; } final PsiType constructorType = expression.getType(); final PsiPrimitiveType unboxedType = PsiPrimitiveType.getUnboxedType(constructorType); if (unboxedType == null) { return; } final PsiMethod constructor = expression.resolveConstructor(); if (constructor == null) { return; } final PsiExpression[] arguments = argumentList.getExpressions(); if (arguments.length != 1) { return; } final PsiExpression boxedExpression = arguments[0]; final PsiType argumentType = boxedExpression.getType(); if (!(argumentType instanceof PsiPrimitiveType) || isBoxingNecessary(expression, boxedExpression)) { return; } if (onlyReportSuperfluouslyBoxed) { final PsiType expectedType = ExpectedTypeUtils.findExpectedType(expression, false, true); if (!(expectedType instanceof PsiPrimitiveType)) { return; } } registerNewExpressionError(expression); }