From bba816815063bf3f41afed034c8896e32f1af7cb Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Tue, 16 Jan 2018 14:58:15 +0300 Subject: [PATCH] Add test for extension properties declaration in IR --- .../declarations/extensionProperties.kt | 13 +++++ .../declarations/extensionProperties.txt | 49 +++++++++++++++++++ .../kotlin/ir/IrTextTestCaseGenerated.java | 6 +++ 3 files changed, 68 insertions(+) create mode 100644 compiler/testData/ir/irText/declarations/extensionProperties.kt create mode 100644 compiler/testData/ir/irText/declarations/extensionProperties.txt diff --git a/compiler/testData/ir/irText/declarations/extensionProperties.kt b/compiler/testData/ir/irText/declarations/extensionProperties.kt new file mode 100644 index 00000000000..db094790100 --- /dev/null +++ b/compiler/testData/ir/irText/declarations/extensionProperties.kt @@ -0,0 +1,13 @@ +val String.test1 get() = 42 + +var String.test2 + get() = 42 + set(value) {} + +class Host { + val String.test3 get() = 42 + + var String.test4 + get() = 42 + set(value) {} +} \ No newline at end of file diff --git a/compiler/testData/ir/irText/declarations/extensionProperties.txt b/compiler/testData/ir/irText/declarations/extensionProperties.txt new file mode 100644 index 00000000000..3a227ec0ffd --- /dev/null +++ b/compiler/testData/ir/irText/declarations/extensionProperties.txt @@ -0,0 +1,49 @@ +FILE fqName: fileName:/extensionProperties.kt + PROPERTY name:test1 type:kotlin.Int visibility:public modality:FINAL flags:val + FUN name: visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:Int flags: + $receiver: VALUE_PARAMETER name: type:kotlin.String flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='() on String: Int' + CONST Int type=kotlin.Int value=42 + PROPERTY name:test2 type:kotlin.Int visibility:public modality:FINAL flags:var + FUN name: visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:Int flags: + $receiver: VALUE_PARAMETER name: type:kotlin.String flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='() on String: Int' + CONST Int type=kotlin.Int value=42 + FUN name: visibility:public modality:FINAL <> ($receiver:kotlin.String, value:kotlin.Int) returnType:Unit flags: + $receiver: VALUE_PARAMETER name: type:kotlin.String flags: + VALUE_PARAMETER name:value index:0 type:kotlin.Int flags: + BLOCK_BODY + CLASS CLASS name:Host modality:FINAL visibility:public flags: + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:Host flags: + CONSTRUCTOR visibility:public <> () returnType:Host flags: + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'constructor Any()' + INSTANCE_INITIALIZER_CALL classDescriptor='Host' + PROPERTY name:test3 type:kotlin.Int visibility:public modality:FINAL flags:val + FUN name: visibility:public modality:FINAL <> ($this:Host, $receiver:kotlin.String) returnType:Int flags: + $this: VALUE_PARAMETER name: type:Host flags: + $receiver: VALUE_PARAMETER name: type:kotlin.String flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='() on String: Int' + CONST Int type=kotlin.Int value=42 + PROPERTY name:test4 type:kotlin.Int visibility:public modality:FINAL flags:var + FUN name: visibility:public modality:FINAL <> ($this:Host, $receiver:kotlin.String) returnType:Int flags: + $this: VALUE_PARAMETER name: type:Host flags: + $receiver: VALUE_PARAMETER name: type:kotlin.String flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='() on String: Int' + CONST Int type=kotlin.Int value=42 + FUN name: visibility:public modality:FINAL <> ($this:Host, $receiver:kotlin.String, value:kotlin.Int) returnType:Unit flags: + $this: VALUE_PARAMETER name: type:Host flags: + $receiver: VALUE_PARAMETER name: type:kotlin.String flags: + VALUE_PARAMETER name:value index:0 type:kotlin.Int flags: + BLOCK_BODY + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags: + $this: VALUE_PARAMETER name: type:kotlin.Any flags: + VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags: + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags: + $this: VALUE_PARAMETER name: type:kotlin.Any flags: + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags: + $this: VALUE_PARAMETER name: type:kotlin.Any flags: diff --git a/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java b/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java index cebb21f3e73..359273053b3 100644 --- a/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java @@ -252,6 +252,12 @@ public class IrTextTestCaseGenerated extends AbstractIrTextTestCase { doTest(fileName); } + @TestMetadata("extensionProperties.kt") + public void testExtensionProperties() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/ir/irText/declarations/extensionProperties.kt"); + doTest(fileName); + } + @TestMetadata("fakeOverrides.kt") public void testFakeOverrides() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/ir/irText/declarations/fakeOverrides.kt");