diff options
author | vmishenev <vad-mishenev@yandex.ru> | 2021-09-03 13:58:46 +0300 |
---|---|---|
committer | vmishenev <vad-mishenev@yandex.ru> | 2021-09-08 03:51:58 +0300 |
commit | 37243ad7a5152d4f0f30bb8f1446d4d5c6ce2094 (patch) | |
tree | 8c22472130388c55c525ea24de1b2f2633981c73 | |
parent | 88ff6bdfb90c7f2a141c0534f69ebf95080db4ea (diff) | |
download | dokka-37243ad7a5152d4f0f30bb8f1446d4d5c6ce2094.tar.gz dokka-37243ad7a5152d4f0f30bb8f1446d4d5c6ce2094.tar.bz2 dokka-37243ad7a5152d4f0f30bb8f1446d4d5c6ce2094.zip |
Fix links of inherited properties, do not generate pages for them
3 files changed, 27 insertions, 3 deletions
diff --git a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt index 3dc2385a..04716e16 100644 --- a/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt +++ b/plugins/base/src/main/kotlin/translators/descriptors/DefaultDescriptorToDocumentableTranslator.kt @@ -420,9 +420,8 @@ private class DokkaDescriptorVisitor( originalDescriptor: PropertyDescriptor, parent: DRIWithPlatformInfo ): DProperty { - val dri = parent.dri.copy(callable = Callable.from(originalDescriptor)) + val (dri, inheritedFrom) = originalDescriptor.createDRI() val descriptor = originalDescriptor.getConcreteDescriptor() - val inheritedFrom = descriptor.createDRI().let { (originalDri, _) -> originalDri.takeIf { it != dri } } val isExpect = descriptor.isExpect val isActual = descriptor.isActual diff --git a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt index 4b5fc1c0..5494e5e7 100644 --- a/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt +++ b/plugins/base/src/main/kotlin/translators/documentables/DefaultPageCreator.kt @@ -51,7 +51,7 @@ open class DefaultPageCreator( e.nameAfterClash(), contentForEnumEntry(e), setOf(e.dri), e, e.classlikes.renameClashingDocumentable().map(::pageForClasslike) + e.filteredFunctions.renameClashingDocumentable().map(::pageForFunction) + - e.properties.renameClashingDocumentable().mapNotNull(::pageForProperty) + e.filteredProperties.renameClashingDocumentable().mapNotNull(::pageForProperty) ) open fun pageForClasslike(c: DClasslike): ClasslikePageNode { diff --git a/plugins/base/src/test/kotlin/model/PropertyTest.kt b/plugins/base/src/test/kotlin/model/PropertyTest.kt index 8474116f..17f526f3 100644 --- a/plugins/base/src/test/kotlin/model/PropertyTest.kt +++ b/plugins/base/src/test/kotlin/model/PropertyTest.kt @@ -121,6 +121,7 @@ class PropertyTest : AbstractModelTest("/src/main/kotlin/property/Test.kt", "pro ) { with((this / "property").cast<DPackage>()) { with((this / "Foo" / "property").cast<DProperty>()) { + dri.classNames equals "Foo" name equals "property" children counts 0 with(getter.assertNotNull("Getter")) { @@ -128,6 +129,30 @@ class PropertyTest : AbstractModelTest("/src/main/kotlin/property/Test.kt", "pro } } with((this / "Bar" / "property").cast<DProperty>()) { + dri.classNames equals "Bar" + name equals "property" + children counts 0 + with(getter.assertNotNull("Getter")) { + type.name equals "Int" + } + } + } + } + } + + @Test + fun propertyInherited() { + inlineModelTest( + """ + |open class Foo() { + | open val property: Int get() = 0 + |} + |class Bar(): Foo() + """ + ) { + with((this / "property").cast<DPackage>()) { + with((this / "Bar" / "property").cast<DProperty>()) { + dri.classNames equals "Foo" name equals "property" children counts 0 with(getter.assertNotNull("Getter")) { |