Test: property accessors are called by inline class
This commit is contained in:
Vendored
+41
@@ -0,0 +1,41 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
|
||||
// FILE: Z.kt
|
||||
inline class Z(val x: Int) {
|
||||
val aVal: Int
|
||||
get() = x
|
||||
|
||||
var aVar: Int
|
||||
get() = x
|
||||
set(v) {}
|
||||
|
||||
val String.extVal: Int
|
||||
get() = x
|
||||
|
||||
var String.extVar: Int
|
||||
get() = x
|
||||
set(v) {}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
fun Z.test() {
|
||||
aVal
|
||||
aVar
|
||||
aVar = 42
|
||||
aVar++
|
||||
|
||||
"".extVal
|
||||
"".extVar
|
||||
"".extVar = 42
|
||||
"".extVar++
|
||||
}
|
||||
|
||||
// @TestKt.class:
|
||||
// 0 INVOKESTATIC Z\$Erased\.
|
||||
// 0 INVOKESTATIC Z\-Erased\.
|
||||
// 1 INVOKESTATIC Z.getAVal \(I\)I
|
||||
// 2 INVOKESTATIC Z.getAVar \(I\)I
|
||||
// 2 INVOKESTATIC Z.setAVar \(II\)V
|
||||
// 1 INVOKESTATIC Z.getExtVal \(ILjava/lang/String;\)I
|
||||
// 2 INVOKESTATIC Z.getExtVar \(ILjava/lang/String;\)I
|
||||
// 2 INVOKESTATIC Z.setExtVar \(ILjava/lang/String;I\)V
|
||||
@@ -2163,6 +2163,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest {
|
||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/primaryConstructorCalledByInlineClass.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("propertyAccessorsAreCalledByInlineClass.kt")
|
||||
public void testPropertyAccessorsAreCalledByInlineClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/propertyAccessorsAreCalledByInlineClass.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("skipCallToUnderlyingValueOfInlineClass.kt")
|
||||
public void testSkipCallToUnderlyingValueOfInlineClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/skipCallToUnderlyingValueOfInlineClass.kt");
|
||||
|
||||
Reference in New Issue
Block a user