Add tests for KT-35468

^KT-35468 Fixed
This commit is contained in:
Denis Zharkov
2020-04-10 16:06:00 +03:00
committed by Ilya Gorbunov
parent 9c2e149b5b
commit c6ae423816
11 changed files with 507 additions and 0 deletions
@@ -225,6 +225,11 @@ public class FirOldFrontendDiagnosticsTestWithStdlibGenerated extends AbstractFi
runTest("compiler/testData/diagnostics/testsWithStdLib/annotations/targetuse.kt");
}
@TestMetadata("throws.kt")
public void testThrows() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/annotations/throws.kt");
}
@TestMetadata("TransientOnDelegate.kt")
public void testTransientOnDelegate() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/annotations/TransientOnDelegate.kt");
@@ -0,0 +1,16 @@
package test;
class JavaClass {
void testMethod() {
try {
KotlinThrowsKt.kt();
}
catch (E1 e) {}
try {
KotlinThrowsKt.ktJvm();
}
catch (E2 e) {}
}
}
@@ -0,0 +1,10 @@
package test
class E1 : Exception()
class E2 : Exception()
@kotlin.Throws(E1::class)
fun kt() {}
@kotlin.jvm.Throws(E2::class)
fun ktJvm() {}
@@ -0,0 +1,41 @@
package test
public fun kt(): kotlin.Unit
public fun ktJvm(): kotlin.Unit
public final class E1 : kotlin.Exception /* = java.lang.Exception */ {
public constructor E1()
public open /*fake_override*/ val cause: kotlin.Throwable?
public open /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun addSuppressed(/*0*/ kotlin.Throwable!): kotlin.Unit
public open /*fake_override*/ fun fillInStackTrace(): kotlin.Throwable!
public open /*fake_override*/ fun getLocalizedMessage(): kotlin.String!
public open /*fake_override*/ fun getStackTrace(): kotlin.Array<(out) java.lang.StackTraceElement!>!
public final /*fake_override*/ fun getSuppressed(): kotlin.Array<(out) kotlin.Throwable!>!
public open /*fake_override*/ fun initCause(/*0*/ kotlin.Throwable!): kotlin.Throwable!
public open /*fake_override*/ fun printStackTrace(): kotlin.Unit
public open /*fake_override*/ fun printStackTrace(/*0*/ java.io.PrintStream!): kotlin.Unit
public open /*fake_override*/ fun printStackTrace(/*0*/ java.io.PrintWriter!): kotlin.Unit
public open /*fake_override*/ fun setStackTrace(/*0*/ kotlin.Array<(out) java.lang.StackTraceElement!>!): kotlin.Unit
}
public final class E2 : kotlin.Exception /* = java.lang.Exception */ {
public constructor E2()
public open /*fake_override*/ val cause: kotlin.Throwable?
public open /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun addSuppressed(/*0*/ kotlin.Throwable!): kotlin.Unit
public open /*fake_override*/ fun fillInStackTrace(): kotlin.Throwable!
public open /*fake_override*/ fun getLocalizedMessage(): kotlin.String!
public open /*fake_override*/ fun getStackTrace(): kotlin.Array<(out) java.lang.StackTraceElement!>!
public final /*fake_override*/ fun getSuppressed(): kotlin.Array<(out) kotlin.Throwable!>!
public open /*fake_override*/ fun initCause(/*0*/ kotlin.Throwable!): kotlin.Throwable!
public open /*fake_override*/ fun printStackTrace(): kotlin.Unit
public open /*fake_override*/ fun printStackTrace(/*0*/ java.io.PrintStream!): kotlin.Unit
public open /*fake_override*/ fun printStackTrace(/*0*/ java.io.PrintWriter!): kotlin.Unit
public open /*fake_override*/ fun setStackTrace(/*0*/ kotlin.Array<(out) java.lang.StackTraceElement!>!): kotlin.Unit
}
public/*package*/ open class JavaClass {
public/*package*/ constructor JavaClass()
public/*package*/ open fun testMethod(): kotlin.Unit
}
@@ -0,0 +1,164 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: main1.kt
package abc1
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main2.kt
package abc2
import kotlin.jvm.Throws
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main3.kt
package abc3
import kotlin.Throws
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main4.kt
package abc4
import kotlin.Throws
import kotlin.jvm.Throws
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main5.kt
package abc5
import kotlin.jvm.*
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main6.kt
package abc6
import kotlin.*
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main7.kt
package abc7
import kotlin.*
import kotlin.jvm.*
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main8.kt
package abc8
import kotlin.*
import kotlin.jvm.Throws
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main9.kt
package abc9
import kotlin.jvm.*
import kotlin.Throws
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
@@ -0,0 +1,164 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: main1.kt
package abc1
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main2.kt
package abc2
import kotlin.jvm.Throws
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main3.kt
package abc3
import kotlin.Throws
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main4.kt
package abc4
import kotlin.<!CONFLICTING_IMPORT!>Throws<!>
import kotlin.jvm.<!CONFLICTING_IMPORT!>Throws<!>
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main5.kt
package abc5
import kotlin.jvm.*
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main6.kt
package abc6
import kotlin.*
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main7.kt
package abc7
import kotlin.*
import kotlin.jvm.*
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main8.kt
package abc8
import kotlin.*
import kotlin.jvm.Throws
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
// FILE: main9.kt
package abc9
import kotlin.jvm.*
import kotlin.Throws
@Throws(Exception::class)
fun foo1() {}
@kotlin.Throws(Exception::class)
fun foo2() {}
@kotlin.jvm.Throws(Exception::class)
fun foo3() {}
fun foo5(x: Throws) {}
fun foo6(x: kotlin.Throws) {}
fun foo7(x: kotlin.jvm.Throws) {}
@@ -0,0 +1,82 @@
package
package abc1 {
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo1(): kotlin.Unit
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo2(): kotlin.Unit
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo3(): kotlin.Unit
public fun foo5(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo7(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
}
package abc2 {
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo1(): kotlin.Unit
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo2(): kotlin.Unit
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo3(): kotlin.Unit
public fun foo5(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo7(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
}
package abc3 {
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo1(): kotlin.Unit
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo2(): kotlin.Unit
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo3(): kotlin.Unit
public fun foo5(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo7(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
}
package abc4 {
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo1(): kotlin.Unit
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo2(): kotlin.Unit
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo3(): kotlin.Unit
public fun foo5(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo7(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
}
package abc5 {
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo1(): kotlin.Unit
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo2(): kotlin.Unit
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo3(): kotlin.Unit
public fun foo5(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo7(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
}
package abc6 {
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo1(): kotlin.Unit
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo2(): kotlin.Unit
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo3(): kotlin.Unit
public fun foo5(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo7(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
}
package abc7 {
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo1(): kotlin.Unit
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo2(): kotlin.Unit
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo3(): kotlin.Unit
public fun foo5(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo7(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
}
package abc8 {
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo1(): kotlin.Unit
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo2(): kotlin.Unit
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo3(): kotlin.Unit
public fun foo5(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo7(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
}
package abc9 {
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo1(): kotlin.Unit
@kotlin.Throws /* = kotlin.jvm.Throws */(exceptionClasses = {java.lang.Exception::class}) public fun foo2(): kotlin.Unit
@kotlin.jvm.Throws(exceptionClasses = {java.lang.Exception::class}) public fun foo3(): kotlin.Unit
public fun foo5(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo6(/*0*/ x: kotlin.Throws /* = kotlin.jvm.Throws */): kotlin.Unit
public fun foo7(/*0*/ x: kotlin.jvm.Throws): kotlin.Unit
}
@@ -226,6 +226,11 @@ public class DiagnosticsTestWithStdLibGenerated extends AbstractDiagnosticsTestW
runTest("compiler/testData/diagnostics/testsWithStdLib/annotations/targetuse.kt");
}
@TestMetadata("throws.kt")
public void testThrows() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/annotations/throws.kt");
}
@TestMetadata("TransientOnDelegate.kt")
public void testTransientOnDelegate() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/annotations/TransientOnDelegate.kt");
@@ -226,6 +226,11 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno
runTest("compiler/testData/diagnostics/testsWithStdLib/annotations/targetuse.kt");
}
@TestMetadata("throws.kt")
public void testThrows() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/annotations/throws.kt");
}
@TestMetadata("TransientOnDelegate.kt")
public void testTransientOnDelegate() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/annotations/TransientOnDelegate.kt");
@@ -479,6 +479,11 @@ public class CompileJavaAgainstKotlinTestGenerated extends AbstractCompileJavaAg
runTest("compiler/testData/compileJavaAgainstKotlin/method/throws/GenericSubstitution.kt");
}
@TestMetadata("KotlinThrows.kt")
public void testKotlinThrows() throws Exception {
runTest("compiler/testData/compileJavaAgainstKotlin/method/throws/KotlinThrows.kt");
}
@TestMetadata("TopLevel.kt")
public void testTopLevel() throws Exception {
runTest("compiler/testData/compileJavaAgainstKotlin/method/throws/TopLevel.kt");
@@ -1137,6 +1142,11 @@ public class CompileJavaAgainstKotlinTestGenerated extends AbstractCompileJavaAg
runTest("compiler/testData/compileJavaAgainstKotlin/method/throws/GenericSubstitution.kt");
}
@TestMetadata("KotlinThrows.kt")
public void testKotlinThrows() throws Exception {
runTest("compiler/testData/compileJavaAgainstKotlin/method/throws/KotlinThrows.kt");
}
@TestMetadata("TopLevel.kt")
public void testTopLevel() throws Exception {
runTest("compiler/testData/compileJavaAgainstKotlin/method/throws/TopLevel.kt");
@@ -477,6 +477,11 @@ public class IrCompileJavaAgainstKotlinTestGenerated extends AbstractIrCompileJa
runTest("compiler/testData/compileJavaAgainstKotlin/method/throws/GenericSubstitution.kt");
}
@TestMetadata("KotlinThrows.kt")
public void testKotlinThrows() throws Exception {
runTest("compiler/testData/compileJavaAgainstKotlin/method/throws/KotlinThrows.kt");
}
@TestMetadata("TopLevel.kt")
public void testTopLevel() throws Exception {
runTest("compiler/testData/compileJavaAgainstKotlin/method/throws/TopLevel.kt");