Merge pull request #13088 from igfoo/igfoo/getTypeParameterParentLabel

Kotlin: Small simplification
This commit is contained in:
Ian Lynagh 2023-05-11 11:59:06 +01:00 коммит произвёл GitHub
Родитель 07808867cc 968a78e3e6
Коммит e7d1782eea
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 13 добавлений и 13 удалений

Просмотреть файл

@ -1450,9 +1450,11 @@ open class KotlinUsesExtractor(
fun getTypeParameterParentLabel(param: IrTypeParameter) =
param.parent.let {
(it as? IrFunction)?.let { fn ->
if (this is KotlinFileExtractor)
this.declarationStack.findOverriddenAttributes(fn)?.takeUnless {
when (it) {
is IrClass -> useClassSource(it)
is IrFunction ->
(if (this is KotlinFileExtractor)
this.declarationStack.findOverriddenAttributes(it)?.takeUnless {
// When extracting the `static fun f$default(...)` that accompanies `fun <T> f(val x: T? = defaultExpr, ...)`,
// `f$default` has no type parameters, and so there is no `f$default::T` to refer to.
// We have no good way to extract references to `T` in `defaultExpr`, so we just fall back on describing it
@ -1461,10 +1463,8 @@ open class KotlinUsesExtractor(
}?.id
else
null
} ?:
when (it) {
is IrClass -> useClassSource(it)
is IrFunction -> useFunction(it, noReplace = true)
) ?:
useFunction(it, noReplace = true)
else -> { logger.error("Unexpected type parameter parent $it"); null }
}
}