File tree Expand file tree Collapse file tree 2 files changed +5
-4
lines changed
src/org/jetbrains/dukat/model/commonLowerings/overrides Expand file tree Collapse file tree 2 files changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ dependencies {
6
6
implementation(project(" :ast-common" ))
7
7
implementation(project(" :ast-model" ))
8
8
implementation(project(" :graphs" ))
9
+ implementation(project(" :itertools" ))
9
10
implementation(project(" :logging" ))
10
11
implementation(project(" :ownerContext" ))
11
12
implementation(project(" :panic" ))
Original file line number Diff line number Diff line change 1
1
package org.jetbrains.dukat.model.commonLowerings.overrides
2
2
3
+ import cartesian
3
4
import org.jetbrains.dukat.astCommon.IdentifierEntity
4
5
import org.jetbrains.dukat.astCommon.NameEntity
5
6
import org.jetbrains.dukat.astCommon.appendLeft
@@ -20,7 +21,6 @@ import org.jetbrains.dukat.model.commonLowerings.OverrideTypeChecker
20
21
import org.jetbrains.dukat.model.commonLowerings.allParentMembers
21
22
import org.jetbrains.dukat.model.commonLowerings.buildInheritanceGraph
22
23
import org.jetbrains.dukat.ownerContext.NodeOwner
23
- import org.jetbrains.dukat.ownerContext.wrap
24
24
25
25
private fun PropertyModel.toVal (): PropertyModel {
26
26
return copy(
@@ -42,10 +42,10 @@ private class VarOverrideResolver(
42
42
): List <List <MemberData >> {
43
43
return parentMembers.keys.mapNotNull { name ->
44
44
val properties = parentMembers[name].orEmpty().filter { it.memberModel is PropertyModel }
45
- if (properties.isEmpty() || properties.all {
45
+ if (properties.isEmpty() || cartesian( properties, properties) .all { (first, second) ->
46
46
with (typeChecker) {
47
- (it .memberModel as PropertyModel ).type.isEquivalent((properties[ 0 ] .memberModel as PropertyModel ).type)
48
- }
47
+ (first .memberModel as PropertyModel ).type.isEquivalent((second .memberModel as PropertyModel ).type)
48
+ } || inheritanceContext.areRelated(first.ownerModel, second.ownerModel)
49
49
}) {
50
50
null
51
51
} else {
You can’t perform that action at this time.
0 commit comments