[K2/N] Insert asserts to reveal wrongly recursive Fir2IrLazy*.overriddenSymbols
^KT-58459 [Merge-request: KT-MR-9962 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
47c32ef37f
commit
98be76295f
+1
@@ -51,6 +51,7 @@ internal fun FirFunction.getObjCMethodInfoFromOverriddenFunctions(session: FirSe
|
||||
// call of `processFunctionsByName()` is needed only for necessary side-effect before `getDirectOverriddenFunctions` call
|
||||
unsubstitutedScope.processFunctionsByName(symbol.name) {}
|
||||
unsubstitutedScope.getDirectOverriddenFunctions(symbol).firstNotNullOfOrNull {
|
||||
assert(it.fir != this) { "Function ${symbol.name}() is wrongly contained in its own getDirectOverriddenFunctions" }
|
||||
it.fir.getObjCMethodInfoFromOverriddenFunctions(session, scopeSession)
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -179,7 +179,10 @@ private fun IrSimpleFunction.getObjCMethodInfo(onlyExternal: Boolean): ObjCMetho
|
||||
}
|
||||
}
|
||||
|
||||
return overriddenSymbols.firstNotNullOfOrNull { it.owner.getObjCMethodInfo(onlyExternal) }
|
||||
return overriddenSymbols.firstNotNullOfOrNull {
|
||||
assert(it.owner != this) { "Function ${it.owner.descriptor.fqNameSafe}() is wrongly contained in its own overriddenSymbols"}
|
||||
it.owner.getObjCMethodInfo(onlyExternal)
|
||||
}
|
||||
}
|
||||
|
||||
fun FunctionDescriptor.getExternalObjCMethodInfo(): ObjCMethodInfo? = this.getObjCMethodInfo(onlyExternal = true)
|
||||
|
||||
Reference in New Issue
Block a user