[MPP] Introduce allModulesProviding(Expects|Actuals)For filters
This new filters will also take care of filtering out descriptors that are provided by 'regular' dependencies instead of 'dependsOn' dependencies. ^KT-50120
This commit is contained in:
committed by
Space
parent
d1ce7ae870
commit
2e55b82ba3
+4
-9
@@ -23,9 +23,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.ExpectedActualResolver
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.OptionalAnnotationUtil
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.onlyFromThisModule
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.*
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
|
||||
// `doRemove` means should expect-declaration be removed from IR
|
||||
@@ -136,16 +134,13 @@ class ExpectDeclarationRemover(val symbolTable: ReferenceSymbolTable, private va
|
||||
|
||||
private fun MemberDescriptor.findActualForExpect(): MemberDescriptor? {
|
||||
if (!isExpect) error(this)
|
||||
return with(ExpectedActualResolver) {
|
||||
findCompatibleActualForExpected(this@findActualForExpect.module).singleOrNull()
|
||||
}
|
||||
return findCompatibleActualsForExpected(module).singleOrNull()
|
||||
|
||||
}
|
||||
|
||||
private fun MemberDescriptor.findExpectForActual(): MemberDescriptor? {
|
||||
if (!isActual) error(this)
|
||||
return with(ExpectedActualResolver) {
|
||||
findCompatibleExpectedForActual(onlyFromThisModule(this@findExpectForActual.module)).singleOrNull()
|
||||
}
|
||||
return findCompatibleExpectsForActual().singleOrNull()
|
||||
}
|
||||
|
||||
private fun IrExpression.remapExpectValueSymbols(): IrExpression {
|
||||
|
||||
+1
-1
@@ -116,4 +116,4 @@ class ExpectActualTable(val expectDescriptorToSymbol: MutableMap<DeclarationDesc
|
||||
table.put(expect, declaration.symbol)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user