Skip to content

[K2] Modules are inconsistent reported on using samples from different source root #3373

Open
@atyrin

Description

@atyrin

In a KMP configure samples like

tasks.dokkaHtml.configure {
    dokkaSourceSets {
        configureEach {
            samples.from("src/commonMain/kotlin/samples.kt")
        }
     }
}

and use a sample from the file in a platform source set

Execution failed for task ':dokkaHtml'
Caused by: org.jetbrains.kotlin.utils.exceptions.KotlinIllegalStateExceptionWithAttachments: Modules are inconsistent
	at org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder$buildRawFirFileWithCaching$1.invoke(LLFirFileBuilder.kt:56)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder$buildRawFirFileWithCaching$1.invoke(LLFirFileBuilder.kt:25)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCacheImpl$fileCached$1.invoke(LLFirDeclrationsCacheForModule.kt:39)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCacheImpl$fileCached$1.invoke(LLFirDeclrationsCacheForModule.kt:39)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCacheImpl.fileCached$lambda$0(LLFirDeclrationsCacheForModule.kt:39)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCacheImpl.fileCached(LLFirDeclrationsCacheForModule.kt:39)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirFileBuilder.buildRawFirFileWithCaching(LLFirFileBuilder.kt:25)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirProviderHelper$callablesByCallableId$1.invoke(LLFirProviderHelper.kt:96)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirProviderHelper$callablesByCallableId$1.invoke(LLFirProviderHelper.kt:91)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.fir.caches.FirThreadSafeCache.getValue(FirThreadSafeCache.kt:27)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirProviderHelper.getTopLevelCallableSymbols(LLFirProviderHelper.kt:167)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirProviderHelper.getTopLevelFunctionSymbols(LLFirProviderHelper.kt:135)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirProvider$SymbolProvider.getTopLevelFunctionSymbolsTo(LLFirProvider.kt:158)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirModuleWithDependenciesSymbolProvider.getTopLevelFunctionSymbolsToWithoutDependencies(LLFirModuleWithDependenciesSymbolProvider.kt:90)
	at org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirModuleWithDependenciesSymbolProvider.getTopLevelFunctionSymbolsTo(LLFirModuleWithDependenciesSymbolProvider.kt:74)
	at org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider.getTopLevelFunctionSymbols(FirSymbolProvider.kt:45)
	at org.jetbrains.kotlin.fir.scopes.impl.FirPackageMemberScope.processFunctionsByName(FirPackageMemberScope.kt:54)
	at org.jetbrains.kotlin.analysis.api.fir.scopes.FirScopeUtilsKt$getCallableSymbols$1.invokeSuspend(firScopeUtils.kt:24)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.sequences.SequenceBuilderIterator.hasNext(SequenceBuilder.kt:129)
	at kotlin.collections.CollectionsKt__MutableCollectionsKt.addAll(MutableCollections.kt:129)
	at org.jetbrains.kotlin.analysis.api.fir.references.KDocReferenceResolver.getAllSymbolsFromScopeByShortName(KDocReferenceResolver.kt:217)
	at org.jetbrains.kotlin.analysis.api.fir.references.KDocReferenceResolver.getSymbolsFromMemberScope(KDocReferenceResolver.kt:211)
	at org.jetbrains.kotlin.analysis.api.fir.references.KDocReferenceResolver.getSymbolsFromPackageScope(KDocReferenceResolver.kt:185)
	at org.jetbrains.kotlin.analysis.api.fir.references.KDocReferenceResolver.getSymbolsFromScopes(KDocReferenceResolver.kt:107)
	at org.jetbrains.kotlin.analysis.api.fir.references.KDocReferenceResolver.resolveKdocFqName(KDocReferenceResolver.kt:84)
	at org.jetbrains.kotlin.analysis.api.fir.references.KDocReferenceResolver.resolveKdocFqName$analysis_api_fir(KDocReferenceResolver.kt:47)
	at org.jetbrains.kotlin.analysis.api.fir.references.KtFirKDocReference.resolveToSymbols(KtFirKDocReference.kt:19)
	at org.jetbrains.kotlin.analysis.api.fir.components.KtFirReferenceResolveProvider.resolveToSymbols(KtFirReferenceResolveProvider.kt:23)
	at org.jetbrains.kotlin.analysis.api.components.KtReferenceResolveMixIn.resolveToSymbols(KtReferenceResolveMixIn.kt:14)
	at org.jetbrains.dokka.analysis.kotlin.symbols.kdoc.ResolveKDocLinkKt.resolveToSymbol(ResolveKDocLink.kt:81)
	at org.jetbrains.dokka.analysis.kotlin.symbols.kdoc.ResolveKDocLinkKt.resolveKDocTextLinkToSymbol(ResolveKDocLink.kt:51)
	at org.jetbrains.dokka.analysis.kotlin.symbols.kdoc.ResolveKDocLinkKt.resolveKDocTextLinkToSymbol$default(ResolveKDocLink.kt:49)
	at org.jetbrains.dokka.analysis.kotlin.symbols.services.SymbolSampleAnalysisEnvironment.findPsiElement(SymbolSampleAnalysisEnvironment.kt:114)
	at org.jetbrains.dokka.analysis.kotlin.symbols.services.SymbolSampleAnalysisEnvironment.findPsiElement(SymbolSampleAnalysisEnvironment.kt:107)
	at org.jetbrains.dokka.analysis.kotlin.symbols.services.SymbolSampleAnalysisEnvironment.resolveSample(SymbolSampleAnalysisEnvironment.kt:61)
	at org.jetbrains.dokka.base.transformers.pages.DefaultSamplesTransformer$invoke$1$1.invoke(DefaultSamplesTransformer.kt:37)
	at org.jetbrains.dokka.base.transformers.pages.DefaultSamplesTransformer$invoke$1$1.invoke(DefaultSamplesTransformer.kt:29)
	at org.jetbrains.dokka.pages.RootPageNode$transformContentPagesTree$1.invoke(PageNodes.kt:65)
	at org.jetbrains.dokka.pages.RootPageNode$transformContentPagesTree$1.invoke(PageNodes.kt:64)
	at org.jetbrains.dokka.pages.RootPageNode.transformNode(PageNodes.kt:69)
	at org.jetbrains.dokka.pages.RootPageNode.transformNode(PageNodes.kt:70)
	at org.jetbrains.dokka.pages.RootPageNode.transformNode(PageNodes.kt:70)
	at org.jetbrains.dokka.pages.RootPageNode.transformPageNodeTree(PageNodes.kt:62)
	at org.jetbrains.dokka.pages.RootPageNode.transformContentPagesTree(PageNodes.kt:64)
	at org.jetbrains.dokka.base.transformers.pages.DefaultSamplesTransformer$invoke$1.invoke(DefaultSamplesTransformer.kt:29)
	at org.jetbrains.dokka.base.transformers.pages.DefaultSamplesTransformer$invoke$1.invoke(DefaultSamplesTransformer.kt:28)
	at org.jetbrains.dokka.analysis.kotlin.symbols.services.SymbolSampleAnalysisEnvironmentCreator$use$1.invokeSuspend(SymbolSampleAnalysisEnvironment.kt:48)

Installation

  • Dokka version: 1.9.20

Parent: #3328
Relates: #3239

dokka-repros.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    blocked: AAChanges required in Analysis APIbugconfigurationAn issue/PR related to Dokka's configuration by the userkdoc-specAn issue that requires clarification from the KDoc spec's perspectivetopic: K2Issues / PRs that are related to the K2 migration. See #2888

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions