[JS IC] Fix signature finding in some cases
Found in KFSAD
This commit is contained in:
committed by
teamcityserver
parent
15648da2b4
commit
9bfe502afd
+3
-2
@@ -119,9 +119,10 @@ class IrModuleDeserializerWithBuiltIns(
|
||||
}
|
||||
|
||||
override operator fun contains(idSig: IdSignature): Boolean {
|
||||
if (idSig in irBuiltInsMap) return true
|
||||
val topLevel = idSig.topLevelSignature()
|
||||
if (topLevel in irBuiltInsMap) return true
|
||||
|
||||
return checkIsFunctionInterface(idSig) || idSig in delegate
|
||||
return checkIsFunctionInterface(topLevel) || idSig in delegate
|
||||
}
|
||||
|
||||
override fun referenceSimpleFunctionByLocalSignature(file: IrFile, idSignature: IdSignature) : IrSimpleFunctionSymbol =
|
||||
|
||||
+2
-2
@@ -74,6 +74,7 @@ class IcFileDeserializer(
|
||||
originalSymbolDeserializer,
|
||||
linker.fakeOverrideBuilder.platformSpecificClassFilter,
|
||||
linker.fakeOverrideBuilder,
|
||||
allowRedeclaration = true,
|
||||
compatibilityMode = CompatibilityMode.CURRENT
|
||||
)
|
||||
|
||||
@@ -81,9 +82,8 @@ class IcFileDeserializer(
|
||||
// TODO: reference lowered declarations cross-module
|
||||
if (kind == BinarySymbolData.SymbolKind.FILE_SYMBOL) return file.symbol
|
||||
|
||||
val topLevelSig = idSig.topLevelSignature()
|
||||
val actualModuleDeserializer =
|
||||
moduleDeserializer.findModuleDeserializerForTopLevelId(topLevelSig)
|
||||
moduleDeserializer.findModuleDeserializerForTopLevelId(idSig)
|
||||
?: handleNoModuleDeserializerFound(idSig, moduleDeserializer.moduleDescriptor, moduleDeserializer.moduleDependencies)
|
||||
|
||||
return actualModuleDeserializer.deserializeIrSymbol(idSig, kind)
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ class IcModuleDeserializer(
|
||||
?: error("No deserializer for file $file in module ${moduleDescriptor.name}")
|
||||
|
||||
// TODO: fix to topLevel checker
|
||||
override fun contains(idSig: IdSignature): Boolean = idSig in moduleReversedFileIndex || idSig in icModuleReversedFileIndex
|
||||
override fun contains(idSig: IdSignature): Boolean = idSig.topLevelSignature() in moduleReversedFileIndex || idSig in icModuleReversedFileIndex
|
||||
|
||||
override fun deserializeIrSymbol(idSig: IdSignature, symbolKind: BinarySymbolData.SymbolKind): IrSymbol {
|
||||
assert(idSig.isPubliclyVisible)
|
||||
|
||||
Reference in New Issue
Block a user