[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");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationOnWhen.kt")
|
||||
public void testAnnotationOnWhen() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationOnWhen.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationProperty.kt")
|
||||
public void testAnnotationProperty() throws Exception {
|
||||
|
||||
+1
@@ -639,6 +639,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform
|
||||
}
|
||||
|
||||
checkNotNullCall.argumentList.transformArguments(transformer, ResolutionMode.ContextDependent)
|
||||
checkNotNullCall.transformAnnotations(transformer, ResolutionMode.ContextIndependent)
|
||||
|
||||
var callCompleted = false
|
||||
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");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationOnWhen.kt")
|
||||
public void testAnnotationOnWhen() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationOnWhen.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotationProperty.kt")
|
||||
public void testAnnotationProperty() throws Exception {
|
||||
|
||||
+6
@@ -52,6 +52,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
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
|
||||
@TestMetadata("annotationProperty.kt")
|
||||
public void testAnnotationProperty() throws Exception {
|
||||
|
||||
+5
@@ -57,6 +57,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
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")
|
||||
public void testAnnotationProperty() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationProperty.kt");
|
||||
|
||||
Reference in New Issue
Block a user