FIR: Add test for three receivers

This commit is contained in:
Simon Ogorodnik
2019-03-11 16:48:34 +03:00
parent 43315fd61d
commit 9a642ef2e5
3 changed files with 52 additions and 0 deletions
@@ -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|()
}
}
@@ -205,6 +205,11 @@ public class FirResolveTestCaseGenerated extends AbstractFirResolveTestCase {
public void testFarInvokeExtension() throws Exception {
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");
}
}
}