Pass LanguageVersionSettings instance to isHiddenInResolution

Unused at the moment, will be used later to check if the API version prohibits
the usage of the element
This commit is contained in:
Alexander Udalov
2016-09-19 14:35:02 +03:00
parent 59b29cf00d
commit 6e0e8c6dc3
7 changed files with 32 additions and 18 deletions
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.resolve.calls.tower
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.CallableDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.VariableDescriptor
@@ -61,9 +62,9 @@ class NewResolutionOldInference(
private val resolutionResultsHandler: ResolutionResultsHandler,
private val dynamicCallableDescriptors: DynamicCallableDescriptors,
private val syntheticScopes: SyntheticScopes,
private val syntheticConstructorsProvider: SyntheticConstructorsProvider
private val syntheticConstructorsProvider: SyntheticConstructorsProvider,
private val languageVersionSettings: LanguageVersionSettings
) {
sealed class ResolutionKind<D : CallableDescriptor> {
abstract internal fun createTowerProcessor(
outer: NewResolutionOldInference,
@@ -178,7 +179,7 @@ class NewResolutionOldInference(
val candidateTrace = TemporaryBindingTrace.create(basicCallContext.trace, "Context for resolve candidate")
val resolvedCall = ResolvedCallImpl.create(candidate, candidateTrace, tracing, basicCallContext.dataFlowInfoForArguments)
if (candidate.descriptor.isHiddenInResolution(basicCallContext.isSuperCall)) {
if (candidate.descriptor.isHiddenInResolution(languageVersionSettings, basicCallContext.isSuperCall)) {
return@mapNotNull MyCandidate(ResolutionCandidateStatus(listOf(HiddenDescriptor)), resolvedCall)
}
@@ -334,7 +335,7 @@ class NewResolutionOldInference(
return MyCandidate(ResolutionCandidateStatus(listOf(ExtensionWithStaticTypeWithDynamicReceiver)), candidateCall)
}
if (towerCandidate.descriptor.isHiddenInResolution(basicCallContext.isSuperCall)) {
if (towerCandidate.descriptor.isHiddenInResolution(languageVersionSettings, basicCallContext.isSuperCall)) {
return MyCandidate(ResolutionCandidateStatus(listOf(HiddenDescriptor)), candidateCall)
}
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.resolve
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
@@ -188,7 +189,7 @@ fun DeclarationDescriptor.isDeprecatedHidden(): Boolean {
}
@JvmOverloads
fun DeclarationDescriptor.isHiddenInResolution(isSuperCall: Boolean = false): Boolean {
fun DeclarationDescriptor.isHiddenInResolution(languageVersionSettings: LanguageVersionSettings, isSuperCall: Boolean = false): Boolean {
if (this is FunctionDescriptor) {
if (isHiddenToOvercomeSignatureClash) return true
if (isHiddenForResolutionEverywhereBesideSupercalls && !isSuperCall) return true