[java-highlighting] IDEA-357214 'Module' is highlighted as an error when module name is expected

GitOrigin-RevId: c7ca9de1821e79b96a05ab74a3cbad7052ceb827
This commit is contained in:
Mikhail Pyltsin
2024-10-10 15:17:07 +00:00
committed by intellij-monorepo-bot
parent 59cadbb09a
commit 7e9f1978a2
8 changed files with 161 additions and 1 deletions
@@ -193,6 +193,7 @@ public class BasicFileParser {
PsiBuilder.Marker statement = builder.mark();
builder.advanceLexer();
String identifierText = builder.getTokenText();
IElementType type = getImportType(builder);
boolean isStatic = type == myJavaElementTypeContainer.IMPORT_STATIC_STATEMENT;
boolean isModule = type == myJavaElementTypeContainer.IMPORT_MODULE_STATEMENT;
@@ -202,7 +203,15 @@ public class BasicFileParser {
} else {
isOk = myParser.getReferenceParser().parseImportCodeReference(builder, isStatic);
}
if (isOk) semicolon(builder);
//if it is `module` it should expect or `;` or `identifier`
if (isOk && !isModule && !isStatic && builder.getTokenType() != JavaTokenType.SEMICOLON &&
PsiKeyword.MODULE.equals(identifierText)) {
BasicJavaParserUtil.error(builder, JavaPsiBundle.message("expected.identifier.or.semicolon"));
}
else if (isOk) {
semicolon(builder);
}
done(statement, type, myWhiteSpaceAndCommentSetHolder);
return statement;