[FIR] FirDelegatedMemberScope: add missing resolve

^KT-56543
This commit is contained in:
Dmitrii Gridin
2023-04-04 22:38:07 +02:00
committed by Space Team
parent 26f8147a8c
commit 7c8f7bdbfb
3 changed files with 17 additions and 14 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@@ -50,10 +50,12 @@ class FirDelegatedMemberScope(
result.forEach(processor)
}
private fun buildScope(delegateField: FirField): FirTypeScope? {
return delegateField.returnTypeRef.coneType
.scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing, requiredPhase = null)
}
private fun buildScope(delegateField: FirField): FirTypeScope? = delegateField.symbol.resolvedReturnType.scope(
session,
scopeSession,
FakeOverrideTypeCalculator.DoNothing,
requiredPhase = null,
)
private fun collectFunctionsFromSpecificField(
delegateField: FirField,
@@ -136,19 +138,22 @@ class FirDelegatedMemberScope(
return@processor
}
if (propertySymbol.modality == Modality.FINAL || propertySymbol.visibility == Visibilities.Private) {
return@processor
}
val original = propertySymbol.fir
if (original.modality == Modality.FINAL || original.visibility == Visibilities.Private) {
return@processor
var isOverriddenProperty = false
declaredMemberScope.processPropertiesByName(name) {
if (it is FirPropertySymbol && overrideChecker.isOverriddenProperty(it.fir, original)) {
isOverriddenProperty = true
}
}
if (declaredMemberScope.getProperties(name)
.any { it is FirPropertySymbol && overrideChecker.isOverriddenProperty(it.fir, original) }
) {
if (isOverriddenProperty) {
return@processor
}
result.firstOrNull {
overrideChecker.isOverriddenProperty(it.fir, original)
}?.let {
@@ -1,4 +1,3 @@
// IGNORE_REVERSED_RESOLVE
// See KT-15566
// NI_EXPECTED_FILE
@@ -1,4 +1,3 @@
// IGNORE_REVERSED_RESOLVE
// See KT-15566
// NI_EXPECTED_FILE