aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Jemerov <yole@jetbrains.com>2015-02-26 15:48:01 +0100
committerDmitry Jemerov <yole@jetbrains.com>2015-02-26 15:48:01 +0100
commit6714d6574a14200175d1d3db903e50ef4267aaf7 (patch)
tree1c7bf00fa688af74f0f79062bd9b35f71981b853
parent6459ec0493241336c9db8dc6d53abce17f3126cd (diff)
downloaddokka-6714d6574a14200175d1d3db903e50ef4267aaf7.tar.gz
dokka-6714d6574a14200175d1d3db903e50ef4267aaf7.tar.bz2
dokka-6714d6574a14200175d1d3db903e50ef4267aaf7.zip
include receiver type and parameter types in the signature of a property
-rw-r--r--src/Kotlin/DocumentationBuilder.kt11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Kotlin/DocumentationBuilder.kt b/src/Kotlin/DocumentationBuilder.kt
index 1d7589a5..6ce7727c 100644
--- a/src/Kotlin/DocumentationBuilder.kt
+++ b/src/Kotlin/DocumentationBuilder.kt
@@ -74,7 +74,7 @@ class DocumentationBuilder(val session: ResolveSession,
fun DeclarationDescriptor.signature(): String = when(this) {
is ClassDescriptor, is PackageFragmentDescriptor -> DescriptorUtils.getFqName(this).asString()
- is PropertyDescriptor -> getContainingDeclaration().signature() + "#" + getName()
+ is PropertyDescriptor -> getContainingDeclaration().signature() + "#" + getName() + receiverSignature()
is FunctionDescriptor -> getContainingDeclaration().signature() + "#" + getName() + parameterSignature()
is ValueParameterDescriptor -> getContainingDeclaration().signature() + ":" + getName()
is TypeParameterDescriptor -> getContainingDeclaration().signature() + "<" + getName()
@@ -82,7 +82,14 @@ class DocumentationBuilder(val session: ResolveSession,
else -> throw UnsupportedOperationException("Don't know how to calculate signature for $this")
}
- fun FunctionDescriptor.parameterSignature(): String {
+ fun PropertyDescriptor.receiverSignature(): String {
+ if (getExtensionReceiverParameter() != null || getValueParameters().size() > 0) {
+ return "#" + parameterSignature()
+ }
+ return ""
+ }
+
+ fun CallableMemberDescriptor.parameterSignature(): String {
val params = getValueParameters().map { it.getType() }.toArrayList()
val extensionReceiver = getExtensionReceiverParameter()
if (extensionReceiver != null) {