Add quickfix for usages of javaClass<T>() in annotations loaded from Java
This commit is contained in:
+3
-9
@@ -33,6 +33,8 @@ import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedValueArgument
|
||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.ErrorsJvm
|
||||
import org.jetbrains.kotlin.types.JetType
|
||||
import org.jetbrains.kotlin.types.typeUtil.isArrayOfJavaLangClass
|
||||
import org.jetbrains.kotlin.types.typeUtil.isJavaLangClass
|
||||
|
||||
public class JavaAnnotationCallChecker : CallChecker {
|
||||
override fun <F : CallableDescriptor?> check(resolvedCall: ResolvedCall<F>, context: BasicCallResolutionContext) {
|
||||
@@ -53,15 +55,7 @@ public class JavaAnnotationCallChecker : CallChecker {
|
||||
}
|
||||
}
|
||||
|
||||
private fun JetType.isJavaLangClassOrArray() = isJavaLangClass() ||
|
||||
(KotlinBuiltIns.isArray(this) && getArguments().first().getType().isJavaLangClass())
|
||||
|
||||
private fun JetType.isJavaLangClass(): Boolean {
|
||||
val classifier = getConstructor().getDeclarationDescriptor()
|
||||
|
||||
if (classifier !is ClassDescriptor) return false
|
||||
return DescriptorUtils.isJavaLangClass(classifier)
|
||||
}
|
||||
private fun JetType.isJavaLangClassOrArray() = isJavaLangClass() || isArrayOfJavaLangClass()
|
||||
|
||||
private fun reportErrorsOnPositionedArguments(
|
||||
resolvedCall: ResolvedCall<*>,
|
||||
|
||||
Reference in New Issue
Block a user