diff --git a/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicPrattExpressionParser.java b/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicPrattExpressionParser.java index 5e36362a6efc..a5f9fe18b10d 100644 --- a/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicPrattExpressionParser.java +++ b/java/java-frontback-psi-impl/src/com/intellij/lang/java/parser/BasicPrattExpressionParser.java @@ -29,7 +29,6 @@ import static com.intellij.psi.impl.source.BasicElementTypes.*; @SuppressWarnings("UnnecessarilyQualifiedStaticUsage") @ApiStatus.Experimental public class BasicPrattExpressionParser { - static final int FORBID_LAMBDA_MASK = 0x1; private final Map ourInfixParsers; private static final TokenSet THIS_OR_SUPER = TokenSet.create(JavaTokenType.THIS_KEYWORD, JavaTokenType.SUPER_KEYWORD); private static final TokenSet ID_OR_SUPER = TokenSet.create(JavaTokenType.IDENTIFIER, JavaTokenType.SUPER_KEYWORD); @@ -42,7 +41,6 @@ public class BasicPrattExpressionParser { private static final TokenSet PREF_ARITHMETIC_OPS = TokenSet.orSet(POSTFIX_OPS, TokenSet.create(JavaTokenType.PLUS, JavaTokenType.MINUS)); private static final TokenSet PREFIX_OPS = TokenSet.orSet(PREF_ARITHMETIC_OPS, TokenSet.create(JavaTokenType.TILDE, JavaTokenType.EXCL)); - private static final int MULTIPLICATION_PRECEDENCE = 2; private static final int ADDITIVE_PRECEDENCE = 3; private static final int SHIFT_PRECEDENCE = 4; @@ -418,7 +416,7 @@ public class BasicPrattExpressionParser { } if (tokenType == JavaTokenType.LPARENTH) { - if (!BitUtil.isSet(mode, FORBID_LAMBDA_MASK)) { + if (!BitUtil.isSet(mode, BasicExpressionParser.FORBID_LAMBDA_MASK)) { final PsiBuilder.Marker lambda = parseLambdaAfterParenth(builder); if (lambda != null) { return lambda; @@ -433,10 +431,8 @@ public class BasicPrattExpressionParser { error(builder, JavaPsiBundle.message("expected.expression")); } - if (!expect(builder, JavaTokenType.RPARENTH)) { - if (inner != null) { - error(builder, JavaPsiBundle.message("expected.rparen")); - } + if (!expect(builder, JavaTokenType.RPARENTH) && inner != null) { + error(builder, JavaPsiBundle.message("expected.rparen")); } parenth.done(myJavaElementTypeContainer.PARENTH_EXPRESSION); @@ -470,7 +466,7 @@ public class BasicPrattExpressionParser { builder.remapCurrentToken(tokenType = JavaTokenType.IDENTIFIER); } if (tokenType == JavaTokenType.IDENTIFIER) { - if (!BitUtil.isSet(mode, FORBID_LAMBDA_MASK) && builder.lookAhead(1) == JavaTokenType.ARROW) { + if (!BitUtil.isSet(mode, BasicExpressionParser.FORBID_LAMBDA_MASK) && builder.lookAhead(1) == JavaTokenType.ARROW) { return parseLambdaExpression(builder, false); } @@ -882,21 +878,17 @@ public class BasicPrattExpressionParser { if (builder.rawLookup(1) == JavaTokenType.GT) { if (builder.rawLookup(2) == JavaTokenType.GT) { if (builder.rawLookup(3) == JavaTokenType.EQ) { - tokenType = JavaTokenType.GTGTGTEQ; - } - else { - tokenType = JavaTokenType.GTGTGT; + return JavaTokenType.GTGTGTEQ; } + return JavaTokenType.GTGTGT; } - else if (builder.rawLookup(2) == JavaTokenType.EQ) { - tokenType = JavaTokenType.GTGTEQ; - } - else { - tokenType = JavaTokenType.GTGT; + if (builder.rawLookup(2) == JavaTokenType.EQ) { + return JavaTokenType.GTGTEQ; } + return JavaTokenType.GTGT; } else if (builder.rawLookup(1) == JavaTokenType.EQ) { - tokenType = JavaTokenType.GE; + return JavaTokenType.GE; } return tokenType;