diff options
-rw-r--r-- | src/Model/DocumentationBuilder.kt | 7 | ||||
-rw-r--r-- | test/data/classes/genericClass.kt | 3 | ||||
-rw-r--r-- | test/data/functions/genericFunction.kt | 5 | ||||
-rw-r--r-- | test/playground.kt | 1 | ||||
-rw-r--r-- | test/src/model/ClassTest.kt | 22 | ||||
-rw-r--r-- | test/src/model/FunctionTest.kt | 22 |
6 files changed, 60 insertions, 0 deletions
diff --git a/src/Model/DocumentationBuilder.kt b/src/Model/DocumentationBuilder.kt index e28d437f..2afe366b 100644 --- a/src/Model/DocumentationBuilder.kt +++ b/src/Model/DocumentationBuilder.kt @@ -51,6 +51,13 @@ class DocumentationBuilderVisitor(val context: BindingContext) : DeclarationDesc return node } + override fun visitTypeParameterDescriptor(descriptor: TypeParameterDescriptor?, data: DocumentationNode?): DocumentationNode? { + val doc = context.getDocumentation(descriptor!!) + val node = DocumentationNode(descriptor.getName().asString(), doc, DocumentationNodeKind.TypeParameter) + data?.addReferenceTo(node, DocumentationReferenceKind.Detail) + return node + } + override fun visitPropertyDescriptor(descriptor: PropertyDescriptor?, data: DocumentationNode?): DocumentationNode? { val doc = context.getDocumentation(descriptor!!) val node = DocumentationNode(descriptor.getName().asString(), doc, DocumentationNodeKind.Property) diff --git a/test/data/classes/genericClass.kt b/test/data/classes/genericClass.kt new file mode 100644 index 00000000..db20ff7e --- /dev/null +++ b/test/data/classes/genericClass.kt @@ -0,0 +1,3 @@ +class Klass<T> { + +}
\ No newline at end of file diff --git a/test/data/functions/genericFunction.kt b/test/data/functions/genericFunction.kt new file mode 100644 index 00000000..6e07d04b --- /dev/null +++ b/test/data/functions/genericFunction.kt @@ -0,0 +1,5 @@ + +/** + * generic function + */ +fun <T> generic() {}
\ No newline at end of file diff --git a/test/playground.kt b/test/playground.kt index 455e56ff..38fd4a3f 100644 --- a/test/playground.kt +++ b/test/playground.kt @@ -40,6 +40,7 @@ class ClassWithConstructor(val name: String) data class Person(/** Doc at parameter */ val name: String, val age: Int) {} object Object { + throws(javaClass<IllegalArgumentException>()) fun objectFunction() { } diff --git a/test/src/model/ClassTest.kt b/test/src/model/ClassTest.kt index 708a1798..82d24f16 100644 --- a/test/src/model/ClassTest.kt +++ b/test/src/model/ClassTest.kt @@ -18,6 +18,28 @@ public class ClassTest { } } + Test fun genericClass() { + verifyModel("test/data/classes/genericClass.kt") { model -> + with(model.nodes.single().members.single()) { + assertEquals(DocumentationNodeKind.Class, kind) + assertEquals("Klass", name) + assertEquals("", doc) + + with(details.single()) { + assertEquals("T", name) + assertEquals(DocumentationNodeKind.TypeParameter, kind) + assertEquals("", doc) + assertTrue(details.none()) + assertTrue(members.none()) + assertTrue(links.none()) + } + + assertEquals("<init>", members.single().name) + assertTrue(links.none()) + } + } + } + Test fun emptyObject() { verifyModel("test/data/classes/emptyObject.kt") { model -> with(model.nodes.single().members.single()) { diff --git a/test/src/model/FunctionTest.kt b/test/src/model/FunctionTest.kt index 528166e6..c2a444b9 100644 --- a/test/src/model/FunctionTest.kt +++ b/test/src/model/FunctionTest.kt @@ -18,6 +18,28 @@ public class FunctionTest { } } + Test fun genericFunction() { + verifyModel("test/data/functions/genericFunction.kt") { model -> + with(model.nodes.single().members.single()) { + assertEquals("generic", name) + assertEquals(DocumentationNodeKind.Function, kind) + assertEquals("generic function", doc) + + with(details.single()) { + assertEquals("T", name) + assertEquals(DocumentationNodeKind.TypeParameter, kind) + assertEquals("", doc) + assertTrue(details.none()) + assertTrue(members.none()) + assertTrue(links.none()) + } + + assertTrue(members.none()) + assertTrue(links.none()) + } + } + } + Test fun functionWithParams() { verifyModel("test/data/functions/functionWithParams.kt") { model -> with(model.nodes.single().members.single()) { |