[FIR] fix NPE on missing java annotations qualifier
^KTIJ-23075 fixed
This commit is contained in:
committed by
Space Team
parent
f07f7885c5
commit
68a17242b3
+6
@@ -94,6 +94,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated ext
|
||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/implicitLambdaParameter.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaClassWithEmptyAnnotationName.kt")
|
||||
public void testJavaClassWithEmptyAnnotationName() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/javaClassWithEmptyAnnotationName.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaField.kt")
|
||||
public void testJavaField() throws Exception {
|
||||
|
||||
+6
@@ -94,6 +94,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte
|
||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/implicitLambdaParameter.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaClassWithEmptyAnnotationName.kt")
|
||||
public void testJavaClassWithEmptyAnnotationName() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/javaClassWithEmptyAnnotationName.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaField.kt")
|
||||
public void testJavaField() throws Exception {
|
||||
|
||||
+6
@@ -94,6 +94,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerat
|
||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/implicitLambdaParameter.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaClassWithEmptyAnnotationName.kt")
|
||||
public void testJavaClassWithEmptyAnnotationName() throws Exception {
|
||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/javaClassWithEmptyAnnotationName.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaField.kt")
|
||||
public void testJavaField() throws Exception {
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
@`<Error class: unknown class>`
|
||||
open class JavaClass
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
KtNamedClassOrObjectSymbol:
|
||||
annotationsList: [
|
||||
<Error class: unknown class>()
|
||||
psi: null
|
||||
]
|
||||
classIdIfNonLocal: JavaClass
|
||||
classKind: CLASS
|
||||
companionObject: null
|
||||
contextReceivers: []
|
||||
isData: false
|
||||
isExternal: false
|
||||
isFun: false
|
||||
isInline: false
|
||||
isInner: false
|
||||
modality: OPEN
|
||||
name: JavaClass
|
||||
origin: JAVA
|
||||
superTypes: [
|
||||
kotlin/Any
|
||||
]
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
getContainingModule: KtSourceModule "Sources of main"
|
||||
deprecationStatus: null
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
// FILE: main.kt
|
||||
|
||||
fun main() {
|
||||
val j: Java<caret>Class = JavaClass()
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
|
||||
@()
|
||||
public class JavaClass {}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
@`<error>`
|
||||
open class JavaClass
|
||||
analysis/analysis-api/testData/symbols/symbolByReference/javaClassWithEmptyAnnotationName.pretty.txt
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
@`<error>`
|
||||
open class JavaClass
|
||||
Vendored
+25
@@ -0,0 +1,25 @@
|
||||
KtNamedClassOrObjectSymbol:
|
||||
annotationsList: [
|
||||
<error>()
|
||||
psi: null
|
||||
]
|
||||
classIdIfNonLocal: JavaClass
|
||||
classKind: CLASS
|
||||
companionObject: null
|
||||
contextReceivers: []
|
||||
isData: false
|
||||
isExternal: false
|
||||
isFun: false
|
||||
isInline: false
|
||||
isInner: false
|
||||
modality: OPEN
|
||||
name: JavaClass
|
||||
origin: JAVA
|
||||
superTypes: [
|
||||
kotlin/Any
|
||||
]
|
||||
symbolKind: TOP_LEVEL
|
||||
typeParameters: []
|
||||
visibility: Public
|
||||
getContainingModule: KtSourceModule "Sources of main"
|
||||
deprecationStatus: null
|
||||
+6
@@ -3431,6 +3431,12 @@ public class DiagnosisCompilerFirTestdataTestGenerated extends AbstractDiagnosis
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaClassWithEmptyAnnotationName.kt")
|
||||
public void testJavaClassWithEmptyAnnotationName() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/javaClassWithEmptyAnnotationName.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaQualifier.kt")
|
||||
public void testJavaQualifier() throws Exception {
|
||||
|
||||
+5
@@ -3025,6 +3025,11 @@ public class LazyBodyIsNotTouchedTilContractsPhaseTestGenerated extends Abstract
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("javaClassWithEmptyAnnotationName.kt")
|
||||
public void testJavaClassWithEmptyAnnotationName() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/javaClassWithEmptyAnnotationName.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("javaQualifier.kt")
|
||||
public void testJavaQualifier() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/javaQualifier.kt");
|
||||
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
FILE: main.kt
|
||||
public final fun main(): R|kotlin/Unit| {
|
||||
lval j: R|JavaClass| = R|/JavaClass.JavaClass|()
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// FILE: main.kt
|
||||
|
||||
fun main() {
|
||||
val j: JavaClass = JavaClass()
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
|
||||
@()
|
||||
public class JavaClass {}
|
||||
+6
@@ -3431,6 +3431,12 @@ public class FirDiagnosticTestGenerated extends AbstractFirDiagnosticTest {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaClassWithEmptyAnnotationName.kt")
|
||||
public void testJavaClassWithEmptyAnnotationName() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/javaClassWithEmptyAnnotationName.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaQualifier.kt")
|
||||
public void testJavaQualifier() throws Exception {
|
||||
|
||||
+6
@@ -3431,6 +3431,12 @@ public class FirDiagnosticsWithLightTreeTestGenerated extends AbstractFirDiagnos
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/innerClassHierarchy.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaClassWithEmptyAnnotationName.kt")
|
||||
public void testJavaClassWithEmptyAnnotationName() throws Exception {
|
||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/javaClassWithEmptyAnnotationName.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("javaQualifier.kt")
|
||||
public void testJavaQualifier() throws Exception {
|
||||
|
||||
@@ -12,9 +12,11 @@ import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
|
||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.buildUnaryArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.*
|
||||
import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod
|
||||
import org.jetbrains.kotlin.fir.java.declarations.buildJavaValueParameter
|
||||
import org.jetbrains.kotlin.fir.references.builder.buildErrorNamedReference
|
||||
import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference
|
||||
@@ -247,7 +249,9 @@ private fun JavaAnnotation.toFirAnnotationCall(
|
||||
"Deprecated in Java".createConstantOrError(session)
|
||||
}
|
||||
else -> {
|
||||
fillAnnotationArgumentMapping(session, javaTypeParameterStack, lookupTag!!, arguments, mapping)
|
||||
if (lookupTag != null) {
|
||||
fillAnnotationArgumentMapping(session, javaTypeParameterStack, lookupTag, arguments, mapping)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user