[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");
|
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
|
@Test
|
||||||
@TestMetadata("javaField.kt")
|
@TestMetadata("javaField.kt")
|
||||||
public void testJavaField() throws Exception {
|
public void testJavaField() throws Exception {
|
||||||
|
|||||||
+6
@@ -94,6 +94,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/implicitLambdaParameter.kt");
|
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
|
@Test
|
||||||
@TestMetadata("javaField.kt")
|
@TestMetadata("javaField.kt")
|
||||||
public void testJavaField() throws Exception {
|
public void testJavaField() throws Exception {
|
||||||
|
|||||||
+6
@@ -94,6 +94,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerat
|
|||||||
runTest("analysis/analysis-api/testData/symbols/symbolByReference/implicitLambdaParameter.kt");
|
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
|
@Test
|
||||||
@TestMetadata("javaField.kt")
|
@TestMetadata("javaField.kt")
|
||||||
public void testJavaField() throws Exception {
|
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");
|
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
|
@Test
|
||||||
@TestMetadata("javaQualifier.kt")
|
@TestMetadata("javaQualifier.kt")
|
||||||
public void testJavaQualifier() throws Exception {
|
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");
|
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")
|
@TestMetadata("javaQualifier.kt")
|
||||||
public void testJavaQualifier() throws Exception {
|
public void testJavaQualifier() throws Exception {
|
||||||
runTest("compiler/fir/analysis-tests/testData/resolve/problems/javaQualifier.kt");
|
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");
|
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
|
@Test
|
||||||
@TestMetadata("javaQualifier.kt")
|
@TestMetadata("javaQualifier.kt")
|
||||||
public void testJavaQualifier() throws Exception {
|
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");
|
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
|
@Test
|
||||||
@TestMetadata("javaQualifier.kt")
|
@TestMetadata("javaQualifier.kt")
|
||||||
public void testJavaQualifier() throws Exception {
|
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.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
|
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
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.expressions.builder.*
|
||||||
import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod
|
|
||||||
import org.jetbrains.kotlin.fir.java.declarations.buildJavaValueParameter
|
import org.jetbrains.kotlin.fir.java.declarations.buildJavaValueParameter
|
||||||
import org.jetbrains.kotlin.fir.references.builder.buildErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.builder.buildErrorNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference
|
import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference
|
||||||
@@ -247,7 +249,9 @@ private fun JavaAnnotation.toFirAnnotationCall(
|
|||||||
"Deprecated in Java".createConstantOrError(session)
|
"Deprecated in Java".createConstantOrError(session)
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
fillAnnotationArgumentMapping(session, javaTypeParameterStack, lookupTag!!, arguments, mapping)
|
if (lookupTag != null) {
|
||||||
|
fillAnnotationArgumentMapping(session, javaTypeParameterStack, lookupTag, arguments, mapping)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user