K2: repeat K1 behavior around multiple inheritance by delegation
#KT-56720 Fixed
This commit is contained in:
committed by
Space Team
parent
ab883d91c8
commit
45e78455b2
+7
-1
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.diagnostics.reportOn
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED
|
||||
import org.jetbrains.kotlin.fir.containingClassLookupTag
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||
import org.jetbrains.kotlin.fir.delegatedWrapperData
|
||||
@@ -71,7 +72,12 @@ object FirNotImplementedOverrideChecker : FirClassChecker() {
|
||||
val delegatedTo = delegatedWrapperData.wrapped.unwrapFakeOverrides().symbol
|
||||
|
||||
if (symbol.multipleDelegatesWithTheSameSignature == true) {
|
||||
manyImplementationsDelegationSymbols.add(symbol)
|
||||
if (directOverriddenMembersWithBaseScope.isNotEmpty() &&
|
||||
// We should report here if either 2+ members or single member with non-enhancement origin
|
||||
directOverriddenMembersWithBaseScope.singleOrNull()?.member?.origin != FirDeclarationOrigin.Enhancement
|
||||
) {
|
||||
manyImplementationsDelegationSymbols.add(symbol)
|
||||
}
|
||||
}
|
||||
|
||||
val firstFinal = filteredOverriddenMembers.firstOrNull { it.isFinal }
|
||||
|
||||
Reference in New Issue
Block a user