New Java parser (incomplete array types parsing fixed)

This commit is contained in:
Roman Shevchenko
2010-08-12 20:52:08 +04:00
parent 1034137510
commit 64f94033fb
5 changed files with 45 additions and 6 deletions
@@ -104,13 +104,17 @@ public class ReferenceParser {
DeclarationParser.parseAnnotations(builder);
}
final PsiBuilder.Marker bracket = builder.mark();
if (!expect(builder, JavaTokenType.LBRACKET)) {
bracket.drop();
break;
}
if (!expect(builder, JavaTokenType.RBRACKET)) {
bracket.rollbackTo();
break;
}
bracket.drop();
typeInfo.isArray = true;
if (!expectOrError(builder, JavaTokenType.RBRACKET, JavaErrorMessages.message("expected.rbracket"))) {
break;
}
type = type.precede();
}
@@ -0,0 +1,3 @@
class Test {
int[0];
}
@@ -0,0 +1,31 @@
PsiJavaFile:Errors.java
PsiImportList
<empty list>
PsiClass:Test
PsiModifierList:
<empty list>
PsiKeyword:class('class')
PsiWhiteSpace(' ')
PsiIdentifier:Test('Test')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiModifierList:
<empty list>
PsiTypeElement:int
PsiKeyword:int('int')
PsiErrorElement:Identifier expected
<empty list>
PsiErrorElement:Unexpected token
PsiJavaToken:LBRACKET('[')
PsiJavaToken:INTEGER_LITERAL('0')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n')
PsiJavaToken:RBRACE('}')
@@ -4,6 +4,5 @@ PsiJavaFile:Type3.java
PsiKeyword:int('int')
PsiJavaToken:LBRACKET('[')
PsiJavaToken:RBRACKET(']')
PsiJavaToken:LBRACKET('[')
PsiErrorElement:']' expected
<empty list>
PsiErrorElement:Unparsed tokens
PsiJavaToken:LBRACKET('[')
@@ -22,4 +22,6 @@ public class FieldParsingTest extends JavaParsingTestCase {
public void testMultiLineUnclosed1() { doTest(true); }
public void testComplexInitializer() { doTest(true); }
public void testErrors() { doTest(true); }
}