Scripting: fix script type extraction on psi2ir

#KT-48812 fixed
This commit is contained in:
Ilya Chernikov
2022-04-26 12:03:40 +02:00
committed by teamcity
parent 3e19e9d190
commit a78d063bef
3 changed files with 29 additions and 0 deletions
@@ -1181,6 +1181,13 @@ private fun makeKotlinType(
)
}
}
is IrScriptSymbol -> {
TypeUtils.makeUnsubstitutedType(
classifier.toIrBasedDescriptorIfPossible(),
MemberScope.Empty,
KotlinTypeFactory.EMPTY_REFINED_TYPE_FACTORY
).makeNullableAsSpecified(hasQuestionMark)
}
else -> error("unknown classifier kind $classifier")
}
@@ -1200,3 +1207,8 @@ private fun IrSimpleFunctionSymbol.toIrBasedDescriptorIfPossible(): FunctionDesc
@OptIn(ObsoleteDescriptorBasedAPI::class)
private fun IrPropertySymbol.toIrBasedDescriptorIfPossible(): PropertyDescriptor =
if (isBound) owner.toIrBasedDescriptor() else descriptor
// this is a temporary solution for scripts - seems that introducing full-blown emulation of descriptors for the single degenerate case
// doesn't make any sense.
@OptIn(ObsoleteDescriptorBasedAPI::class)
private fun IrScriptSymbol.toIrBasedDescriptorIfPossible(): ScriptDescriptor = descriptor