FIR: Fix resolution for HideMembers level

This commit is contained in:
Denis Zharkov
2020-04-01 18:58:38 +03:00
parent 6cc6b9efcb
commit 426609a133
@@ -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(