diff --git a/compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/samAdapterForJavaInterfaceWithNullability.kt b/compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/samAdapterForJavaInterfaceWithNullability.kt new file mode 100644 index 00000000000..97199cbce74 --- /dev/null +++ b/compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/samAdapterForJavaInterfaceWithNullability.kt @@ -0,0 +1,25 @@ +// FILE: samAdapterForJavaInterfaceWithNullability.kt +fun testNullable(s: String) = JNullable { s } +fun testNotNull(s: String) = JNotNull { s } +fun testNoAnnotation(s: String) = JNoAnnotation { s } + +// FILE: JNullable.java +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public interface JNullable { + @Nullable String getNullableString(); +} + +// FILE: JNotNull.java +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public interface JNotNull { + @NotNull String getNullableString(); +} + +// FILE: JNoAnnotation.java +public interface JNoAnnotation { + String getString(); +} \ No newline at end of file diff --git a/compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/samAdapterForJavaInterfaceWithNullability.txt b/compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/samAdapterForJavaInterfaceWithNullability.txt new file mode 100644 index 00000000000..6e13d1f0c1f --- /dev/null +++ b/compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/samAdapterForJavaInterfaceWithNullability.txt @@ -0,0 +1,40 @@ +@kotlin.Metadata +final class SamAdapterForJavaInterfaceWithNullabilityKt$testNoAnnotation$1 { + // source: 'samAdapterForJavaInterfaceWithNullability.kt' + enclosing method SamAdapterForJavaInterfaceWithNullabilityKt.testNoAnnotation(Ljava/lang/String;)LJNoAnnotation; + synthetic final field $s: java.lang.String + inner (anonymous) class SamAdapterForJavaInterfaceWithNullabilityKt$testNoAnnotation$1 + method (p0: java.lang.String): void + public final method getString(): java.lang.String +} + +@kotlin.Metadata +final class SamAdapterForJavaInterfaceWithNullabilityKt$testNotNull$1 { + // source: 'samAdapterForJavaInterfaceWithNullability.kt' + enclosing method SamAdapterForJavaInterfaceWithNullabilityKt.testNotNull(Ljava/lang/String;)LJNotNull; + synthetic final field $s: java.lang.String + inner (anonymous) class SamAdapterForJavaInterfaceWithNullabilityKt$testNotNull$1 + method (p0: java.lang.String): void + public final @org.jetbrains.annotations.NotNull method getNullableString(): java.lang.String +} + +@kotlin.Metadata +final class SamAdapterForJavaInterfaceWithNullabilityKt$testNullable$1 { + // source: 'samAdapterForJavaInterfaceWithNullability.kt' + enclosing method SamAdapterForJavaInterfaceWithNullabilityKt.testNullable(Ljava/lang/String;)LJNullable; + synthetic final field $s: java.lang.String + inner (anonymous) class SamAdapterForJavaInterfaceWithNullabilityKt$testNullable$1 + method (p0: java.lang.String): void + public final @org.jetbrains.annotations.Nullable method getNullableString(): java.lang.String +} + +@kotlin.Metadata +public final class SamAdapterForJavaInterfaceWithNullabilityKt { + // source: 'samAdapterForJavaInterfaceWithNullability.kt' + inner (anonymous) class SamAdapterForJavaInterfaceWithNullabilityKt$testNoAnnotation$1 + inner (anonymous) class SamAdapterForJavaInterfaceWithNullabilityKt$testNotNull$1 + inner (anonymous) class SamAdapterForJavaInterfaceWithNullabilityKt$testNullable$1 + public final static @org.jetbrains.annotations.NotNull method testNoAnnotation(@org.jetbrains.annotations.NotNull p0: java.lang.String): JNoAnnotation + public final static @org.jetbrains.annotations.NotNull method testNotNull(@org.jetbrains.annotations.NotNull p0: java.lang.String): JNotNull + public final static @org.jetbrains.annotations.NotNull method testNullable(@org.jetbrains.annotations.NotNull p0: java.lang.String): JNullable +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java index cd83cfdd569..610b8ddf051 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java @@ -695,6 +695,11 @@ public class BytecodeListingTestGenerated extends AbstractBytecodeListingTest { public void testPlatformTypes() throws Exception { runTest("compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/platformTypes.kt"); } + + @TestMetadata("samAdapterForJavaInterfaceWithNullability.kt") + public void testSamAdapterForJavaInterfaceWithNullability() throws Exception { + runTest("compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/samAdapterForJavaInterfaceWithNullability.kt"); + } } @TestMetadata("compiler/testData/codegen/bytecodeListing/specialBridges") diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java index 5398e502481..3798739e1b3 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java @@ -665,6 +665,11 @@ public class IrBytecodeListingTestGenerated extends AbstractIrBytecodeListingTes public void testPlatformTypes() throws Exception { runTest("compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/platformTypes.kt"); } + + @TestMetadata("samAdapterForJavaInterfaceWithNullability.kt") + public void testSamAdapterForJavaInterfaceWithNullability() throws Exception { + runTest("compiler/testData/codegen/bytecodeListing/nullabilityAnnotations/samAdapterForJavaInterfaceWithNullability.kt"); + } } @TestMetadata("compiler/testData/codegen/bytecodeListing/specialBridges")