IDEA-127077 (incorrect parsing of type annotations)

This commit is contained in:
Roman Shevchenko
2014-07-15 13:32:20 +02:00
parent 5b72facaa0
commit 6521af0d3e
3 changed files with 63 additions and 2 deletions
@@ -47,6 +47,10 @@ class SpecSamples {
try (@A Reader r = new @B FileReader("/dev/zero"); @A Writer w = new @B FileWriter("/dev/null")) { }
}
interface TestClass {
<T> @Nullable List<T> test();
}
//
// 2. An annotation on a wildcard type argument appears before the wildcard ...
//
@@ -1045,6 +1045,63 @@ PsiJavaFile:TypeAnnotations.java
PsiWhiteSpace('\n ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiClass:TestClass
PsiModifierList:
<empty list>
PsiKeyword:interface('interface')
PsiWhiteSpace(' ')
PsiIdentifier:TestClass('TestClass')
PsiTypeParameterList
<empty list>
PsiReferenceList
<empty list>
PsiReferenceList
<empty list>
PsiWhiteSpace(' ')
PsiJavaToken:LBRACE('{')
PsiWhiteSpace('\n ')
PsiMethod:test
PsiModifierList:
<empty list>
PsiTypeParameterList
PsiJavaToken:LT('<')
PsiTypeParameter:T
PsiIdentifier:T('T')
PsiElement(EXTENDS_BOUND_LIST)
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiTypeElement:@Nullable List<T>
PsiAnnotation
PsiJavaToken:AT('@')
PsiJavaCodeReferenceElement:Nullable
PsiIdentifier:Nullable('Nullable')
PsiReferenceParameterList
<empty list>
PsiAnnotationParameterList
<empty list>
PsiWhiteSpace(' ')
PsiJavaCodeReferenceElement:List<T>
PsiIdentifier:List('List')
PsiReferenceParameterList
PsiJavaToken:LT('<')
PsiTypeElement:T
PsiJavaCodeReferenceElement:T
PsiIdentifier:T('T')
PsiReferenceParameterList
<empty list>
PsiJavaToken:GT('>')
PsiWhiteSpace(' ')
PsiIdentifier:test('test')
PsiParameterList:()
PsiJavaToken:LPARENTH('(')
PsiJavaToken:RPARENTH(')')
PsiReferenceList
<empty list>
PsiJavaToken:SEMICOLON(';')
PsiWhiteSpace('\n ')
PsiJavaToken:RBRACE('}')
PsiWhiteSpace('\n\n ')
PsiComment(END_OF_LINE_COMMENT)('//')
PsiWhiteSpace('\n ')
PsiComment(END_OF_LINE_COMMENT)('// 2. An annotation on a wildcard type argument appears before the wildcard ...')