@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.resolve.scopes.utils.parentsWithSelf
38
38
import org.jetbrains.kotlin.types.KotlinType
39
39
import org.jetbrains.kotlin.types.TypeUtils
40
40
import org.jetbrains.kotlin.types.typeUtil.supertypes
41
+ import org.jetbrains.kotlin.types.typeUtil.replaceArgumentsWithStarProjections
41
42
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
42
43
import java.util.concurrent.TimeUnit
43
44
@@ -431,22 +432,14 @@ private fun isParentClass(declaration: DeclarationDescriptor): ClassDescriptor?
431
432
else null
432
433
433
434
private fun isExtensionFor (type : KotlinType , extensionFunction : CallableDescriptor ): Boolean {
434
- val receiverType = extensionFunction.extensionReceiverParameter?.type ? : return false
435
+ val receiverType = extensionFunction.extensionReceiverParameter?.type?.replaceArgumentsWithStarProjections() ? : return false
435
436
return KotlinTypeChecker .DEFAULT .isSubtypeOf(type, receiverType)
436
437
|| (TypeUtils .getTypeParameterDescriptorOrNull(receiverType)?.isGenericExtensionFor(type) ? : false )
437
- || (TypeUtils .getClassDescriptor(receiverType)?.isClassExtensionFor(type) ? : false )
438
438
}
439
439
440
440
private fun TypeParameterDescriptor.isGenericExtensionFor (type : KotlinType ): Boolean =
441
441
upperBounds.all { KotlinTypeChecker .DEFAULT .isSubtypeOf(type, it) }
442
442
443
- // Currently only needed for extensions such as e.g. Collection<T> applied to List<SomeConcreteType>
444
- // Direct subtype relationships will be detected by KotlinTypeChecker.isSubtypeOf
445
- private fun ClassDescriptor.isClassExtensionFor (type : KotlinType ): Boolean {
446
- fun matchesFqName (t : KotlinType ) = TypeUtils .getClassDescriptor(t)?.fqNameSafe == fqNameSafe
447
- return matchesFqName(type) || type.supertypes().any(::matchesFqName)
448
- }
449
-
450
443
private val loggedHidden = CacheBuilder .newBuilder().expireAfterWrite(1 , TimeUnit .MINUTES ).build<Pair <Name , Name >, Unit > ()
451
444
452
445
private fun logHidden (target : DeclarationDescriptor , from : DeclarationDescriptor ) {
0 commit comments