aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Model/DocumentationBuilder.kt7
-rw-r--r--test/data/classes/genericClass.kt3
-rw-r--r--test/data/functions/genericFunction.kt5
-rw-r--r--test/playground.kt1
-rw-r--r--test/src/model/ClassTest.kt22
-rw-r--r--test/src/model/FunctionTest.kt22
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()) {