[FE 1.0] Take into account import aliases during hidden member resolution
This commit is contained in:
@@ -39,6 +39,8 @@ interface ImplicitScopeTower {
|
||||
|
||||
fun getImplicitReceiver(scope: LexicalScope): ReceiverValueWithSmartCastInfo?
|
||||
|
||||
fun getNameForGivenImportAlias(name: Name): Name?
|
||||
|
||||
val dynamicScope: MemberScope
|
||||
|
||||
val syntheticScopes: SyntheticScopes
|
||||
|
||||
@@ -358,7 +358,8 @@ internal class HidesMembersTowerLevel(scopeTower: ImplicitScopeTower) : Abstract
|
||||
extensionReceiver: ReceiverValueWithSmartCastInfo?,
|
||||
collectCandidates: LexicalScope.(Name, LookupLocation) -> Collection<CallableDescriptor>
|
||||
): Collection<CandidateWithBoundDispatchReceiver> {
|
||||
if (extensionReceiver == null || name !in HIDES_MEMBERS_NAME_LIST) return emptyList()
|
||||
if (extensionReceiver == null) return emptyList()
|
||||
if (name !in HIDES_MEMBERS_NAME_LIST && scopeTower.getNameForGivenImportAlias(name) !in HIDES_MEMBERS_NAME_LIST) return emptyList()
|
||||
|
||||
return scopeTower.lexicalScope.collectCandidates(name, location).filter {
|
||||
it.extensionReceiverParameter != null && it.hasHidesMembersAnnotation()
|
||||
|
||||
@@ -107,7 +107,8 @@ class TowerResolver {
|
||||
private val useOrder: Boolean,
|
||||
private val name: Name
|
||||
) {
|
||||
private val isNameForHidesMember = name in HIDES_MEMBERS_NAME_LIST
|
||||
private val isNameForHidesMember =
|
||||
name in HIDES_MEMBERS_NAME_LIST || implicitScopeTower.getNameForGivenImportAlias(name) in HIDES_MEMBERS_NAME_LIST
|
||||
private val skippedDataForLookup = mutableListOf<TowerData>()
|
||||
|
||||
private val localLevels: Collection<ScopeTowerLevel> by lazy(LazyThreadSafetyMode.NONE) {
|
||||
|
||||
Reference in New Issue
Block a user