Don't discriminate generics during callable references resolution
^KT-49038 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
23f6c29efc
commit
abd2507107
@@ -0,0 +1,13 @@
|
||||
fun take(arg: Any) {}
|
||||
|
||||
fun <T> foo(a: A, t: T) {} // 1
|
||||
fun <T> foo(b: B, t : T) {} // 2
|
||||
fun foo(i: Int) {} // 3
|
||||
|
||||
class A
|
||||
class B
|
||||
|
||||
fun box(): String {
|
||||
val ref1 = take(::foo) // error before 1.6.20; ok, resolved to (3) since 1.6.20
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
fun take(arg: Any) {}
|
||||
|
||||
fun <T> foo(a: A, t: T) {} // 1
|
||||
fun <T> foo(b: B, t : T) {} // 2
|
||||
fun foo(i: Int) {} // 3
|
||||
|
||||
class A
|
||||
class B
|
||||
|
||||
fun box(): String {
|
||||
val ref1 = take(::<!CALLABLE_REFERENCE_RESOLUTION_AMBIGUITY!>foo<!>) // error before 1.6.20; ok, resolved to (3) since 1.6.20
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package
|
||||
|
||||
public fun box(): kotlin.String
|
||||
public fun </*0*/ T> foo(/*0*/ a: A, /*1*/ t: T): kotlin.Unit
|
||||
public fun </*0*/ T> foo(/*0*/ b: B, /*1*/ t: T): kotlin.Unit
|
||||
public fun foo(/*0*/ i: kotlin.Int): kotlin.Unit
|
||||
public fun take(/*0*/ arg: kotlin.Any): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class B {
|
||||
public constructor B()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Reference in New Issue
Block a user