[FIR] Do not use strict type equality in override checker
This commit is contained in:
+1
-1
@@ -31,7 +31,7 @@ class FirStandardOverrideChecker(session: FirSession) : FirAbstractOverrideCheck
|
|||||||
val baseIsFlexible = substitutedBaseType.isFlexible()
|
val baseIsFlexible = substitutedBaseType.isFlexible()
|
||||||
val candidateIsFlexible = substitutedCandidateType.isFlexible()
|
val candidateIsFlexible = substitutedCandidateType.isFlexible()
|
||||||
if (baseIsFlexible == candidateIsFlexible) {
|
if (baseIsFlexible == candidateIsFlexible) {
|
||||||
return strictEqualTypes(context, substitutedCandidateType, substitutedBaseType)
|
return AbstractTypeChecker.equalTypes(context, substitutedCandidateType, substitutedBaseType)
|
||||||
}
|
}
|
||||||
val lowerBound: SimpleTypeMarker
|
val lowerBound: SimpleTypeMarker
|
||||||
val upperBound: SimpleTypeMarker
|
val upperBound: SimpleTypeMarker
|
||||||
|
|||||||
+1
-1
@@ -17,5 +17,5 @@ interface B : A {
|
|||||||
// FILE: main.kt
|
// FILE: main.kt
|
||||||
|
|
||||||
fun test(visitor: KtVisitor<String, Unit>, element: B) {
|
fun test(visitor: KtVisitor<String, Unit>, element: B) {
|
||||||
element.<!AMBIGUITY!>accept<!>(visitor, Unit)
|
element.accept(visitor, Unit)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -5,5 +5,5 @@ FILE: B.kt
|
|||||||
}
|
}
|
||||||
FILE: main.kt
|
FILE: main.kt
|
||||||
public final fun test(visitor: R|KtVisitor<kotlin/String, kotlin/Unit>|, element: R|B|): R|kotlin/Unit| {
|
public final fun test(visitor: R|KtVisitor<kotlin/String, kotlin/Unit>|, element: R|B|): R|kotlin/Unit| {
|
||||||
R|<local>/element|.<Ambiguity: accept, [/B.accept, /A.accept]>#(R|<local>/visitor|, Q|kotlin/Unit|)
|
R|<local>/element|.R|/B.accept|<R|kotlin/String|, R|kotlin/Unit|>(R|<local>/visitor|, Q|kotlin/Unit|)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user