diff options
author | Dmitry Jemerov <yole@jetbrains.com> | 2015-02-10 18:55:12 +0100 |
---|---|---|
committer | Dmitry Jemerov <yole@jetbrains.com> | 2015-02-10 18:55:12 +0100 |
commit | e1a3884fdce26bb28b7580627ffad0d69b8bed61 (patch) | |
tree | d32962bbd572f2fec2e9f513881248a52e43f4c7 /src/Model | |
parent | 0d0fc1f2bf8f09106e53626bc024298dc91361b8 (diff) | |
download | dokka-e1a3884fdce26bb28b7580627ffad0d69b8bed61.tar.gz dokka-e1a3884fdce26bb28b7580627ffad0d69b8bed61.tar.bz2 dokka-e1a3884fdce26bb28b7580627ffad0d69b8bed61.zip |
more sane handling of overloads: don't duplicate signatures, show all documentation of a group of overloads with exactly the same documentation together
Diffstat (limited to 'src/Model')
-rw-r--r-- | src/Model/Content.kt | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/Model/Content.kt b/src/Model/Content.kt index 165865a0..f264d623 100644 --- a/src/Model/Content.kt +++ b/src/Model/Content.kt @@ -18,6 +18,12 @@ public open class ContentBlock() : ContentNode() { } fun isEmpty() = children.isEmpty() + + override fun equals(other: Any?): Boolean = + other is ContentBlock && javaClass == other.javaClass && children == other.children + + override fun hashCode(): Int = + children.hashCode() } public data class ContentText(val text: String) : ContentNode() @@ -31,11 +37,33 @@ public class ContentStrong() : ContentBlock() public class ContentStrikethrough() : ContentBlock() public class ContentCode() : ContentBlock() public class ContentBlockCode() : ContentBlock() -public class ContentNodeLink(val node : DocumentationNode) : ContentBlock() -public class ContentExternalLink(val href : String) : ContentBlock() + +public class ContentNodeLink(val node : DocumentationNode) : ContentBlock() { + override fun equals(other: Any?): Boolean = + super.equals(other) && other is ContentNodeLink && node == other.node + + override fun hashCode(): Int = + children.hashCode() * 31 + node.hashCode() +} + +public class ContentExternalLink(val href : String) : ContentBlock() { + override fun equals(other: Any?): Boolean = + super.equals(other) && other is ContentExternalLink && href == other.href + + override fun hashCode(): Int = + children.hashCode() * 31 + href.hashCode() +} + public class ContentList() : ContentBlock() public class ContentListItem() : ContentBlock() -public class ContentSection(public val tag: String, public val subjectName: String?) : ContentBlock() + +public class ContentSection(public val tag: String, public val subjectName: String?) : ContentBlock() { + override fun equals(other: Any?): Boolean = + super.equals(other) && other is ContentSection && tag == other.tag && subjectName == other.subjectName + + override fun hashCode(): Int = + children.hashCode() * 31 * 31 + tag.hashCode() * 31 + (subjectName?.hashCode() ?: 0) +} fun content(body: ContentBlock.() -> Unit): ContentBlock { val block = ContentBlock() |