[FIR] Relax incompatibleEnumAndUnrelatedInterfaceThroughTypeParameter
This commit is contained in:
committed by
Space Team
parent
3058f2eaff
commit
c6bec2fa75
+3
-3
@@ -53,9 +53,9 @@ object FirEqualityCompatibilityChecker : FirEqualityOperatorCallChecker() {
|
|||||||
// sees a non-empty intersection and none of the
|
// sees a non-empty intersection and none of the
|
||||||
// types is an enum, but intersections in K1
|
// types is an enum, but intersections in K1
|
||||||
// work differently from intersections in K2.
|
// work differently from intersections in K2.
|
||||||
val isCaseMissedByK1 = (l.originalTypeInfo.isEnumClass == r.originalTypeInfo.isEnumClass)
|
val isCaseMissedByK1 = (l.originalTypeInfo.isLiterallyTypeParameter && r.originalTypeInfo.isLiterallyTypeParameter)
|
||||||
&& l.originalTypeInfo.isLiterallyTypeParameter
|
|| (l.originalTypeInfo.isLiterallyTypeParameter && r.originalTypeInfo.isEnumClass)
|
||||||
&& r.originalTypeInfo.isLiterallyTypeParameter
|
|| (l.originalTypeInfo.isEnumClass && r.originalTypeInfo.isLiterallyTypeParameter)
|
||||||
val replicateK1Behavior = !context.languageVersionSettings.supportsFeature(LanguageFeature.ReportErrorsForComparisonOperators)
|
val replicateK1Behavior = !context.languageVersionSettings.supportsFeature(LanguageFeature.ReportErrorsForComparisonOperators)
|
||||||
|
|
||||||
return reporter.reportInapplicabilityDiagnostic(
|
return reporter.reportInapplicabilityDiagnostic(
|
||||||
|
|||||||
+1
-1
@@ -107,6 +107,6 @@ interface A
|
|||||||
enum class G : B
|
enum class G : B
|
||||||
|
|
||||||
fun <I : A> incompatibleEnumAndUnrelatedInterfaceThroughTypeParameter(x: G?, i: I?) {
|
fun <I : A> incompatibleEnumAndUnrelatedInterfaceThroughTypeParameter(x: G?, i: I?) {
|
||||||
<!INCOMPATIBLE_ENUM_COMPARISON_ERROR!>x == i<!>
|
<!INCOMPATIBLE_ENUM_COMPARISON!>x == i<!>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user