diff options
Diffstat (limited to 'java/java-tests/testData/psi/parser-full/annotationParsing')
4 files changed, 243 insertions, 0 deletions
diff --git a/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/Errors.java b/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/Errors.java index 200c37e7fa32..4e90d08eb3ea 100644 --- a/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/Errors.java +++ b/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/Errors.java @@ -1,2 +1,8 @@ @Ann(<error descr="Cannot find method 'value'">0</error>) class D { + + <error>@EJB</error> + Runnable myMissingEjbRef; + + public <T> @SafeVarargs + static void m(); }
\ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/Errors.txt b/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/Errors.txt index 9f1efdb6d2e4..678025fdf06a 100644 --- a/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/Errors.txt +++ b/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/Errors.txt @@ -69,5 +69,96 @@ PsiJavaFile:Errors.java <empty list> PsiWhiteSpace(' ') PsiJavaToken:LBRACE('{') + PsiWhiteSpace('\n\n ') + PsiModifierList: + <empty list> + PsiErrorElement:Identifier or type expected + PsiTypeParameterList + PsiJavaToken:LT('<') + PsiTypeParameter:error + PsiIdentifier:error('error') + PsiElement(EXTENDS_BOUND_LIST) + <empty list> + PsiJavaToken:GT('>') + PsiModifierList:@EJB + PsiAnnotation + PsiJavaToken:AT('@') + PsiJavaCodeReferenceElement:EJB + PsiIdentifier:EJB('EJB') + PsiReferenceParameterList + <empty list> + PsiAnnotationParameterList + <empty list> + PsiErrorElement:Identifier or type expected + PsiTypeParameterList + PsiJavaToken:LT('<') + PsiErrorElement:Type parameter expected + <empty list> + PsiErrorElement:'>' expected. + <empty list> + PsiErrorElement:Unexpected token + PsiJavaToken:DIV('/') + PsiModifierList: + <empty list> + PsiTypeElement:error + PsiJavaCodeReferenceElement:error + PsiIdentifier:error('error') + PsiReferenceParameterList + <empty list> + PsiErrorElement:Identifier expected + <empty list> + PsiErrorElement:Unexpected token + PsiJavaToken:GT('>') + PsiWhiteSpace('\n ') + PsiField:myMissingEjbRef + PsiModifierList: + <empty list> + PsiTypeElement:Runnable + PsiJavaCodeReferenceElement:Runnable + PsiIdentifier:Runnable('Runnable') + PsiReferenceParameterList + <empty list> + PsiWhiteSpace(' ') + PsiIdentifier:myMissingEjbRef('myMissingEjbRef') + PsiJavaToken:SEMICOLON(';') + PsiWhiteSpace('\n\n ') + PsiModifierList:public + PsiKeyword:public('public') + PsiWhiteSpace(' ') + PsiErrorElement:Identifier or type expected + PsiTypeParameterList + PsiJavaToken:LT('<') + PsiTypeParameter:T + PsiIdentifier:T('T') + PsiElement(EXTENDS_BOUND_LIST) + <empty list> + PsiJavaToken:GT('>') + PsiWhiteSpace(' ') + PsiMethod:m + PsiModifierList:@SafeVarargs + static + PsiAnnotation + PsiJavaToken:AT('@') + PsiJavaCodeReferenceElement:SafeVarargs + PsiIdentifier:SafeVarargs('SafeVarargs') + PsiReferenceParameterList + <empty list> + PsiAnnotationParameterList + <empty list> + PsiWhiteSpace('\n ') + PsiKeyword:static('static') + PsiTypeParameterList + <empty list> + PsiWhiteSpace(' ') + PsiTypeElement:void + PsiKeyword:void('void') + PsiWhiteSpace(' ') + PsiIdentifier:m('m') + PsiParameterList:() + PsiJavaToken:LPARENTH('(') + PsiJavaToken:RPARENTH(')') + PsiReferenceList + <empty list> + PsiJavaToken:SEMICOLON(';') PsiWhiteSpace('\n') PsiJavaToken:RBRACE('}')
\ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/TypeAnnotations.java b/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/TypeAnnotations.java index a74d4d6bbfad..de61404de20d 100644 --- a/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/TypeAnnotations.java +++ b/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/TypeAnnotations.java @@ -47,6 +47,11 @@ 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(); + <T> @Positive int test(T t); + } + // // 2. An annotation on a wildcard type argument appears before the wildcard ... // @@ -72,6 +77,7 @@ class SpecSamples { // @Immutable SpecSamples() { } + <T> @Immutable SpecSamples(T t) { } // // todo [r.sh] 5. It is permitted to explicitly declare the method receiver as the first formal parameter ... diff --git a/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/TypeAnnotations.txt b/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/TypeAnnotations.txt index 54cf4b873ea8..0cc33a82fa2c 100644 --- a/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/TypeAnnotations.txt +++ b/java/java-tests/testData/psi/parser-full/annotationParsing/annotation/TypeAnnotations.txt @@ -1045,6 +1045,104 @@ 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 ') + PsiMethod:test + PsiModifierList: + <empty list> + PsiTypeParameterList + PsiJavaToken:LT('<') + PsiTypeParameter:T + PsiIdentifier:T('T') + PsiElement(EXTENDS_BOUND_LIST) + <empty list> + PsiJavaToken:GT('>') + PsiWhiteSpace(' ') + PsiTypeElement:@Positive int + PsiAnnotation + PsiJavaToken:AT('@') + PsiJavaCodeReferenceElement:Positive + PsiIdentifier:Positive('Positive') + PsiReferenceParameterList + <empty list> + PsiAnnotationParameterList + <empty list> + PsiWhiteSpace(' ') + PsiKeyword:int('int') + PsiWhiteSpace(' ') + PsiIdentifier:test('test') + PsiParameterList:(T t) + PsiJavaToken:LPARENTH('(') + PsiParameter:t + PsiModifierList: + <empty list> + PsiTypeElement:T + PsiJavaCodeReferenceElement:T + PsiIdentifier:T('T') + PsiReferenceParameterList + <empty list> + PsiWhiteSpace(' ') + PsiIdentifier:t('t') + 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 ...') @@ -1485,6 +1583,48 @@ PsiJavaFile:TypeAnnotations.java PsiJavaToken:LBRACE('{') PsiWhiteSpace(' ') PsiJavaToken:RBRACE('}') + PsiWhiteSpace('\n ') + PsiMethod:SpecSamples + PsiModifierList: + <empty list> + PsiTypeParameterList + PsiJavaToken:LT('<') + PsiTypeParameter:T + PsiIdentifier:T('T') + PsiElement(EXTENDS_BOUND_LIST) + <empty list> + PsiJavaToken:GT('>') + PsiWhiteSpace(' ') + PsiAnnotation + PsiJavaToken:AT('@') + PsiJavaCodeReferenceElement:Immutable + PsiIdentifier:Immutable('Immutable') + PsiReferenceParameterList + <empty list> + PsiAnnotationParameterList + <empty list> + PsiWhiteSpace(' ') + PsiIdentifier:SpecSamples('SpecSamples') + PsiParameterList:(T t) + PsiJavaToken:LPARENTH('(') + PsiParameter:t + PsiModifierList: + <empty list> + PsiTypeElement:T + PsiJavaCodeReferenceElement:T + PsiIdentifier:T('T') + PsiReferenceParameterList + <empty list> + PsiWhiteSpace(' ') + PsiIdentifier:t('t') + PsiJavaToken:RPARENTH(')') + PsiReferenceList + <empty list> + PsiWhiteSpace(' ') + PsiCodeBlock + PsiJavaToken:LBRACE('{') + PsiWhiteSpace(' ') + PsiJavaToken:RBRACE('}') PsiWhiteSpace('\n\n ') PsiComment(END_OF_LINE_COMMENT)('//') PsiWhiteSpace('\n ') |