diff options
Diffstat (limited to 'src/Generation/KotlinSignatureGenerator.kt')
-rw-r--r-- | src/Generation/KotlinSignatureGenerator.kt | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/Generation/KotlinSignatureGenerator.kt b/src/Generation/KotlinSignatureGenerator.kt index 1fae62f0..e73dd8d9 100644 --- a/src/Generation/KotlinSignatureGenerator.kt +++ b/src/Generation/KotlinSignatureGenerator.kt @@ -29,7 +29,20 @@ class KotlinSignatureGenerator : SignatureGenerator { } override fun renderType(node: DocumentationNode): String { - return node.name + val typeArguments = node.details(Kind.Type) + val renders = typeArguments.map { renderType(it) } + + if (node.name == "Function${typeArguments.count() - 1}") { + // lambda + return "(${renders.take(renders.size - 1).join()})->${renders.last()}" + } + if (node.name == "ExtensionFunction${typeArguments.count() - 2}") { + // extension lambda + return "${renders.first()}.(${renders.drop(1).take(renders.size - 2).join()})->${renders.last()}" + } + if (typeArguments.none()) + return node.name + return "${node.name}<${renders.join()}>" } override fun renderModifier(node: DocumentationNode): String { |