Load special override as HIDDEN in case of signature clash

#KT-10151 Fixed
This commit is contained in:
Denis Zharkov
2015-12-09 14:09:38 +03:00
parent 45c0bc3610
commit 871fe7680b
40 changed files with 445 additions and 51 deletions
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.bindingContextUtil.getDataFlowInfo
import org.jetbrains.kotlin.resolve.calls.smartcasts.SmartCastManager
import org.jetbrains.kotlin.resolve.isAnnotatedAsHidden
import org.jetbrains.kotlin.resolve.isHiddenInResolution
import org.jetbrains.kotlin.resolve.scopes.*
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
import org.jetbrains.kotlin.resolve.scopes.utils.collectDescriptorsFiltered
@@ -71,7 +71,7 @@ class ReferenceVariantsHelper(
): Collection<DeclarationDescriptor> {
var variants: Collection<DeclarationDescriptor>
= getReferenceVariantsNoVisibilityFilter(contextElement, kindFilter, nameFilter, callTypeAndReceiver, useReceiverType)
.filter { !it.isAnnotatedAsHidden() && visibilityFilter(it) }
.filter { !it.isHiddenInResolution() && visibilityFilter(it) }
if (filterOutShadowed) {
ShadowedDeclarationsFilter.create(bindingContext, resolutionFacade, contextElement, callTypeAndReceiver)?.let {
@@ -50,7 +50,7 @@ import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.KtObjectDeclaration
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.isAnnotatedAsHidden
import org.jetbrains.kotlin.resolve.isHiddenInResolution
import org.jetbrains.kotlin.resolve.lazy.ResolveSessionUtils
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.types.KotlinType
@@ -70,7 +70,7 @@ public class KotlinIndicesHelper(
private val project = resolutionFacade.project
private val descriptorFilter: (DeclarationDescriptor) -> Boolean = filter@ {
if (it.isAnnotatedAsHidden()) return@filter false
if (it.isHiddenInResolution()) return@filter false
if (!visibilityFilter(it)) return@filter false
if (applyExcludeSettings && isExcludedFromAutoImport(it)) return@filter false
true
@@ -48,7 +48,7 @@ import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
import org.jetbrains.kotlin.renderer.render
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
import org.jetbrains.kotlin.resolve.calls.model.isReallySuccess
import org.jetbrains.kotlin.resolve.isAnnotatedAsHidden
import org.jetbrains.kotlin.resolve.isHiddenInResolution
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
import org.jetbrains.kotlin.resolve.scopes.utils.collectSyntheticExtensionProperties
import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor
@@ -70,7 +70,7 @@ public class ConflictingExtensionPropertyInspection : AbstractKotlinInspection()
val conflictingExtension = conflictingSyntheticExtension(propertyDescriptor, fileScope) ?: return
// don't report on hidden declarations
if (propertyDescriptor.isAnnotatedAsHidden()) return
if (propertyDescriptor.isHiddenInResolution()) return
val fixes = createFixes(property, conflictingExtension, isOnTheFly)