[FIR] Resolve annotations in when expressions
This commit is contained in:
committed by
teamcityserver
parent
b541721a79
commit
c2389a94fa
+6
@@ -52,6 +52,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
|||||||
runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("annotationOnWhen.kt")
|
||||||
|
public void testAnnotationOnWhen() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/annotationOnWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("annotationProperty.kt")
|
@TestMetadata("annotationProperty.kt")
|
||||||
public void testAnnotationProperty() throws Exception {
|
public void testAnnotationProperty() throws Exception {
|
||||||
|
|||||||
+1
@@ -639,6 +639,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkNotNullCall.argumentList.transformArguments(transformer, ResolutionMode.ContextDependent)
|
checkNotNullCall.argumentList.transformArguments(transformer, ResolutionMode.ContextDependent)
|
||||||
|
checkNotNullCall.transformAnnotations(transformer, ResolutionMode.ContextIndependent)
|
||||||
|
|
||||||
var callCompleted = false
|
var callCompleted = false
|
||||||
val result = components.syntheticCallGenerator.generateCalleeForCheckNotNullCall(checkNotNullCall, resolutionContext)?.let {
|
val result = components.syntheticCallGenerator.generateCalleeForCheckNotNullCall(checkNotNullCall, resolutionContext)?.let {
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
// TARGET_BACKEND: JVM
|
||||||
|
|
||||||
|
enum class SomeEnum {
|
||||||
|
A, B
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("SOMETHING")
|
||||||
|
fun box():String {
|
||||||
|
val someVal = SomeEnum.A
|
||||||
|
@Suppress("UNNECESSARY_NOT_NULL_ASSERTION")
|
||||||
|
when (someVal) {
|
||||||
|
SomeEnum.A -> {}
|
||||||
|
SomeEnum.B -> {}
|
||||||
|
}!! // !! is used to force compile-time exhaustiveness
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
+6
@@ -52,6 +52,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("annotationOnWhen.kt")
|
||||||
|
public void testAnnotationOnWhen() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/annotationOnWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("annotationProperty.kt")
|
@TestMetadata("annotationProperty.kt")
|
||||||
public void testAnnotationProperty() throws Exception {
|
public void testAnnotationProperty() throws Exception {
|
||||||
|
|||||||
+6
@@ -52,6 +52,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("annotationOnWhen.kt")
|
||||||
|
public void testAnnotationOnWhen() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/annotationOnWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("annotationProperty.kt")
|
@TestMetadata("annotationProperty.kt")
|
||||||
public void testAnnotationProperty() throws Exception {
|
public void testAnnotationProperty() throws Exception {
|
||||||
|
|||||||
+5
@@ -57,6 +57,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("annotationOnWhen.kt")
|
||||||
|
public void testAnnotationOnWhen() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/annotationOnWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("annotationProperty.kt")
|
@TestMetadata("annotationProperty.kt")
|
||||||
public void testAnnotationProperty() throws Exception {
|
public void testAnnotationProperty() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/annotations/annotationProperty.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotationProperty.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user