From b7c4beec1b6317b1ceaf2520464996e9ee0e93e5 Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Tue, 23 Jun 2020 13:09:09 +0200 Subject: Make inherited functions and implemented intefaces source set dependent --- core/src/main/kotlin/model/documentableProperties.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'core/src') diff --git a/core/src/main/kotlin/model/documentableProperties.kt b/core/src/main/kotlin/model/documentableProperties.kt index 699a1df1..1a0c6303 100644 --- a/core/src/main/kotlin/model/documentableProperties.kt +++ b/core/src/main/kotlin/model/documentableProperties.kt @@ -4,11 +4,11 @@ import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.model.properties.ExtraProperty import org.jetbrains.dokka.model.properties.MergeStrategy -data class InheritedFunction(val inheritedFrom: DRI?): ExtraProperty { +data class InheritedFunction(val inheritedFrom: SourceSetDependent): ExtraProperty { companion object : ExtraProperty.Key { - override fun mergeStrategyFor(left: InheritedFunction, right: InheritedFunction) = MergeStrategy.Fail { - throw IllegalArgumentException("Function inheritance should be consistent!") - } + override fun mergeStrategyFor(left: InheritedFunction, right: InheritedFunction) = MergeStrategy.Replace( + InheritedFunction(left.inheritedFrom + right.inheritedFrom) + ) } val isInherited: Boolean @@ -17,11 +17,11 @@ data class InheritedFunction(val inheritedFrom: DRI?): ExtraProperty override val key: ExtraProperty.Key = InheritedFunction } -data class ImplementedInterfaces(val interfaces: List): ExtraProperty { +data class ImplementedInterfaces(val interfaces: SourceSetDependent>): ExtraProperty { companion object : ExtraProperty.Key { - override fun mergeStrategyFor(left: ImplementedInterfaces, right: ImplementedInterfaces) = MergeStrategy.Fail { - throw IllegalArgumentException("Implemented interfaces should be consistent!") - } + override fun mergeStrategyFor(left: ImplementedInterfaces, right: ImplementedInterfaces) = MergeStrategy.Replace( + ImplementedInterfaces(left.interfaces + right.interfaces) + ) } override val key: ExtraProperty.Key = ImplementedInterfaces -- cgit