FIR: Fix resolution for HideMembers level
This commit is contained in:
+13
-4
@@ -216,10 +216,16 @@ class FirTowerResolverSession internal constructor(
|
|||||||
|
|
||||||
for ((index, topLevelScope) in topLevelScopes.withIndex()) {
|
for ((index, topLevelScope) in topLevelScopes.withIndex()) {
|
||||||
if (explicitReceiverValue != null) {
|
if (explicitReceiverValue != null) {
|
||||||
processHideMembersLevel(explicitReceiverValue, topLevelScope, info, index, depth = null)
|
processHideMembersLevel(
|
||||||
|
explicitReceiverValue, topLevelScope, info, index, depth = null,
|
||||||
|
ExplicitReceiverKind.EXTENSION_RECEIVER
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
for ((implicitReceiverValue, depth) in implicitReceiversUsableAsValues) {
|
for ((implicitReceiverValue, depth) in implicitReceiversUsableAsValues) {
|
||||||
processHideMembersLevel(implicitReceiverValue, topLevelScope, info, index, depth)
|
processHideMembersLevel(
|
||||||
|
implicitReceiverValue, topLevelScope, info, index, depth,
|
||||||
|
ExplicitReceiverKind.NO_EXPLICIT_RECEIVER
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -230,12 +236,15 @@ class FirTowerResolverSession internal constructor(
|
|||||||
topLevelScope: FirScope,
|
topLevelScope: FirScope,
|
||||||
info: CallInfo,
|
info: CallInfo,
|
||||||
index: Int,
|
index: Int,
|
||||||
depth: Int?
|
depth: Int?,
|
||||||
|
explicitReceiverKind: ExplicitReceiverKind
|
||||||
) = processLevel(
|
) = processLevel(
|
||||||
topLevelScope.toScopeTowerLevel(
|
topLevelScope.toScopeTowerLevel(
|
||||||
extensionReceiver = receiverValue, extensionsOnly = true
|
extensionReceiver = receiverValue, extensionsOnly = true
|
||||||
),
|
),
|
||||||
info, TowerGroup.TopPrioritized(index).let { if (depth != null) it.Implicit(depth) else it }
|
info,
|
||||||
|
TowerGroup.TopPrioritized(index).let { if (depth != null) it.Implicit(depth) else it },
|
||||||
|
explicitReceiverKind,
|
||||||
)
|
)
|
||||||
|
|
||||||
private suspend fun processLocalScopesWithNoReceiver(
|
private suspend fun processLocalScopesWithNoReceiver(
|
||||||
|
|||||||
Reference in New Issue
Block a user