void (PsiLambdaExpression lambdaExpression) { if (lambdaExpression != null) { final PsiParameter[] parameters = lambdaExpression.getParameterList().getParameters(); if (PsiUtil.isLanguageLevel11OrHigher(lambdaExpression) && ContainerUtil.exists(parameters, parameter -> keepVarType(parameter))) { for (PsiParameter parameter : parameters) { PsiTypeElement element = parameter.getTypeElement(); if (element != null) { new CommentTracker().replaceAndRestoreComments(element, PsiKeyword.VAR); } } return; } final String text; if (parameters.length == 1) { text = parameters[0].getName(); } else { text = "(" + StringUtil.join(parameters, PsiParameter::getName, ", ") + ")"; } final PsiLambdaExpression expression = (PsiLambdaExpression)JavaPsiFacade.getElementFactory(lambdaExpression.getProject()) .createExpressionFromText(text + "->{}", lambdaExpression); CommentTracker tracker = new CommentTracker(); tracker.replaceAndRestoreComments(lambdaExpression.getParameterList(), expression.getParameterList()); } }