Workaround an inliner problem upon which the compiler code itself stumbled

^KT-35856 Fixed
This commit is contained in:
Victor Petukhov
2020-01-10 12:04:37 +03:00
parent 5b8ab76613
commit 5917591205
7 changed files with 63 additions and 3 deletions
@@ -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");
@@ -418,8 +418,8 @@ inline fun <T> 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 }
fun KtFile.safeScript() = runReadAction { this.script }
@@ -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
@@ -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
@@ -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
}
@@ -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");
@@ -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");