Fix SOE in SignatureEnhancement::extractNullability

The problem was that `resolveTypeQualifierAnnotation` actually doesn't
guarantee that `typeQualifierAnnotation` is javax.annotation.NonNull
with argument

It could be just any type qualifier (see the test)
This commit is contained in:
Denis Zharkov
2017-09-21 17:31:26 +03:00
parent 1953f8e945
commit c7812beea4
7 changed files with 172 additions and 12 deletions
@@ -60,6 +60,12 @@ public class ForeignAnnotationsNoAnnotationInClasspathTestGenerated extends Abst
doTest(fileName);
}
@TestMetadata("irrelevantQualifierNicknames.kt")
public void testIrrelevantQualifierNicknames() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/irrelevantQualifierNicknames.kt");
doTest(fileName);
}
@TestMetadata("jsr305NullabilityNicknames.kt")
public void testJsr305NullabilityNicknames() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityNicknames.kt");
@@ -60,6 +60,12 @@ public class ForeignAnnotationsNoAnnotationInClasspathWithFastClassReadingTestGe
doTest(fileName);
}
@TestMetadata("irrelevantQualifierNicknames.kt")
public void testIrrelevantQualifierNicknames() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/irrelevantQualifierNicknames.kt");
doTest(fileName);
}
@TestMetadata("jsr305NullabilityNicknames.kt")
public void testJsr305NullabilityNicknames() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityNicknames.kt");
@@ -60,6 +60,12 @@ public class ForeignAnnotationsTestGenerated extends AbstractForeignAnnotationsT
doTest(fileName);
}
@TestMetadata("irrelevantQualifierNicknames.kt")
public void testIrrelevantQualifierNicknames() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/irrelevantQualifierNicknames.kt");
doTest(fileName);
}
@TestMetadata("jsr305NullabilityNicknames.kt")
public void testJsr305NullabilityNicknames() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityNicknames.kt");
@@ -60,6 +60,12 @@ public class JavacForeignAnnotationsTestGenerated extends AbstractJavacForeignAn
doTest(fileName);
}
@TestMetadata("irrelevantQualifierNicknames.kt")
public void testIrrelevantQualifierNicknames() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/irrelevantQualifierNicknames.kt");
doTest(fileName);
}
@TestMetadata("jsr305NullabilityNicknames.kt")
public void testJsr305NullabilityNicknames() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/foreignAnnotations/tests/jsr305NullabilityNicknames.kt");