Choose Java field during overload resolution with a pure Kotlin property
^KT-31244 Fixed
This commit is contained in:
+27
@@ -0,0 +1,27 @@
|
||||
// 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.<!AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Double>() }
|
||||
c.<!AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><String>() }
|
||||
|
||||
CompressionType.ZIP::name checkType { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
c::size checkType { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// 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.name checkType { _<Double>() }
|
||||
c.size checkType { _<String>() }
|
||||
|
||||
CompressionType.ZIP::name checkType { _<kotlin.reflect.KProperty0<Double>>() }
|
||||
c::size checkType { _<kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// SKIP_TXT
|
||||
// !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.<!AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Double>() }
|
||||
c.<!AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><String>() }
|
||||
|
||||
CompressionType.ZIP::name checkType { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
c::size checkType { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
// SKIP_TXT
|
||||
// !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<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Double>() }
|
||||
c.<!OVERLOAD_RESOLUTION_AMBIGUITY!>size<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><String>() }
|
||||
|
||||
CompressionType.ZIP::<!OVERLOAD_RESOLUTION_AMBIGUITY!>name<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
c::<!OVERLOAD_RESOLUTION_AMBIGUITY!>size<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
// 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.<!AMBIGUITY!>name<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><Double>() }
|
||||
c.<!AMBIGUITY!>size<!> <!INAPPLICABLE_CANDIDATE!>checkType<!> { <!UNRESOLVED_REFERENCE!>_<!><String>() }
|
||||
|
||||
CompressionType.ZIP::name checkType { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<Double>>() }
|
||||
c::size checkType { <!UNRESOLVED_REFERENCE!>_<!><kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
// 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.name checkType { _<Double>() }
|
||||
c.size checkType { _<String>() }
|
||||
|
||||
CompressionType.ZIP::name checkType { _<kotlin.reflect.KProperty0<Double>>() }
|
||||
c::size checkType { _<kotlin.reflect.KProperty0<String>>() }
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// SKIP_TXT
|
||||
// !LANGUAGE: +PreferJavaFieldOverload
|
||||
// FILE: a/JClass.java
|
||||
package a;
|
||||
public class JClass {
|
||||
public static int foo = 42;
|
||||
}
|
||||
// FILE: a.kt
|
||||
package b
|
||||
val foo = 42
|
||||
|
||||
// FILE: b.kt
|
||||
|
||||
import a.JClass.foo
|
||||
import b.foo
|
||||
fun test() { <!AMBIGUITY!>foo<!> }
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// SKIP_TXT
|
||||
// !LANGUAGE: +PreferJavaFieldOverload
|
||||
// FILE: a/JClass.java
|
||||
package a;
|
||||
public class JClass {
|
||||
public static int foo = 42;
|
||||
}
|
||||
// FILE: a.kt
|
||||
package b
|
||||
val foo = 42
|
||||
|
||||
// FILE: b.kt
|
||||
|
||||
import a.JClass.foo
|
||||
import b.foo
|
||||
fun test() { <!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!> }
|
||||
Reference in New Issue
Block a user