diff --git a/compiler/fir/resolve/testData/resolve/expresssions/invoke/threeReceivers.kt b/compiler/fir/resolve/testData/resolve/expresssions/invoke/threeReceivers.kt new file mode 100644 index 00000000000..9ab37a82079 --- /dev/null +++ b/compiler/fir/resolve/testData/resolve/expresssions/invoke/threeReceivers.kt @@ -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() + } +} diff --git a/compiler/fir/resolve/testData/resolve/expresssions/invoke/threeReceivers.txt b/compiler/fir/resolve/testData/resolve/expresssions/invoke/threeReceivers.txt new file mode 100644 index 00000000000..a70508c9c5f --- /dev/null +++ b/compiler/fir/resolve/testData/resolve/expresssions/invoke/threeReceivers.txt @@ -0,0 +1,30 @@ +FILE: threeReceivers.kt + public final class Bar { + public constructor(): super() + + public final function invoke R|FooBar|.(): R|Bar| { + return@@@invoke this# + } + + } + public final class Buz { + public constructor(): super() + + } + public final class FooBar { + public constructor(): super() + + } + public final class Foo { + public constructor(): super() + + 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|/buz|.R|/Foo.foobar|.R|/Bar.invoke|() + } + + } diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirResolveTestCaseGenerated.java b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirResolveTestCaseGenerated.java index 7b133283060..f27e616c5d8 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirResolveTestCaseGenerated.java +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirResolveTestCaseGenerated.java @@ -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"); + } } }