FIR: introduce JvmPlatformOverloadsConflictResolver
The added here JvmPlatformOverloadsConflictResolver prefers Java field to property in case of conflicts.
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
// !LANGUAGE: +PreferJavaFieldOverload
|
||||
|
||||
// FILE: B.java
|
||||
|
||||
public abstract class B implements A {
|
||||
public int size = 1;
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
interface A {
|
||||
val size: Int
|
||||
}
|
||||
|
||||
class C : B() {
|
||||
override val size: Int get() = 1
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
C().<!OVERLOAD_RESOLUTION_AMBIGUITY!>size<!>
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +PreferJavaFieldOverload
|
||||
|
||||
// FILE: B.java
|
||||
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
// SKIP_TXT
|
||||
// !LANGUAGE: +PreferJavaFieldOverload
|
||||
// !CHECK_TYPE
|
||||
|
||||
// FILE: CompressionType.java
|
||||
public enum CompressionType {
|
||||
ZIP(1.0);
|
||||
public final double name;
|
||||
CompressionType(double name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: CollectionWithSize.java
|
||||
public abstract class CollectionWithSize implements java.util.Collection<String> {
|
||||
public final String size = "";
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
fun main(c: CollectionWithSize) {
|
||||
CompressionType.ZIP.<!OVERLOAD_RESOLUTION_AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Double>() }
|
||||
c.<!OVERLOAD_RESOLUTION_AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
|
||||
|
||||
CompressionType.ZIP::<!UNRESOLVED_REFERENCE!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
c::<!UNRESOLVED_REFERENCE!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// SKIP_TXT
|
||||
// !LANGUAGE: +PreferJavaFieldOverload
|
||||
// !CHECK_TYPE
|
||||
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
// SKIP_TXT
|
||||
// !LANGUAGE: +PreferJavaFieldOverload +NewInference
|
||||
// !CHECK_TYPE
|
||||
|
||||
// FILE: CompressionType.java
|
||||
public enum CompressionType {
|
||||
ZIP(1.0);
|
||||
public final double name;
|
||||
CompressionType(double name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: CollectionWithSize.java
|
||||
public abstract class CollectionWithSize implements java.util.Collection<String> {
|
||||
public final String size = "";
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
fun main(c: CollectionWithSize) {
|
||||
CompressionType.ZIP.<!OVERLOAD_RESOLUTION_AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><Double>() }
|
||||
c.<!OVERLOAD_RESOLUTION_AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><String>() }
|
||||
|
||||
CompressionType.ZIP::<!UNRESOLVED_REFERENCE!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
c::<!UNRESOLVED_REFERENCE!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!INAPPLICABLE_CANDIDATE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// SKIP_TXT
|
||||
// !LANGUAGE: +PreferJavaFieldOverload +NewInference
|
||||
// !CHECK_TYPE
|
||||
|
||||
Reference in New Issue
Block a user