New Java parser (dead loop in expression parsing parsing fixed)

This commit is contained in:
Roman Shevchenko
2010-08-17 20:55:50 +04:00
parent 9d20d0115e
commit b46b3d493c
3 changed files with 51 additions and 12 deletions
@@ -0,0 +1,35 @@
PsiJavaFile:SCR5202.java
PsiCodeBlock
PsiJavaToken:LBRACE('{')
PsiWhiteSpace(' ')
PsiExpressionStatement
PsiReferenceExpression:String.class.
String
PsiClassObjectAccessExpression:String.class
PsiTypeElement:String
PsiJavaCodeReferenceElement:String
PsiIdentifier:String('String')
PsiReferenceParameterList
<empty list>
PsiJavaToken:DOT('.')
PsiKeyword:class('class')
PsiJavaToken:DOT('.')
PsiReferenceParameterList
<empty list>
PsiWhiteSpace('\n ')
PsiIdentifier:String('String')
PsiErrorElement:';' expected
<empty list>
PsiErrorElement:Unexpected token
PsiJavaToken:LBRACKET('[')
PsiErrorElement:Unexpected token
PsiJavaToken:RBRACKET(']')
PsiWhiteSpace(' ')
PsiExpressionStatement
PsiReferenceExpression:strings
PsiReferenceParameterList
<empty list>
PsiIdentifier:strings('strings')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace(' ')
PsiJavaToken:RBRACE('}')
@@ -36,6 +36,7 @@ public class StatementParserTest extends JavaParsingTestCase {
public void testBlockIncomplete0() { doParserTest("{ /*}"); }
public void testBlockIncomplete1() { doParserTest("{ { }"); }
public void testBlockIncomplete2() { doParserTest("{ else; catch; finally; }"); }
public void testSCR5202() { doParserTest("{ String.class.\n String[] strings; }"); }
public void testBreakNormal0() { doParserTest("{ break; }"); }
public void testBreakNormal1() { doParserTest("{ break LABEL; }"); }