Move/Copy: Fix 'protected' conflict reporting for references in super type entries

#KT-22678 Fixed
This commit is contained in:
Alexey Sedunov
2018-02-19 17:18:39 +03:00
parent 27f5ddcf83
commit 883558a4c7
19 changed files with 67 additions and 2 deletions
@@ -392,8 +392,12 @@ class MoveConflictChecker(
val targetVisibility = visibility.normalize()
if (targetVisibility == Visibilities.PUBLIC) return true
val referrer = ref.element.getStrictParentOfType<KtNamedDeclaration>()
val referrerDescriptor = referrer?.unsafeResolveToDescriptor() ?: return true
val refElement = ref.element
val referrer = refElement.getStrictParentOfType<KtNamedDeclaration>()
var referrerDescriptor = referrer?.resolveToDescriptorIfAny() ?: return true
if (referrerDescriptor is ClassDescriptor && refElement.getParentOfTypeAndBranch<KtSuperTypeListEntry> { typeReference } != null) {
referrerDescriptor.unsubstitutedPrimaryConstructor?.let { referrerDescriptor = it }
}
if (!isVisibleIn(referrerDescriptor)) return true