FIR: Add test for three receivers
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
|
||||||
|
class Bar {
|
||||||
|
fun FooBar.invoke(): Bar = this
|
||||||
|
}
|
||||||
|
|
||||||
|
class Buz
|
||||||
|
|
||||||
|
class FooBar
|
||||||
|
|
||||||
|
class Foo {
|
||||||
|
val Buz.foobar: Bar get() = Bar()
|
||||||
|
|
||||||
|
fun FooBar.chk(buz: Buz) {
|
||||||
|
buz.foobar()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
FILE: threeReceivers.kt
|
||||||
|
public final class Bar {
|
||||||
|
public constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
|
public final function invoke R|FooBar|.(): R|Bar| {
|
||||||
|
return@@@invoke this#
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public final class Buz {
|
||||||
|
public constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
|
}
|
||||||
|
public final class FooBar {
|
||||||
|
public constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
|
}
|
||||||
|
public final class Foo {
|
||||||
|
public constructor(): super<R|kotlin/Any|>()
|
||||||
|
|
||||||
|
public final property foobar R|Buz|.(val): R|Bar|
|
||||||
|
public get(): R|Bar| {
|
||||||
|
return R|/Bar.Bar|()
|
||||||
|
}
|
||||||
|
|
||||||
|
public final function chk R|FooBar|.(buz: R|Buz|): R|kotlin/Unit| {
|
||||||
|
R|<local>/buz|.R|/Foo.foobar|.R|/Bar.invoke|()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+5
@@ -205,6 +205,11 @@ public class FirResolveTestCaseGenerated extends AbstractFirResolveTestCase {
|
|||||||
public void testFarInvokeExtension() throws Exception {
|
public void testFarInvokeExtension() throws Exception {
|
||||||
runTest("compiler/fir/resolve/testData/resolve/expresssions/invoke/farInvokeExtension.kt");
|
runTest("compiler/fir/resolve/testData/resolve/expresssions/invoke/farInvokeExtension.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("threeReceivers.kt")
|
||||||
|
public void testThreeReceivers() throws Exception {
|
||||||
|
runTest("compiler/fir/resolve/testData/resolve/expresssions/invoke/threeReceivers.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user