From 43450355b04f52d64da5b29cff3f8fca87445f5b Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Thu, 13 Aug 2020 16:24:24 +0200 Subject: Add tests and add projections to javadoc --- .../kotlin/signatures/KotlinSignatureProvider.kt | 6 +-- .../src/test/kotlin/signatures/SignatureTest.kt | 54 ++++++++++++++++++++++ .../javadoc/signatures/JavadocSignatureProvider.kt | 6 +++ 3 files changed, 62 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt index bed8386d..16598acd 100644 --- a/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt +++ b/plugins/base/src/main/kotlin/signatures/KotlinSignatureProvider.kt @@ -186,10 +186,8 @@ class KotlinSignatureProvider(ctcc: CommentsToContentConverter, logger: DokkaLog c.supertypes.filter { it.key == sourceSet }.map { (s, typeConstructors) -> list(typeConstructors, prefix = " : ", sourceSets = setOf(s)) { link(it.typeConstructor.dri.sureClassNames, it.typeConstructor.dri, sourceSets = setOf(s)) - if ( it.typeConstructor.projections.isNotEmpty() ) { - list(it.typeConstructor.projections, prefix = "<", suffix = "> ") { - signatureForProjection(it) - } + list(it.typeConstructor.projections, prefix = "<", suffix = "> ") { + signatureForProjection(it) } } } diff --git a/plugins/base/src/test/kotlin/signatures/SignatureTest.kt b/plugins/base/src/test/kotlin/signatures/SignatureTest.kt index dd3d85c1..d23c45e9 100644 --- a/plugins/base/src/test/kotlin/signatures/SignatureTest.kt +++ b/plugins/base/src/test/kotlin/signatures/SignatureTest.kt @@ -239,6 +239,60 @@ class SignatureTest : AbstractCoreTest() { } } + @Test + fun `class with no supertype`() { + + val configuration = dokkaConfiguration { + sourceSets { + sourceSet { + sourceRoots = listOf("src/main/kotlin/test/Test.kt") + } + } + } + + val source = source("class SimpleClass") + val writerPlugin = TestOutputWriterPlugin() + + testInline( + source, + configuration, + pluginOverrides = listOf(writerPlugin) + ) { + renderingStage = { _, _ -> + writerPlugin.writer.renderedContent("root/example/-simple-class/index.html").firstSignature().match( + "class ", A("SimpleClass"), Span() + ) + } + } + } + + @Test + fun `class with generic supertype`() { + + val configuration = dokkaConfiguration { + sourceSets { + sourceSet { + sourceRoots = listOf("src/main/kotlin/test/Test.kt") + } + } + } + + val source = source("class InheritingClassFromGenericType : Comparable, Collection") + val writerPlugin = TestOutputWriterPlugin() + + testInline( + source, + configuration, + pluginOverrides = listOf(writerPlugin) + ) { + renderingStage = { _, _ -> + writerPlugin.writer.renderedContent("root/example/-inheriting-class-from-generic-type/index.html").firstSignature().match( + "class ", A("InheritingClassFromGenericType"), " <", A("T"), " : ", A("Number"), ", ", A("R"), " : ", A("CharSequence"), + "> : ", A("Comparable"), "<", A("T"), "> , ", A("Collection"), "<", A("R"), ">", Span() + ) + } + } + } @Test fun `fun with annotation`() { diff --git a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/signatures/JavadocSignatureProvider.kt b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/signatures/JavadocSignatureProvider.kt index 5e655b0d..cda7345a 100644 --- a/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/signatures/JavadocSignatureProvider.kt +++ b/plugins/javadoc/src/main/kotlin/org/jetbrains/dokka/javadoc/signatures/JavadocSignatureProvider.kt @@ -72,9 +72,15 @@ class JavadocSignatureProvider(ctcc: CommentsToContentConverter, logger: DokkaLo val (classes, interfaces) = dris.partition { it.kind == JavaClassKindTypes.CLASS } list(classes, prefix = "extends ", sourceSets = setOf(p)) { link(it.typeConstructor.dri.sureClassNames, it.typeConstructor.dri, sourceSets = setOf(p)) + list(it.typeConstructor.projections, prefix = "<", suffix = ">", sourceSets = setOf(p)) { + signatureForProjection(it) + } } list(interfaces, prefix = " implements ", sourceSets = setOf(p)){ link(it.typeConstructor.dri.sureClassNames, it.typeConstructor.dri, sourceSets = setOf(p)) + list(it.typeConstructor.projections, prefix = "<", suffix = ">", sourceSets = setOf(p)) { + signatureForProjection(it) + } } } } -- cgit