Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
0c2171b
Add nested type aliases to scope
AbdullinAM Sep 12, 2025
5475bc7
Tests for nested typealiases
AbdullinAM Sep 16, 2025
c66b525
Cleanup
AbdullinAM Sep 16, 2025
387c7f2
API dump
AbdullinAM Sep 16, 2025
c627417
Fix typealias name rendering in descriptors
AbdullinAM Sep 17, 2025
819d126
Copy typealiases everywhere
AbdullinAM Sep 17, 2025
814693e
Review fixes
AbdullinAM Sep 18, 2025
cdca2f0
More tests + fixes
AbdullinAM Sep 19, 2025
a3d34aa
Merge typealiases in multiplatform projects
AbdullinAM Sep 19, 2025
10dab25
Add expect/actual typealias test
AbdullinAM Sep 19, 2025
ee6070a
Update APIs
AbdullinAM Sep 19, 2025
831f9ec
Review fixes
AbdullinAM Sep 19, 2025
4382ec1
Documentable model test
AbdullinAM Sep 19, 2025
a632da9
Fix DocumentableReplacerTransformer: consider typealiases when comupt…
AbdullinAM Sep 29, 2025
b24e829
Add visibility filter test for nested typealiases
AbdullinAM Sep 29, 2025
edb13ce
Extend `nested typealias use in KDoc` test
AbdullinAM Sep 29, 2025
f3be139
Update `NestedTypealiasTest` after rebase to master
AbdullinAM Sep 29, 2025
f81852f
Add test for nested typealiases in SuppressTagFilterTest.kt
AbdullinAM Sep 30, 2025
52d85f6
Change the rendering of typealias names
AbdullinAM Sep 30, 2025
0f3d529
Ensure ABI compatibility of documentables that implement `WithTypeali…
AbdullinAM Oct 6, 2025
f6d3ff6
Remove redundant `toList`
AbdullinAM Oct 6, 2025
4b24348
Add test that checks nested typealiases with type parameters
AbdullinAM Oct 6, 2025
aeb4b43
Remove the use of `signatureForProjection` in `regularSignature` for …
AbdullinAM Oct 6, 2025
946ce19
Update APIs
AbdullinAM Oct 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ internal class DokkaPsiParser(
properties = fields.filter { it !is PsiEnumConstant }
.map { parseField(it, accessors[it].orEmpty()) },
classlikes = classlikes.await(),
typealiases = emptyList(),
visibility = visibility,
companion = null,
constructors = parseConstructors(dri),
Expand All @@ -340,6 +341,7 @@ internal class DokkaPsiParser(
functions = allFunctions.await(),
properties = allFields.await(),
classlikes = classlikes.await(),
typealiases = emptyList(),
visibility = visibility,
companion = null,
generics = mapTypeParameters(dri),
Expand All @@ -361,6 +363,7 @@ internal class DokkaPsiParser(
functions = allFunctions.await(),
properties = allFields.await(),
classlikes = classlikes.await(),
typealiases = emptyList(),
sources = source,
visibility = visibility,
companion = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ internal fun DRI.Companion.from(descriptor: DeclarationDescriptor) = descriptor.

DRI(
packageName = firstIsInstanceOrNull<PackageFragmentDescriptor>()?.fqName?.asString() ?: "",
classNames = (filterIsInstance<ClassDescriptor>() + filterIsInstance<TypeAliasDescriptor>()).toList()
classNames = filter { it is ClassDescriptor || it is TypeAliasDescriptor }.toList()
.takeIf { it.isNotEmpty() }
?.asReversed()
?.joinToString(separator = ".") { it.name.asString() },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ private class DokkaDescriptorVisitor(
val functions = async { descriptorsWithKind.functions.visitFunctions(driWithPlatform) }
val properties = async { descriptorsWithKind.properties.visitProperties(driWithPlatform) }
val classlikes = async { descriptorsWithKind.classlikes.visitClasslikes(driWithPlatform) }
val typealiases = async { descriptorsWithKind.typealiases.visitTypealiases() }
val generics = async { descriptor.declaredTypeParameters.parallelMap { it.toVariantTypeParameter() } }

DInterface(
Expand All @@ -235,6 +236,7 @@ private class DokkaDescriptorVisitor(
functions = functions.await(),
properties = properties.await(),
classlikes = classlikes.await(),
typealiases = typealiases.await(),
sources = descriptor.createSources(),
expectPresentInSet = sourceSet.takeIf { isExpect },
visibility = descriptor.visibility.toDokkaVisibility().toSourceSetDependent(),
Expand Down Expand Up @@ -269,13 +271,15 @@ private class DokkaDescriptorVisitor(
val functions = async { descriptorsWithKind.functions.visitFunctions(driWithPlatform) }
val properties = async { descriptorsWithKind.properties.visitProperties(driWithPlatform) }
val classlikes = async { descriptorsWithKind.classlikes.visitClasslikes(driWithPlatform) }
val typealiases = async { descriptorsWithKind.typealiases.visitTypealiases() }

DObject(
dri = driWithPlatform.dri,
name = descriptor.name.asString(),
functions = functions.await(),
properties = properties.await(),
classlikes = classlikes.await(),
typealiases = typealiases.await(),
sources = descriptor.createSources(),
expectPresentInSet = sourceSet.takeIf { isExpect },
visibility = descriptor.visibility.toDokkaVisibility().toSourceSetDependent(),
Expand Down Expand Up @@ -307,6 +311,7 @@ private class DokkaDescriptorVisitor(
val functions = async { descriptorsWithKind.functions.visitFunctions(driWithPlatform) }
val properties = async { descriptorsWithKind.properties.visitProperties(driWithPlatform) }
val classlikes = async { descriptorsWithKind.classlikes.visitClasslikes(driWithPlatform) }
val typealiases = async { descriptorsWithKind.typealiases.visitTypealiases() }
val constructors =
async { descriptor.constructors.parallelMap { visitConstructorDescriptor(it, driWithPlatform) } }
val entries = async { descriptorsWithKind.enumEntries.visitEnumEntries(driWithPlatform) }
Expand All @@ -319,6 +324,7 @@ private class DokkaDescriptorVisitor(
functions = functions.await(),
properties = properties.await(),
classlikes = classlikes.await(),
typealiases = typealiases.await(),
sources = descriptor.createSources(),
expectPresentInSet = sourceSet.takeIf { isExpect },
visibility = descriptor.visibility.toDokkaVisibility().toSourceSetDependent(),
Expand Down Expand Up @@ -438,6 +444,7 @@ private class DokkaDescriptorVisitor(
val functions = async { regularFunctions.visitFunctions(driWithPlatform) }
val properties = async { descriptorsWithKind.properties.visitProperties(driWithPlatform, accessors) }
val classlikes = async { descriptorsWithKind.classlikes.visitClasslikes(driWithPlatform) }
val typealiases = async { descriptorsWithKind.typealiases.visitTypealiases() }
val generics = async { descriptor.declaredTypeParameters.parallelMap { it.toVariantTypeParameter() } }
val constructors = async {
descriptor.constructors.parallelMap {
Expand All @@ -456,6 +463,7 @@ private class DokkaDescriptorVisitor(
functions = functions.await(),
properties = properties.await(),
classlikes = classlikes.await(),
typealiases = typealiases.await(),
sources = actual,
expectPresentInSet = sourceSet.takeIf { isExpect },
visibility = descriptor.visibility.toDokkaVisibility().toSourceSetDependent(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import org.jetbrains.dokka.analysis.kotlin.symbols.kdoc.hasGeneratedKDocDocument
import org.jetbrains.dokka.analysis.kotlin.symbols.translators.AnnotationTranslator.Companion.getPresentableName
import org.jetbrains.dokka.analysis.kotlin.symbols.utils.typeConstructorsBeingExceptions
import org.jetbrains.dokka.links.*
import org.jetbrains.dokka.links.Callable
import org.jetbrains.dokka.model.*
import org.jetbrains.dokka.model.Visibility
import org.jetbrains.dokka.model.doc.*
Expand Down Expand Up @@ -189,7 +188,7 @@ internal class DokkaSymbolVisitor(
val isActual = namedClassSymbol.isActual
val documentation = getDocumentation(namedClassSymbol)?.toSourceSetDependent() ?: emptyMap()

val (constructors, functions, properties, classlikesWithoutCompanion) = getDokkaScopeFrom(namedClassSymbol, dri)
val (constructors, functions, properties, classlikesWithoutCompanion, typeAliases) = getDokkaScopeFrom(namedClassSymbol, dri)

val companionObject = namedClassSymbol.companionObject?.let {
visitClassSymbol(
Expand Down Expand Up @@ -222,6 +221,7 @@ internal class DokkaSymbolVisitor(
functions = functions,
properties = properties,
classlikes = classlikes,
typealiases = typeAliases,
sources = namedClassSymbol.getSource(),
expectPresentInSet = sourceSet.takeIf { isExpect },
visibility = namedClassSymbol.getDokkaVisibility().toSourceSetDependent(),
Expand All @@ -245,6 +245,7 @@ internal class DokkaSymbolVisitor(
functions = functions,
properties = properties,
classlikes = classlikes,
typealiases = typeAliases,
sources = namedClassSymbol.getSource(),
expectPresentInSet = sourceSet.takeIf { isExpect },
visibility = namedClassSymbol.getDokkaVisibility().toSourceSetDependent(),
Expand All @@ -269,6 +270,7 @@ internal class DokkaSymbolVisitor(
functions = functions,
properties = properties,
classlikes = classlikes,
typealiases = typeAliases,
sources = namedClassSymbol.getSource(), //
expectPresentInSet = sourceSet.takeIf { isExpect },
visibility = namedClassSymbol.getDokkaVisibility().toSourceSetDependent(),
Expand Down Expand Up @@ -343,6 +345,7 @@ internal class DokkaSymbolVisitor(
functions = functions,
properties = properties,
classlikes = classlikes,
typealiases = typeAliases,
sources = namedClassSymbol.getSource(),
expectPresentInSet = sourceSet.takeIf { isExpect },
visibility = namedClassSymbol.getDokkaVisibility().toSourceSetDependent(),
Expand Down Expand Up @@ -371,7 +374,8 @@ internal class DokkaSymbolVisitor(
val constructors: List<DFunction>,
val functions: List<DFunction>,
val properties: List<DProperty>,
val classlikesWithoutCompanion: List<DClasslike>
val classlikesWithoutCompanion: List<DClasslike>,
val typeAliases: List<DTypeAlias>,
)

/**
Expand Down Expand Up @@ -400,7 +404,10 @@ internal class DokkaSymbolVisitor(

// Dokka K1 does not show inherited nested and inner classes,
// so it should show only classifiers (classes and objects) explicitly declared
val classifiers = if(includeStaticScope) namedClassOrObjectSymbol.staticMemberScope.classifiers else emptySequence()
val classifiers = when {
includeStaticScope -> namedClassOrObjectSymbol.staticMemberScope.classifiers.toList()
else -> emptyList()
}

val syntheticJavaProperties =
namedClassOrObjectSymbol.defaultType.syntheticJavaPropertiesScope?.getCallableSignatures()
Expand Down Expand Up @@ -429,21 +436,24 @@ internal class DokkaSymbolVisitor(
syntheticJavaProperties.map { visitPropertySymbol(it, dri) } +
javaFields.map { visitJavaFieldSymbol(it, dri) }

val typealiases = classifiers.filterIsInstance<KaTypeAliasSymbol>()
.map { visitTypeAliasSymbol(it, dri) }

fun Sequence<KaNamedClassSymbol>.filterOutCompanion() =
fun List<KaNamedClassSymbol>.filterOutCompanion() =
filterNot {
it.classKind == KaClassKind.COMPANION_OBJECT
}

val classlikes = classifiers.filterIsInstance<KaNamedClassSymbol>()
.filterOutCompanion() // also, this is a hack to filter out companion for enum
.filterOutCompanion()
.map { visitClassSymbol(it, dri) }

return DokkaScope(
constructors = constructors,
functions = functions,
properties = properties,
classlikesWithoutCompanion = classlikes.toList()
classlikesWithoutCompanion = classlikes,
typeAliases = typealiases,
)
}

Expand Down
Loading
Loading