Hi there! Has any one seen this error with Dokka 1...
# dokka
p
Hi there! Has any one seen this error with Dokka 1.7.10 and Kotlin 1.7.10 when trying to run dokkaHtml for a multi-platform-project?
Copy code
Caused by: java.lang.IllegalStateException: Illegal use of flexible type deserializer.
        at org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer.create(NullFlexibleTypeDeserializer.kt:19)
        at org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer.create(NullFlexibleTypeDeserializer.kt:12)
        at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:66)
        at org.jetbrains.kotlin.serialization.deserialization.MemberDeserializer.loadProperty(MemberDeserializer.kt:57)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.computeProperties(DeserializedMemberScope.kt:314)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.access$computeProperties(DeserializedMemberScope.kt:228)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$properties$1.invoke(DeserializedMemberScope.kt:253)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$properties$1.invoke(DeserializedMemberScope.kt:253)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:651)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.getContributedVariables(DeserializedMemberScope.kt:338)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.addFunctionsAndPropertiesTo(DeserializedMemberScope.kt:352)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.computeDescriptors(DeserializedMemberScope.kt:115)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope$allDescriptors$1.invoke(DeserializedClassDescriptor.kt:301)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope$allDescriptors$1.invoke(DeserializedClassDescriptor.kt:300)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:527)
        at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor$DeserializedClassMemberScope.getContributedDescriptors(DeserializedClassDescriptor.kt:311)
        at org.jetbrains.kotlin.resolve.scopes.ResolutionScope$DefaultImpls.getContributedDescriptors$default(ResolutionScope.kt:50)
        at org.jetbrains.kotlin.resolve.scopes.SubstitutingScope$_allDescriptors$2.invoke(SubstitutingScope.kt:38)
        at org.jetbrains.kotlin.resolve.scopes.SubstitutingScope$_allDescriptors$2.invoke(SubstitutingScope.kt:38)
        at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
        at org.jetbrains.kotlin.resolve.scopes.SubstitutingScope.get_allDescriptors(SubstitutingScope.kt:38)
        at org.jetbrains.kotlin.resolve.scopes.SubstitutingScope.getContributedDescriptors(SubstitutingScope.kt:87)
        at org.jetbrains.kotlin.resolve.scopes.ResolutionScope$DefaultImpls.getContributedDescriptors$default(ResolutionScope.kt:50)
        at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope.computeExtraDescriptors(LazyClassMemberScope.kt:115)
        at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope.doDescriptors(LazyClassMemberScope.kt:72)
        at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope.access$doDescriptors(LazyClassMemberScope.kt:51)
        at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope$getContributedDescriptors$2.invoke(LazyClassMemberScope.kt:108)
        at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope$getContributedDescriptors$2.invoke(LazyClassMemberScope.kt:107)
        at org.jetbrains.kotlin.storage.LockBasedStorageManager.compute(LockBasedStorageManager.java:290)
        at org.jetbrains.kotlin.storage.LockBasedLazyResolveStorageManager.compute(LockBasedLazyResolveStorageManager.kt)
        at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope.getContributedDescriptors(LazyClassMemberScope.kt:107)
        at org.jetbrains.kotlin.resolve.scopes.ResolutionScope$DefaultImpls.getContributedDescriptors$default(ResolutionScope.kt:50)
        at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor.getDescriptorsWithKind(DefaultDescriptorToDocumentableTranslator.kt:820)
        at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor.getDescriptorsWithKind$default(DefaultDescriptorToDocumentableTranslator.kt:819)
        at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor$classDescriptor$2.invokeSuspend(DefaultDescriptorToDocumentableTranslator.kt:383)
        at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor$classDescriptor$2.invoke(DefaultDescriptorToDocumentableTranslator.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
        at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
        at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor.classDescriptor(DefaultDescriptorToDocumentableTranslator.kt:382)
        at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor.access$classDescriptor(DefaultDescriptorToDocumentableTranslator.kt:132)
        at org.jetbrains.dokka.base.translators.descriptors.DokkaDescriptorVisitor$classDescriptor$1.invokeSuspend(DefaultDescriptorToDocumentableTranslator.kt)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
        at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
        at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
        at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
        at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
        at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
😨 1
It seems be connected to the
dynamic
type in KotlinJS:
And it also seems that this
dynamic
is coming from another library. So question: Can I instruct Dokka to NOT look into other libraries ?
i
Hi! Is your project open source? If not, can I ask you to provide some more details or a reproducer? We'd like to have a look at it and fix it Also, is this a new problem in 1.7.10? Did everything build fine before that?
So question: Can I instruct Dokka to NOT look into other libraries ?
It doesn't look into other libraries by default, but if you use classes from that library - it's in your own source code, so Dokka (or the compiler, rather) has to parse it
p
Hi! @Ignat Beresnev Yes the library is open source.
You can find it here:
And you can reproduce the error with this command:
Copy code
./gradlew :addons:prismjs:publishToMavenLocal --stacktrace
🙏 1
And the sub-project
:addons:prismjs
has a reference to
:core
which itself uses
dynamic
. The class and property in question are:
Copy code
de.peekandpoke.kraft.components.Component::renderCache: dynamic
... and other places ...
I cannot tell if this is a 1.7.10 issue. I just introduced the new sub-project. So maybe in 1.7.0 the problem does exists already as well.
@Ignat Beresnev please use this branch of the project: https://github.com/PeekAndPoke/kraft/tree/dynamic-type-deserialization-trouble
The code has the state that produces the problem.
On the main branch I will work around the problem.
...
Just in case anyone needs a workaround, I did the following: 1. I disabled the dokka plugin for the sub-project that has the issue 2. I created a file
empty-javadoc.jar
in my project-root 3. I added a copy task to use the empty docs
Copy code
tasks.register<Copy>("copyEmptySources") {
    val fromDir = File("").absolutePath
    val intoDir = File(buildDir, "/libs")

    from(fromDir)
    into(intoDir)

    include("empty-javadoc.jar")
    rename("empty-javadoc.jar", "${project.name}-$version-javadoc.jar")
}
It seems to work for now and I could publish the artifact to maven.org
i
Hi! JFYI: looks like it's going to be fixed in 1.7.20. PR here