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");
|
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")
|
@TestMetadata("skipCallToUnderlyingValueOfInlineClass.kt")
|
||||||
public void testSkipCallToUnderlyingValueOfInlineClass() throws Exception {
|
public void testSkipCallToUnderlyingValueOfInlineClass() throws Exception {
|
||||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/skipCallToUnderlyingValueOfInlineClass.kt");
|
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/skipCallToUnderlyingValueOfInlineClass.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user