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,
)