aboutsummaryrefslogtreecommitdiff
path: root/plugins/base/src/test
diff options
context:
space:
mode:
authorVadim Mishenev <vad-mishenev@yandex.ru>2022-10-21 13:59:28 +0300
committerGitHub <noreply@github.com>2022-10-21 13:59:28 +0300
commit4c122a4d46f9f100e1508b602942c571067a1d88 (patch)
treef0f7a24cc0b383fd7c79fa2fc9d71514c476d8fb /plugins/base/src/test
parentcacdcd9739bb4fefb5a92cefd30ec58a172db148 (diff)
downloaddokka-4c122a4d46f9f100e1508b602942c571067a1d88.tar.gz
dokka-4c122a4d46f9f100e1508b602942c571067a1d88.tar.bz2
dokka-4c122a4d46f9f100e1508b602942c571067a1d88.zip
Fix inheriting docs in case of diamond inheritance (#2686)
Diffstat (limited to 'plugins/base/src/test')
-rw-r--r--plugins/base/src/test/kotlin/model/InheritorsTest.kt59
1 files changed, 50 insertions, 9 deletions
diff --git a/plugins/base/src/test/kotlin/model/InheritorsTest.kt b/plugins/base/src/test/kotlin/model/InheritorsTest.kt
index 151783a9..49d02e4c 100644
--- a/plugins/base/src/test/kotlin/model/InheritorsTest.kt
+++ b/plugins/base/src/test/kotlin/model/InheritorsTest.kt
@@ -106,15 +106,6 @@ class InheritorsTest : AbstractModelTest("/src/main/kotlin/inheritors/Test.kt",
}
}
}
- interface A<E> {
- val a: E
- }
-
- open class C
- class B<E>() : C(), A<E> {
- override val a: E
- get() = TODO("Not yet implemented")
- }
@Test
fun `should inherit docs`() {
@@ -370,4 +361,54 @@ class InheritorsTest : AbstractModelTest("/src/main/kotlin/inheritors/Test.kt",
}
}
}
+
+ @Test
+ fun `should inherit docs in case of diamond inheritance`() {
+ inlineModelTest(
+ """
+ public interface Collection2<out E> {
+ /**
+ * Returns `true` if the collection is empty (contains no elements), `false` otherwise.
+ */
+ public fun isEmpty(): Boolean
+
+ /**
+ * Checks if the specified element is contained in this collection.
+ */
+ public operator fun contains(element: @UnsafeVariance E): Boolean
+ }
+
+ public interface MutableCollection2<E> : Collection2<E>, MutableIterable2<E>
+
+
+ public interface List2<out E> : Collection2<E> {
+ override fun isEmpty(): Boolean
+ override fun contains(element: @UnsafeVariance E): Boolean
+ }
+
+ public interface MutableList2<E> : List2<E>, MutableCollection2<E>
+
+ public class AbstractMutableList2<E> : MutableList2<E> {
+ protected constructor()
+
+ // From List
+
+ override fun isEmpty(): Boolean = size == 0
+ public override fun contains(element: E): Boolean = indexOf(element) != -1
+ }
+ public class ArrayDeque2<E> : AbstractMutableList2<E> {
+ override fun isEmpty(): Boolean = size == 0
+ public override fun contains(element: E): Boolean = indexOf(element) != -1
+
+ }
+ """.trimMargin()
+ ) {
+ with((this / "inheritors" / "ArrayDeque2" / "isEmpty").cast<DFunction>()) {
+ documentation.size equals 1
+ }
+ with((this / "inheritors" / "ArrayDeque2" / "contains").cast<DFunction>()) {
+ documentation.size equals 1
+ }
+ }
+ }
}