@Override
    protected PsiExpression getModifiedArgument(final PsiExpression expression, PsiType toType) throws IncorrectOperationException {
      final PsiType exprType = expression.getType();
      if (exprType instanceof PsiClassType && toType instanceof PsiPrimitiveType) {
        PsiClassType boxed = ((PsiPrimitiveType)toType).getBoxedType(expression);
        assert boxed != null : toType + ":" + PsiUtil.getLanguageLevel(expression);
        toType = boxed;
      }
      return AddTypeCastFix.createCastExpression(expression, expression.getProject(), toType);
    }
@Override
    protected PsiExpression getModifiedArgument(final PsiExpression expression, PsiType toType)