Migrate type of throws parameter to KClass
Change declaration, testData and codegen parts for `throws`
This commit is contained in:
@@ -46,7 +46,7 @@ import org.jetbrains.kotlin.resolve.annotations.AnnotationsPackage;
|
|||||||
import org.jetbrains.kotlin.resolve.calls.CallResolverUtil;
|
import org.jetbrains.kotlin.resolve.calls.CallResolverUtil;
|
||||||
import org.jetbrains.kotlin.resolve.constants.ArrayValue;
|
import org.jetbrains.kotlin.resolve.constants.ArrayValue;
|
||||||
import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant;
|
import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant;
|
||||||
import org.jetbrains.kotlin.resolve.constants.JavaClassValue;
|
import org.jetbrains.kotlin.resolve.constants.KClassValue;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.DiagnosticsPackage;
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.DiagnosticsPackage;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin;
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOrigin;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterKind;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterKind;
|
||||||
@@ -545,8 +545,8 @@ public class FunctionCodegen {
|
|||||||
new Function<CompileTimeConstant<?>, String>() {
|
new Function<CompileTimeConstant<?>, String>() {
|
||||||
@Override
|
@Override
|
||||||
public String fun(CompileTimeConstant<?> constant) {
|
public String fun(CompileTimeConstant<?> constant) {
|
||||||
if (constant instanceof JavaClassValue) {
|
if (constant instanceof KClassValue) {
|
||||||
JavaClassValue classValue = (JavaClassValue) constant;
|
KClassValue classValue = (KClassValue) constant;
|
||||||
ClassDescriptor classDescriptor = DescriptorUtils.getClassDescriptorForType(classValue.getValue());
|
ClassDescriptor classDescriptor = DescriptorUtils.getClassDescriptorForType(classValue.getValue());
|
||||||
return mapper.mapClass(classDescriptor).getInternalName();
|
return mapper.mapClass(classDescriptor).getInternalName();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ class Test {
|
|||||||
throws()
|
throws()
|
||||||
fun none() {}
|
fun none() {}
|
||||||
|
|
||||||
throws(javaClass<E1>())
|
throws(E1::class)
|
||||||
fun one() {}
|
fun one() {}
|
||||||
|
|
||||||
throws(javaClass<E1>(), javaClass<E2>())
|
throws(E1::class, E2::class)
|
||||||
fun two() {}
|
fun two() {}
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,7 @@ class E1: Exception()
|
|||||||
class E2: Exception()
|
class E2: Exception()
|
||||||
|
|
||||||
class None [throws()]() {}
|
class None [throws()]() {}
|
||||||
class One [throws(javaClass<E1>())]()
|
class One [throws(E1::class)]()
|
||||||
class Two [throws(javaClass<E1>(), javaClass<E2>())]()
|
class Two [throws(E1::class, E2::class)]()
|
||||||
|
|
||||||
class OneWithParam [throws(javaClass<E1>())](a: Int)
|
class OneWithParam [throws(E1::class)](a: Int)
|
||||||
@@ -2,10 +2,10 @@ package test
|
|||||||
|
|
||||||
class E1: Exception()
|
class E1: Exception()
|
||||||
|
|
||||||
throws(javaClass<E1>()) overloads
|
throws(E1::class) overloads
|
||||||
fun one(a: Int = 1) {}
|
fun one(a: Int = 1) {}
|
||||||
|
|
||||||
class One [throws(javaClass<E1>())] (a: Int = 1) {
|
class One [throws(E1::class)] (a: Int = 1) {
|
||||||
throws(javaClass<E1>())
|
throws(E1::class)
|
||||||
fun one(a: Int = 1) {}
|
fun one(a: Int = 1) {}
|
||||||
}
|
}
|
||||||
@@ -7,10 +7,10 @@ trait Trait {
|
|||||||
throws()
|
throws()
|
||||||
fun none()
|
fun none()
|
||||||
|
|
||||||
throws(javaClass<E1>())
|
throws(E1::class)
|
||||||
fun one()
|
fun one()
|
||||||
|
|
||||||
throws(javaClass<E1>(), javaClass<E2>())
|
throws(E1::class, E2::class)
|
||||||
fun two()
|
fun two()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package test
|
|||||||
class E1: Exception()
|
class E1: Exception()
|
||||||
|
|
||||||
trait Base<T> {
|
trait Base<T> {
|
||||||
throws(javaClass<E1>())
|
throws(E1::class)
|
||||||
fun one(t: T) {}
|
fun one(t: T) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ class E2: Exception()
|
|||||||
throws()
|
throws()
|
||||||
fun none() {}
|
fun none() {}
|
||||||
|
|
||||||
throws(javaClass<E1>())
|
throws(E1::class)
|
||||||
fun one() {}
|
fun one() {}
|
||||||
|
|
||||||
throws(javaClass<E1>(), javaClass<E2>())
|
throws(E1::class, E2::class)
|
||||||
fun two() {}
|
fun two() {}
|
||||||
@@ -7,10 +7,10 @@ trait Trait {
|
|||||||
throws()
|
throws()
|
||||||
fun none() {}
|
fun none() {}
|
||||||
|
|
||||||
throws(javaClass<E1>())
|
throws(E1::class)
|
||||||
fun one() {}
|
fun one() {}
|
||||||
|
|
||||||
throws(javaClass<E1>(), javaClass<E2>())
|
throws(E1::class, E2::class)
|
||||||
fun two() {}
|
fun two() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import java.lang.annotation.Retention
|
|||||||
import java.lang.annotation.RetentionPolicy
|
import java.lang.annotation.RetentionPolicy
|
||||||
import kotlin.jvm.internal.unsafe.*
|
import kotlin.jvm.internal.unsafe.*
|
||||||
import kotlin.jvm.internal.Intrinsic
|
import kotlin.jvm.internal.Intrinsic
|
||||||
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This annotation indicates what exceptions should be declared by a function when compiled to a JVM method.
|
* This annotation indicates what exceptions should be declared by a function when compiled to a JVM method.
|
||||||
@@ -11,7 +12,7 @@ import kotlin.jvm.internal.Intrinsic
|
|||||||
* Example:
|
* Example:
|
||||||
*
|
*
|
||||||
* ```
|
* ```
|
||||||
* throws(javaClass<IOException>())
|
* throws(IOException::class)
|
||||||
* fun readFile(name: String): String {...}
|
* fun readFile(name: String): String {...}
|
||||||
* ```
|
* ```
|
||||||
*
|
*
|
||||||
@@ -24,7 +25,7 @@ import kotlin.jvm.internal.Intrinsic
|
|||||||
* @property exceptionClasses the list of checked exception classes that may be thrown by the function.
|
* @property exceptionClasses the list of checked exception classes that may be thrown by the function.
|
||||||
*/
|
*/
|
||||||
Retention(RetentionPolicy.SOURCE)
|
Retention(RetentionPolicy.SOURCE)
|
||||||
public annotation class throws(public vararg val exceptionClasses: Class<out Throwable>)
|
public annotation class throws(public vararg val exceptionClasses: KClass<out Throwable>)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the runtime Java class of this object.
|
* Returns the runtime Java class of this object.
|
||||||
|
|||||||
Reference in New Issue
Block a user