Java: report void not allowed as embedded string template expression (IJ-CR-113878)

GitOrigin-RevId: 74934fab80465cf05acf28108c38d4c4c119fffa
This commit is contained in:
Bas Leijdekkers
2023-08-31 13:43:50 +02:00
committed by intellij-monorepo-bot
parent 0aebe230e8
commit 049e116d27
3 changed files with 18 additions and 0 deletions

View File

@@ -948,6 +948,18 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
if (!myHolder.hasErrorResults()) add(HighlightUtil.checkUnhandledExceptions(expression));
}
@Override
public void visitTemplate(@NotNull PsiTemplate template) {
super.visitTemplate(template);
for (PsiExpression embeddedExpression : template.getEmbeddedExpressions()) {
if (PsiTypes.voidType().equals(embeddedExpression.getType())) {
String message = JavaErrorBundle.message("expression.with.type.void.not.allowed.as.string.template.embedded.expression");
add(HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(embeddedExpression).descriptionAndTooltip(message));
}
}
}
@Override
public void visitFragment(@NotNull PsiFragment fragment) {
super.visitFragment(fragment);