diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java index 67a6c4669ed..b56de34cdd6 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java @@ -970,6 +970,11 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirOldFronte runTest("compiler/testData/diagnostics/tests/annotations/javaUnrepeatable.kt"); } + @TestMetadata("kotlinAnnotationOnJavaInterface.kt") + public void testKotlinAnnotationOnJavaInterface() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.kt"); + } + @TestMetadata("kt1860-negative.kt") public void testKt1860_negative() throws Exception { runTest("compiler/testData/diagnostics/tests/annotations/kt1860-negative.kt"); diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightUtils.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightUtils.kt index 3253b70738c..b1d5353ef53 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightUtils.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightUtils.kt @@ -418,8 +418,8 @@ inline fun runReadAction(crossinline runnable: () -> T): T { return ApplicationManager.getApplication().runReadAction(Computable { runnable() }) } -inline fun KtClassOrObject.safeIsLocal(): Boolean = runReadAction { this.isLocal } +fun KtClassOrObject.safeIsLocal(): Boolean = runReadAction { this.isLocal } -inline fun KtFile.safeIsScript() = runReadAction { this.isScript() } +fun KtFile.safeIsScript() = runReadAction { this.isScript() } -inline fun KtFile.safeScript() = runReadAction { this.script } \ No newline at end of file +fun KtFile.safeScript() = runReadAction { this.script } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.fir.kt b/compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.fir.kt new file mode 100644 index 00000000000..0e0be7ef09d --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.fir.kt @@ -0,0 +1,12 @@ +// Issue: KT-35856 + +// FILE: Bar.java +@Anno +public interface Bar {} + +// FILE: Foo.kt +@Target(AnnotationTarget.FILE, AnnotationTarget.CLASS) +@Retention(AnnotationRetention.BINARY) +annotation class Anno + +class Foo : Bar diff --git a/compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.kt b/compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.kt new file mode 100644 index 00000000000..0e0be7ef09d --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.kt @@ -0,0 +1,12 @@ +// Issue: KT-35856 + +// FILE: Bar.java +@Anno +public interface Bar {} + +// FILE: Foo.kt +@Target(AnnotationTarget.FILE, AnnotationTarget.CLASS) +@Retention(AnnotationRetention.BINARY) +annotation class Anno + +class Foo : Bar diff --git a/compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.txt b/compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.txt new file mode 100644 index 00000000000..2751e4c13ef --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.txt @@ -0,0 +1,21 @@ +package + +@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.FILE, AnnotationTarget.CLASS}) @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) public final annotation class Anno : kotlin.Annotation { + public constructor Anno() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +@Anno public interface Bar { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final class Foo : Bar { + public constructor Foo() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index 8f5eafcbf65..2af94d7c859 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -977,6 +977,11 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { runTest("compiler/testData/diagnostics/tests/annotations/javaUnrepeatable.kt"); } + @TestMetadata("kotlinAnnotationOnJavaInterface.kt") + public void testKotlinAnnotationOnJavaInterface() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.kt"); + } + @TestMetadata("kt1860-negative.kt") public void testKt1860_negative() throws Exception { runTest("compiler/testData/diagnostics/tests/annotations/kt1860-negative.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java index a0cdfbf5aa1..1b12c5f58e9 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java @@ -972,6 +972,11 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing runTest("compiler/testData/diagnostics/tests/annotations/javaUnrepeatable.kt"); } + @TestMetadata("kotlinAnnotationOnJavaInterface.kt") + public void testKotlinAnnotationOnJavaInterface() throws Exception { + runTest("compiler/testData/diagnostics/tests/annotations/kotlinAnnotationOnJavaInterface.kt"); + } + @TestMetadata("kt1860-negative.kt") public void testKt1860_negative() throws Exception { runTest("compiler/testData/diagnostics/tests/annotations/kt1860-negative.kt");