Java: nice error message on record compact constructor with throws clause (IDEA-361336)

GitOrigin-RevId: a499a5481dacf44fe72b5b1e5d0b3395152c0a01
This commit is contained in:
Bas Leijdekkers
2024-10-24 22:20:52 +00:00
committed by intellij-monorepo-bot
parent fc99608c7a
commit 5a806a9c91
2 changed files with 9 additions and 3 deletions
@@ -333,14 +333,15 @@ public class BasicDeclarationParser {
if (type == null) {
pos.rollbackTo();
}
else if (builder.getTokenType() == JavaTokenType.LPARENTH || builder.getTokenType() == JavaTokenType.LBRACE) { // constructor
else if (builder.getTokenType() == JavaTokenType.LPARENTH ||
builder.getTokenType() == JavaTokenType.LBRACE ||
builder.getTokenType() == JavaTokenType.THROWS_KEYWORD) { // constructor
if (context == BaseContext.CODE_BLOCK) {
declaration.rollbackTo();
return null;
}
pos.rollbackTo();
if (typeParams == null) {
emptyElement(builder, myJavaElementTypeContainer.TYPE_PARAMETER_LIST);
}
@@ -359,6 +360,11 @@ public class BasicDeclarationParser {
emptyElement(builder, myJavaElementTypeContainer.THROWS_LIST);
return parseMethodBody(builder, declaration, false);
}
else if (builder.getTokenType() == JavaTokenType.THROWS_KEYWORD) {
myParser.getReferenceParser()
.parseReferenceList(builder, JavaTokenType.THROWS_KEYWORD, myJavaElementTypeContainer.THROWS_LIST, JavaTokenType.COMMA);
return parseMethodBody(builder, declaration, false);
}
else {
declaration.rollbackTo();
return null;