From 9a642ef2e5042703ee2f55f1f0668b8c08aa035e Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Mon, 11 Mar 2019 16:48:34 +0300 Subject: [PATCH] FIR: Add test for three receivers --- .../expresssions/invoke/threeReceivers.kt | 17 +++++++++++ .../expresssions/invoke/threeReceivers.txt | 30 +++++++++++++++++++ .../fir/FirResolveTestCaseGenerated.java | 5 ++++ 3 files changed, 52 insertions(+) create mode 100644 compiler/fir/resolve/testData/resolve/expresssions/invoke/threeReceivers.kt create mode 100644 compiler/fir/resolve/testData/resolve/expresssions/invoke/threeReceivers.txt 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"); + } } }