Does KSP effectively block other analysishandlerex...
# ksp
z
Does KSP effectively block other analysishandlerextension plugins from running in its KspTask?
Copy code
> Task :lib.bookmarks:kspReleaseKotlin FAILED
e: java.lang.RuntimeException: Duplicate registration for EP 'org.jetbrains.kotlin.com.intellij.psi.treeChangeListener': first in FakeIdForTests, second in FakeIdForTests
        at org.jetbrains.kotlin.com.intellij.openapi.components.ComponentManager.createError(ComponentManager.java:167)
        at org.jetbrains.kotlin.com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.checkThatPointNotDuplicated(ExtensionsAreaImpl.java:235)
        at org.jetbrains.kotlin.com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.registerExtensionPoint(ExtensionsAreaImpl.java:240)
        at org.jetbrains.kotlin.com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.doRegisterExtensionPoint(ExtensionsAreaImpl.java:210)
        at org.jetbrains.kotlin.com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.doRegisterExtensionPoint(ExtensionsAreaImpl.java:189)
        at org.jetbrains.kotlin.com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.doRegisterExtensionPoint(ExtensionsAreaImpl.java:183)
        at org.jetbrains.kotlin.com.intellij.openapi.extensions.impl.ExtensionsAreaImpl.registerExtensionPoint(ExtensionsAreaImpl.java:160)
        at dev.zacsweers.moshix.ir.compiler.proguardgen.ProguardRuleGenerationExtension.doAnalysis(ProguardRuleGenerationExtension.kt:59)
t
Kind of. The compiler only allows one (first) analysis handler to return non-null AnalysisResult. KSP use it to request early return, i.e., skip compiler backend in this task.