New Java parser (incomplete parenthesized expression parsing fixed)

This commit is contained in:
Roman Shevchenko
2010-08-10 17:44:33 +04:00
parent 7f8ba694f2
commit d6ec09cf71
3 changed files with 12 additions and 1 deletions
@@ -27,6 +27,7 @@ import com.intellij.psi.tree.TokenSet;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import static com.intellij.lang.PsiBuilderUtil.expect;
import static com.intellij.lang.java.parser.JavaParserUtil.*;
@@ -502,7 +503,11 @@ public class ExpressionParser {
error(builder, JavaErrorMessages.message("expected.expression"));
}
JavaParserUtil.expectOrError(builder, JavaTokenType.RPARENTH, JavaErrorMessages.message("expected.rparen"));
if (!expect(builder, JavaTokenType.RPARENTH)) {
if (inner != null) {
error(builder, JavaErrorMessages.message("expected.rparen"));
}
}
parenth.done(JavaElementType.PARENTH_EXPRESSION);
return parenth;
@@ -0,0 +1,5 @@
PsiJavaFile:Parenth2.java
PsiParenthesizedExpression:(
PsiJavaToken:LPARENTH('(')
PsiErrorElement:Expression expected
<empty list>
@@ -49,6 +49,7 @@ public class ExpressionParserTest extends JavaParsingTestCase {
public void testParenth0() { doParserTest("(c)"); }
public void testParenth1() { doParserTest("(this).f--"); }
public void testParenth2() { doParserTest("("); }
public void testNewInExprList() { doParserTest("call(new)"); }