diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 00000000000..797acea53eb --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index 79a42a2d187..0ba0482d6e6 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -167,9 +167,6 @@ class FirCallResolver( name, explicitReceiver, argumentList, - isPotentialQualifierPart = qualifiedAccess !is FirFunctionCall && - qualifiedAccess.explicitReceiver is FirResolvedQualifier && - qualifiedResolver.isPotentialQualifierPartPosition(), isImplicitInvoke = qualifiedAccess is FirImplicitInvokeCall, typeArguments, session, @@ -450,7 +447,6 @@ class FirCallResolver( name, explicitReceiver = null, delegatedConstructorCall.argumentList, - isPotentialQualifierPart = false, isImplicitInvoke = false, typeArguments = typeArguments, session, @@ -499,7 +495,6 @@ class FirCallResolver( name = reference.name, explicitReceiver = null, annotation.argumentList, - isPotentialQualifierPart = false, isImplicitInvoke = false, typeArguments = emptyList(), session, @@ -610,7 +605,6 @@ class FirCallResolver( callableReferenceAccess.calleeReference.name, callableReferenceAccess.explicitReceiver, FirEmptyArgumentList, - isPotentialQualifierPart = false, isImplicitInvoke = false, emptyList(), session, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt index e091a7a6968..72a734c7c2d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt @@ -43,7 +43,6 @@ data class CallInfo( val explicitReceiver: FirExpression?, val argumentList: FirArgumentList, - val isPotentialQualifierPart: Boolean, val isImplicitInvoke: Boolean, val typeArguments: List, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolveTask.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolveTask.kt index 1c637d8069b..532da362698 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolveTask.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirTowerResolveTask.kt @@ -162,16 +162,8 @@ internal open class FirTowerResolveTask( ) { val qualifierReceiver = createQualifierReceiver(resolvedQualifier, session, components.scopeSession) - when { - info.isPotentialQualifierPart -> { - processClassifierScope(info, qualifierReceiver, prioritized = true) - processQualifierScopes(info, qualifierReceiver) - } - else -> { - processQualifierScopes(info, qualifierReceiver) - processClassifierScope(info, qualifierReceiver, prioritized = false) - } - } + processQualifierScopes(info, qualifierReceiver) + processClassifierScope(info, qualifierReceiver) if (resolvedQualifier.symbol != null) { val typeRef = resolvedQualifier.typeRef @@ -208,7 +200,7 @@ internal open class FirTowerResolveTask( } private suspend fun processClassifierScope( - info: CallInfo, qualifierReceiver: QualifierReceiver?, prioritized: Boolean + info: CallInfo, qualifierReceiver: QualifierReceiver? ) { if (qualifierReceiver == null) return if (info.callKind != CallKind.CallableReference && @@ -216,10 +208,9 @@ internal open class FirTowerResolveTask( qualifierReceiver.classSymbol != qualifierReceiver.originalSymbol ) return val scope = qualifierReceiver.classifierScope() ?: return - val group = if (prioritized) TowerGroup.ClassifierPrioritized else TowerGroup.Classifier processLevel( scope.toScopeTowerLevel(includeInnerConstructors = false), info, - group + TowerGroup.Classifier ) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerGroup.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerGroup.kt index cd7df595927..85ff7e75d36 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerGroup.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/TowerGroup.kt @@ -28,23 +28,21 @@ sealed class TowerGroupKind(val index: Byte) : Comparable { object Start : TowerGroupKind(0b0) - object ClassifierPrioritized : TowerGroupKind(1) + object Qualifier : TowerGroupKind(1) - object Qualifier : TowerGroupKind(2) + object Classifier : TowerGroupKind(2) - object Classifier : TowerGroupKind(3) + class TopPrioritized(depth: Int) : WithDepth(3, depth) - class TopPrioritized(depth: Int) : WithDepth(4, depth) + object Member : TowerGroupKind(4) - object Member : TowerGroupKind(5) + class Local(depth: Int) : WithDepth(5, depth) - class Local(depth: Int) : WithDepth(6, depth) + class ImplicitOrNonLocal(depth: Int, val kindForDebugSake: String) : WithDepth(6, depth) - class ImplicitOrNonLocal(depth: Int, val kindForDebugSake: String) : WithDepth(7, depth) + object InvokeExtension : TowerGroupKind(7) - object InvokeExtension : TowerGroupKind(8) - - object QualifierValue : TowerGroupKind(9) + object QualifierValue : TowerGroupKind(8) object Last : TowerGroupKind(0b1111) @@ -151,8 +149,6 @@ private constructor( val Start = kindOf(TowerGroupKind.Start) - val ClassifierPrioritized = kindOf(TowerGroupKind.ClassifierPrioritized) - val Qualifier = kindOf(TowerGroupKind.Qualifier) val Classifier = kindOf(TowerGroupKind.Classifier) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt index 22a4fb19f88..bb080c20050 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSyntheticCallGenerator.kt @@ -210,7 +210,6 @@ class FirSyntheticCallGenerator( name = name, explicitReceiver = null, argumentList = argumentList, - isPotentialQualifierPart = false, isImplicitInvoke = false, typeArguments = emptyList(), session = session, diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/resolver/candidateInfoProviders.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/resolver/candidateInfoProviders.kt index 9767fd0596d..7372e7fddfa 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/resolver/candidateInfoProviders.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/resolver/candidateInfoProviders.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.resolve.calls.* import org.jetbrains.kotlin.fir.resolve.inference.receiverType -import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.types.coneType import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind @@ -48,7 +47,6 @@ abstract class AbstractCandidateInfoProvider( typeArguments = typeArgumentList, containingDeclarations = emptyList(), // TODO - maybe we should pass declarations from context here (no visible differences atm) containingFile = firFile, - isPotentialQualifierPart = false, isImplicitInvoke = false, session = firSession, )