Make isFromJava check work for SAM adapter extension descriptors (KT-21538)

Consider all callable descriptor in JavaClassDescriptor to be from Java.

This is used to check if smart step into should be intercepted by Kotlin
handler or delegated to Java.

 #KT-21538 Fixed
This commit is contained in:
Nikolay Krasko
2017-12-12 18:47:59 +03:00
parent 26413acf33
commit d6cface66f
5 changed files with 38 additions and 3 deletions
@@ -343,10 +343,10 @@ fun ClassDescriptor.hasRealKotlinSuperClassWithOverrideOf(
return false
}
// Util methods
val CallableMemberDescriptor.isFromJava: Boolean
get() = propertyIfAccessor.let { descriptor ->
(descriptor as? JavaCallableMemberDescriptor)?.containingDeclaration is JavaClassDescriptor
get() {
val descriptor = propertyIfAccessor
return descriptor.containingDeclaration is JavaClassDescriptor
}
fun CallableMemberDescriptor.isFromJavaOrBuiltins() = isFromJava || KotlinBuiltIns.isBuiltIn(this)