PHondogo
11/09/2023, 9:41 AMjava.lang.IllegalStateException: IrTypeParameterSymbolImpl is unbound. Signature: null
at org.jetbrains.kotlin.ir.symbols.impl.IrBindableSymbolBase.getOwner(IrPrivateSymbolBase.kt)
at org.jetbrains.kotlin.ir.types.IrTypeSystemContext$DefaultImpls.supertypes(IrTypeSystemContext.kt:171)
at org.jetbrains.kotlin.ir.types.IrTypeSystemContextImpl.supertypes(IrTypeSystemContext.kt:645)
at org.jetbrains.kotlin.ir.types.IrTypeSystemContextWithAdditionalAxioms.supertypes(IrTypeCheckerUtils.kt)
at org.jetbrains.kotlin.types.AbstractTypeChecker.collectAllSupertypesWithGivenTypeConstructor(AbstractTypeChecker.kt:906)
at org.jetbrains.kotlin.types.AbstractTypeChecker.findCorrespondingSupertypes(AbstractTypeChecker.kt:687)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOfForSingleClassifierType(AbstractTypeChecker.kt:377)
at org.jetbrains.kotlin.types.AbstractTypeChecker.completeIsSubTypeOf(AbstractTypeChecker.kt:284)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:244)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf$default(AbstractTypeChecker.kt:234)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeForSameConstructor(AbstractTypeChecker.kt:478)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOfForSingleClassifierType(AbstractTypeChecker.kt:381)
at org.jetbrains.kotlin.types.AbstractTypeChecker.completeIsSubTypeOf(AbstractTypeChecker.kt:284)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:244)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf$default(AbstractTypeChecker.kt:234)
at org.jetbrains.kotlin.types.AbstractTypeChecker.equalTypes(AbstractTypeChecker.kt:263)
at org.jetbrains.kotlin.ir.overrides.IrOverridingUtilKt.isOverridableByWithoutExternalConditions(IrOverridingUtil.kt:703)
at org.jetbrains.kotlin.ir.overrides.IrOverridingUtil.isOverridableBy(IrOverridingUtil.kt:627)
at org.jetbrains.kotlin.ir.overrides.IrOverridingUtil.extractAndBindOverridesForMember(IrOverridingUtil.kt:250)
at org.jetbrains.kotlin.ir.overrides.IrOverridingUtil.generateOverridesInFunctionGroup(IrOverridingUtil.kt:232)
at org.jetbrains.kotlin.ir.overrides.IrOverridingUtil.buildFakeOverridesForClass(IrOverridingUtil.kt:173)
at org.jetbrains.kotlin.backend.common.overrides.FakeOverrideBuilder$buildFakeOverrideChainsForClass$2$1.invoke(FakeOverrides.kt:125)
at org.jetbrains.kotlin.backend.common.overrides.FakeOverrideBuilder$buildFakeOverrideChainsForClass$2$1.invoke(FakeOverrides.kt:124)
at org.jetbrains.kotlin.backend.common.serialization.signature.PublicIdSignatureComputer.inFile(IdSignatureSerializer.kt:45)
at org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureSerializer.inFile(IdSignatureSerializer.kt:215)
at org.jetbrains.kotlin.backend.common.serialization.DeclarationTable.inFile(DeclarationTable.kt:62)
at org.jetbrains.kotlin.backend.common.overrides.FakeOverrideBuilder.buildFakeOverrideChainsForClass(FakeOverrides.kt:124)
at org.jetbrains.kotlin.backend.common.overrides.FakeOverrideBuilder.provideFakeOverrides(FakeOverrides.kt:281)
at org.jetbrains.kotlin.backend.common.overrides.FakeOverrideBuilder.provideFakeOverrides(FakeOverrides.kt:291)
at org.jetbrains.kotlin.backend.common.serialization.KotlinIrLinker.postProcess(KotlinIrLinker.kt:226)
at org.jetbrains.kotlin.ir.backend.js.KlibKt.getIrModuleInfoForKlib(klib.kt:305)
at org.jetbrains.kotlin.ir.backend.js.KlibKt.loadIr(klib.kt:242)
at org.jetbrains.kotlin.ir.backend.js.CompilerKt.compile(compiler.kt:55)
at org.jetbrains.kotlin.ir.backend.js.CompilerKt.compile$default(compiler.kt:39)
at org.jetbrains.kotlin.cli.js.K2JsIrCompiler$Ir2JsTransformer.lowerIr(K2JsIrCompiler.kt:103)
at org.jetbrains.kotlin.cli.js.K2JsIrCompiler$Ir2JsTransformer.makeJsCodeGenerator(K2JsIrCompiler.kt:126)
at org.jetbrains.kotlin.cli.js.K2JsIrCompiler$Ir2JsTransformer.compileAndTransformIrNew(K2JsIrCompiler.kt:134)
at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:391)
at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:181)
at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:72)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1523)
at jdk.internal.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
Youssef Shoaib [MOD]
11/09/2023, 11:14 AMPHondogo
11/09/2023, 11:40 AMinterface TestCache {
suspend fun <K : Key<V>, V : Any> get(key: K, creator: (K) -> V?): V?
interface Key<V : Any>
}
fun test() {
object : TestCache { // This is the cause. If make class implementing TestCache and instantiate it then it is ok. (For jvm and Android targets both variants compile fine)
override suspend fun <K : TestCache.Key<V>, V : Any> get(key: K, creator: (K) -> V?): V? {
return null
}
}
}
Probably it is a bug in compiler for JS target.