// TARGET_BACKEND: JVM_IR // FULL_JDK // JVM_TARGET: 1.8 // MODULE: m1 // FILE: Nls.java import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Documented @Retention(RetentionPolicy.CLASS) @Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE, ElementType.TYPE_USE, ElementType.TYPE, ElementType.PACKAGE}) public @interface Nls { enum Capitalization { NotSpecified, Title, Sentence } Capitalization capitalization() default Capitalization.NotSpecified; } // FILE: Bundle.java import java.util.function.Supplier; public class Bundle { public static Supplier<@Nls String> pointer() { return null; } } // MODULE: m2(m1) // FILE: some.kt import java.util.function.Supplier import Nls.Capitalization.Title object Bar { fun foo(s: Supplier<@Nls(capitalization = Title) String>?) {} } // MODULE: m3(m2, m1) // FILE: box.kt fun box(): String { Bar.foo(Bundle.pointer()) return "OK" }