Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/invokePriority.txt
T
Denis Zharkov 6cc6b9efcb FIR: Fix overload resolution for some invoke cases
Namely, it's about the cases when there are multiple variable candidates
with the same priority and all of them should be collected and compared
2020-04-02 12:10:50 +03:00

80 lines
2.4 KiB
Plaintext
Vendored

FILE: invokePriority.kt
public final class A : R|kotlin/Any| {
public constructor(): R|A| {
super<R|kotlin/Any|>()
}
public final fun bar(): R|kotlin/Unit| {
lval foo: R|kotlin/String.() -> kotlin/Unit| = fun R|kotlin/String|.<anonymous>(): R|kotlin/Unit| {
Unit
}
local final fun R|kotlin/String|.foo(): R|kotlin/Unit| {
}
String(1).R|<local>/foo|()
R|kotlin/with|<R|kotlin/String|, R|kotlin/Unit|>(String(2), <L> = with@fun R|kotlin/String|.<anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
this@R|special/anonymous|.R|<local>/foo|()
}
)
}
}
public final class B : R|kotlin/Any| {
public constructor(): R|B| {
super<R|kotlin/Any|>()
}
public final val foo: R|kotlin/String.() -> kotlin/Unit| = fun R|kotlin/String|.<anonymous>(): R|kotlin/Unit| {
Unit
}
public get(): R|kotlin/String.() -> kotlin/Unit|
public final fun R|kotlin/String|.foo(): R|kotlin/Unit| {
}
public final fun bar(): R|kotlin/Unit| {
(this@R|/B|, String(1)).R|/B.foo|()
R|kotlin/with|<R|kotlin/String|, R|kotlin/Unit|>(String(2), <L> = with@fun R|kotlin/String|.<anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
(this@R|/B|, this@R|special/anonymous|).R|/B.foo|()
}
)
}
}
public final class E : R|kotlin/Any| {
public constructor(): R|E| {
super<R|kotlin/Any|>()
}
public final object f : R|kotlin/Any| {
private constructor(): R|E.f| {
super<R|kotlin/Any|>()
}
public final operator fun invoke(): R|kotlin/Unit| {
^invoke Q|kotlin/Unit|
}
}
public final companion object Companion : R|kotlin/Any| {
private constructor(): R|E.Companion| {
super<R|kotlin/Any|>()
}
public final val f: R|() -> kotlin/Unit| = fun <anonymous>(): R|kotlin/Unit| {
Unit
}
public get(): R|() -> kotlin/Unit|
}
}
public final fun main(): R|kotlin/Unit| {
Q|E|.<Ambiguity: f, [/E.f.invoke, kotlin/Function0.invoke]>#()
Q|E.f|.R|/E.f.invoke|()
}