JVM IR: fix isMarkedNullable for nullability-flexible types
Since nullability-flexible types in IR are represented by an annotation on an IrSimpleType, not a special instance, the common implementation of `KotlinTypeMarker.isMarkedNullable` in `TypeSystemContext` doesn't work. This method is used for example to generate `typeOf` in JVM IR, in `TypeSystemCommonBackendContext.generateTypeOf`, and this issue led to a difference in behavior of `typeOf` for nullability-flexible types. #KT-44726 Fixed
This commit is contained in:
+6
@@ -35417,6 +35417,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/reflection/typeOf/classes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("flexibleType.kt")
|
||||
public void testFlexibleType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/reflection/typeOf/flexibleType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inlineClasses.kt")
|
||||
public void testInlineClasses() throws Exception {
|
||||
|
||||
+6
@@ -35417,6 +35417,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/reflection/typeOf/classes.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("flexibleType.kt")
|
||||
public void testFlexibleType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/reflection/typeOf/flexibleType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inlineClasses.kt")
|
||||
public void testInlineClasses() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user