Update IDE tests to use KProperty instead of PropertyMetadata

This commit is contained in:
Alexander Udalov
2015-10-13 16:47:47 +03:00
parent 51bf68ce27
commit 6a965c9a06
31 changed files with 124 additions and 77 deletions
@@ -2,8 +2,8 @@
package first package first
fun firstFun() { fun firstFun() {
val a = PropertyM<caret> val a = KProp<caret>
} }
// INVOCATION_COUNT: 1 // INVOCATION_COUNT: 1
// EXIST: { lookupString:"PropertyMetadata", itemText:"PropertyMetadata", tailText:" (kotlin)" } // EXIST: { lookupString:"KProperty", itemText:"KProperty", tailText:"<R> (kotlin.reflect)" }
@@ -2272,6 +2272,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
doTest(fileName); doTest(fileName);
} }
@TestMetadata("KProperty.kt")
public void testKProperty() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/java/KProperty.kt");
doTest(fileName);
}
@TestMetadata("NoDuplicationForImportedJavaClass.kt") @TestMetadata("NoDuplicationForImportedJavaClass.kt")
public void testNoDuplicationForImportedJavaClass() throws Exception { public void testNoDuplicationForImportedJavaClass() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/java/NoDuplicationForImportedJavaClass.kt"); String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/java/NoDuplicationForImportedJavaClass.kt");
@@ -2296,12 +2302,6 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
doTest(fileName); doTest(fileName);
} }
@TestMetadata("PropertyMetadata.kt")
public void testPropertyMetadata() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/java/PropertyMetadata.kt");
doTest(fileName);
}
@TestMetadata("SAMAdaptersStatic.kt") @TestMetadata("SAMAdaptersStatic.kt")
public void testSAMAdaptersStatic() throws Exception { public void testSAMAdaptersStatic() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/java/SAMAdaptersStatic.kt"); String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/java/SAMAdaptersStatic.kt");
@@ -1,3 +1,5 @@
<info>import</info> kotlin.reflect.KProperty
interface T interface T
class T1(<warning>t</warning>: Int): T class T1(<warning>t</warning>: Int): T
@@ -5,7 +7,7 @@ class T1(<warning>t</warning>: Int): T
class Delegate(<warning>d</warning>: Int) { class Delegate(<warning>d</warning>: Int) {
<info>operator</info> fun getValue(k: Any, m: PropertyMetadata) {} <info>operator</info> fun getValue(k: Any, m: KProperty<*>) {}
} }
class A(y: Int, t: Int, d: Int): T <info>by</info> T1(t) { class A(y: Int, t: Int, d: Int): T <info>by</info> T1(t) {
+4 -2
View File
@@ -1,13 +1,15 @@
// NO_ERRORS_DUMP // NO_ERRORS_DUMP
package a package a
import kotlin.reflect.KProperty
interface T interface T
fun T.getValue(thisRef: B, desc: PropertyMetadata): Int { fun T.getValue(thisRef: B, desc: KProperty<*>): Int {
return 3 return 3
} }
fun T.setValue(thisRef: B, desc: PropertyMetadata, value: Int) { fun T.setValue(thisRef: B, desc: KProperty<*>, value: Int) {
} }
class A(): T class A(): T
@@ -1,3 +1,5 @@
import kotlin.reflect.KProperty
fun foo() { fun foo() {
a<caret> a<caret>
} }
@@ -5,7 +7,7 @@ fun foo() {
val a by Delegate() val a by Delegate()
class Delegate { class Delegate {
fun getValue(t: Any?, p: PropertyMetadata) = 1 fun getValue(t: Any?, p: KProperty<*>) = 1
} }
// EXISTS: a.getValue(Any?\, PropertyMetadata) // EXISTS: a.getValue(Any?\, KProperty<*>)
@@ -1,10 +1,11 @@
LineBreakpoint created at delegatedPropertyInClass.kt:8 LineBreakpoint created at delegatedPropertyInClass.kt:9
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! delegatedPropertyInClass.DelegatedPropertyInClassPackage !JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! delegatedPropertyInClass.DelegatedPropertyInClassPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket' Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
delegatedPropertyInClass.kt:8 delegatedPropertyInClass.kt:9
package delegatedPropertyInClass package delegatedPropertyInClass
import kotlin.properties.Delegates import kotlin.properties.Delegates
import kotlin.reflect.KProperty
fun main(args: Array<String>) { fun main(args: Array<String>) {
val a = A() val a = A()
@@ -18,23 +19,24 @@ class A {
} }
class MyDelegate { class MyDelegate {
fun getValue(t: Any?, p: PropertyMetadata): Int = 1 fun getValue(t: Any?, p: KProperty<*>): Int = 1
} }
class MyDelegateThrowsException { class MyDelegateThrowsException {
fun getValue(t: Any?, p: PropertyMetadata): Int = throw IllegalStateException() fun getValue(t: Any?, p: KProperty<*>): Int = throw IllegalStateException()
} }
// PRINT_FRAME // PRINT_FRAME
frame = main():8, DelegatedPropertyInClassKt {delegatedPropertyInClass}
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = delegatedPropertyInClass.kt, 5) frame = main():9, DelegatedPropertyInClassKt {delegatedPropertyInClass}
local = a: delegatedPropertyInClass.A = {delegatedPropertyInClass.A@uniqueID} (sp = delegatedPropertyInClass.kt, 6) local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = delegatedPropertyInClass.kt, 6)
field = prop$delegate: delegatedPropertyInClass.MyDelegate = {delegatedPropertyInClass.MyDelegate@uniqueID} (sp = delegatedPropertyInClass.kt, 12) local = a: delegatedPropertyInClass.A = {delegatedPropertyInClass.A@uniqueID} (sp = delegatedPropertyInClass.kt, 7)
field = prop$delegate: delegatedPropertyInClass.MyDelegate = {delegatedPropertyInClass.MyDelegate@uniqueID} (sp = delegatedPropertyInClass.kt, 13)
- Class has no fields - Class has no fields
field = prop: int = 1 (sp = delegatedPropertyInClass.kt, 12) field = prop: int = 1 (sp = delegatedPropertyInClass.kt, 13)
field = propEx$delegate: delegatedPropertyInClass.MyDelegateThrowsException = {delegatedPropertyInClass.MyDelegateThrowsException@uniqueID} (sp = delegatedPropertyInClass.kt, 13) field = propEx$delegate: delegatedPropertyInClass.MyDelegateThrowsException = {delegatedPropertyInClass.MyDelegateThrowsException@uniqueID} (sp = delegatedPropertyInClass.kt, 14)
- Class has no fields - Class has no fields
field = propEx: int = {java.lang.IllegalStateException@uniqueID}java.lang.IllegalStateException (sp = delegatedPropertyInClass.kt, 13) field = propEx: int = {java.lang.IllegalStateException@uniqueID}java.lang.IllegalStateException (sp = delegatedPropertyInClass.kt, 14)
field = detailMessage: java.lang.String = null (sp = Throwable.!EXT!) field = detailMessage: java.lang.String = null (sp = Throwable.!EXT!)
field = cause: java.lang.Throwable = {java.lang.IllegalStateException@uniqueID}java.lang.IllegalStateException (sp = Throwable.!EXT!) field = cause: java.lang.Throwable = {java.lang.IllegalStateException@uniqueID}java.lang.IllegalStateException (sp = Throwable.!EXT!)
field = stackTrace: java.lang.StackTraceElement[] = null (sp = Throwable.!EXT!) field = stackTrace: java.lang.StackTraceElement[] = null (sp = Throwable.!EXT!)
@@ -1,10 +1,11 @@
LineBreakpoint created at delegatedPropertyInClassWoRenderer.kt:8 LineBreakpoint created at delegatedPropertyInClassWoRenderer.kt:9
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! delegatedPropertyInClassWoRenderer.DelegatedPropertyInClassWoRendererPackage !JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! delegatedPropertyInClassWoRenderer.DelegatedPropertyInClassWoRendererPackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket' Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
delegatedPropertyInClassWoRenderer.kt:8 delegatedPropertyInClassWoRenderer.kt:9
package delegatedPropertyInClassWoRenderer package delegatedPropertyInClassWoRenderer
import kotlin.properties.Delegates import kotlin.properties.Delegates
import kotlin.reflect.KProperty
fun main(args: Array<String>) { fun main(args: Array<String>) {
val a = A() val a = A()
@@ -17,15 +18,16 @@ class A {
} }
class MyDelegate { class MyDelegate {
fun getValue(t: Any?, p: PropertyMetadata): Int = 1 fun getValue(t: Any?, p: KProperty<*>): Int = 1
} }
// RENDER_DELEGATED_PROPERTIES: false // RENDER_DELEGATED_PROPERTIES: false
// PRINT_FRAME // PRINT_FRAME
frame = main():8, DelegatedPropertyInClassWoRendererKt {delegatedPropertyInClassWoRenderer}
local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = delegatedPropertyInClassWoRenderer.kt, 5) frame = main():9, DelegatedPropertyInClassWoRendererKt {delegatedPropertyInClassWoRenderer}
local = a: delegatedPropertyInClassWoRenderer.A = {delegatedPropertyInClassWoRenderer.A@uniqueID} (sp = delegatedPropertyInClassWoRenderer.kt, 6) local = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = delegatedPropertyInClassWoRenderer.kt, 6)
field = prop: int = {delegatedPropertyInClassWoRenderer.MyDelegate@uniqueID} (sp = delegatedPropertyInClassWoRenderer.kt, 12) local = a: delegatedPropertyInClassWoRenderer.A = {delegatedPropertyInClassWoRenderer.A@uniqueID} (sp = delegatedPropertyInClassWoRenderer.kt, 7)
field = prop: int = {delegatedPropertyInClassWoRenderer.MyDelegate@uniqueID} (sp = delegatedPropertyInClassWoRenderer.kt, 13)
- Class has no fields - Class has no fields
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket' Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
+2 -2
View File
@@ -1,7 +1,7 @@
LineBreakpoint created at dependentOnFile.kt:5 LineBreakpoint created at dependentOnFile.kt:7
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! dependentOnFile.DependentOnFilePackage !JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! dependentOnFile.DependentOnFilePackage
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket' Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
dependentOnFile.kt:5 dependentOnFile.kt:7
Compile bytecode for TestClass().testFun() Compile bytecode for TestClass().testFun()
Compile bytecode for testFun() Compile bytecode for testFun()
Compile bytecode for TestObject.p Compile bytecode for TestObject.p
@@ -1,5 +1,7 @@
package dependentOnFile package dependentOnFile
import kotlin.reflect.KProperty
fun main(args: Array<String>) { fun main(args: Array<String>) {
//Breakpoint! //Breakpoint!
args.size() args.size()
@@ -25,7 +27,7 @@ val Int.testExtVal: Int get() = 1
val testDelVal by Delegate() val testDelVal by Delegate()
class Delegate { class Delegate {
fun getValue(a: Any?, b: PropertyMetadata) = 1 fun getValue(a: Any?, b: KProperty<*>) = 1
} }
// EXPRESSION: TestClass().testFun() // EXPRESSION: TestClass().testFun()
@@ -1,6 +1,7 @@
package delegatedPropertyInClass package delegatedPropertyInClass
import kotlin.properties.Delegates import kotlin.properties.Delegates
import kotlin.reflect.KProperty
fun main(args: Array<String>) { fun main(args: Array<String>) {
val a = A() val a = A()
@@ -14,11 +15,11 @@ class A {
} }
class MyDelegate { class MyDelegate {
fun getValue(t: Any?, p: PropertyMetadata): Int = 1 fun getValue(t: Any?, p: KProperty<*>): Int = 1
} }
class MyDelegateThrowsException { class MyDelegateThrowsException {
fun getValue(t: Any?, p: PropertyMetadata): Int = throw IllegalStateException() fun getValue(t: Any?, p: KProperty<*>): Int = throw IllegalStateException()
} }
// PRINT_FRAME // PRINT_FRAME
@@ -1,6 +1,7 @@
package delegatedPropertyInClassWoRenderer package delegatedPropertyInClassWoRenderer
import kotlin.properties.Delegates import kotlin.properties.Delegates
import kotlin.reflect.KProperty
fun main(args: Array<String>) { fun main(args: Array<String>) {
val a = A() val a = A()
@@ -13,7 +14,7 @@ class A {
} }
class MyDelegate { class MyDelegate {
fun getValue(t: Any?, p: PropertyMetadata): Int = 1 fun getValue(t: Any?, p: KProperty<*>): Int = 1
} }
// RENDER_DELEGATED_PROPERTIES: false // RENDER_DELEGATED_PROPERTIES: false
@@ -1,8 +1,10 @@
// PSI_ELEMENT: org.jetbrains.kotlin.psi.JetNamedFunction // PSI_ELEMENT: org.jetbrains.kotlin.psi.JetNamedFunction
// OPTIONS: usages // OPTIONS: usages
import kotlin.reflect.KProperty
class Delegate() { class Delegate() {
fun <caret>getValue(thisRef: Any?, propertyMetadata: PropertyMetadata): String = ":)" fun <caret>getValue(thisRef: Any?, property: KProperty<*>): String = ":)"
} }
val p: String by Delegate() val p: String by Delegate()
@@ -1 +1 @@
Property delegation (8: 15) val p: String by Delegate() Property delegation (10: 15) val p: String by Delegate()
@@ -1,12 +1,14 @@
// PSI_ELEMENT: org.jetbrains.kotlin.psi.JetNamedFunction // PSI_ELEMENT: org.jetbrains.kotlin.psi.JetNamedFunction
// OPTIONS: usages // OPTIONS: usages
import kotlin.reflect.KProperty
class Delegate() { class Delegate() {
fun getValue(thisRef: Any?, propertyMetadata: PropertyMetadata): String = ":)" fun getValue(thisRef: Any?, property: KProperty<*>): String = ":)"
fun setValue(thisRef: Any?, propertyMetadata: PropertyMetadata, value: String) { fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
} }
fun <caret>propertyDelegated(propertyMetadata: PropertyMetadata) { fun <caret>propertyDelegated(property: KProperty<*>) {
} }
} }
@@ -1 +1 @@
Property delegation (13: 15) var p: String by Delegate() Property delegation (15: 15) var p: String by Delegate()
@@ -1,9 +1,11 @@
// PSI_ELEMENT: org.jetbrains.kotlin.psi.JetNamedFunction // PSI_ELEMENT: org.jetbrains.kotlin.psi.JetNamedFunction
// OPTIONS: usages // OPTIONS: usages
import kotlin.reflect.KProperty
class Delegate() { class Delegate() {
fun getValue(thisRef: Any?, propertyMetadata: PropertyMetadata): String = ":)" fun getValue(thisRef: Any?, property: KProperty<*>): String = ":)"
fun <caret>setValue(thisRef: Any?, propertyMetadata: PropertyMetadata, value: String) { fun <caret>setValue(thisRef: Any?, property: KProperty<*>, value: String) {
} }
} }
@@ -1 +1 @@
Property delegation (11: 15) var p: String by Delegate() Property delegation (13: 15) var p: String by Delegate()
+3 -2
View File
@@ -1,5 +1,6 @@
import pack.bar import pack.bar
import pack.oldFun2 // should not be removed for non-deprecated overload used import pack.oldFun2 // should not be removed for non-deprecated overload used
import kotlin.reflect.KProperty
class A private constructor() class A private constructor()
@@ -45,8 +46,8 @@ class Foo {
} }
class CustomDelegate { class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: PropertyMetadata): String = "" operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = ""
operator fun setValue(thisRef: Any?, prop: PropertyMetadata, value: String) {} operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {}
} }
class B { class B {
@@ -1,5 +1,7 @@
import kotlin.reflect.KProperty
class MyProperty { class MyProperty {
fun getValue(thisRef: Any?, desc: PropertyMetadata) = ":)" fun getValue(thisRef: Any?, desc: KProperty<*>) = ":)"
} }
val Any.ext by MyProperty() val Any.ext by MyProperty()
@@ -9,5 +9,5 @@ class B {
} }
// MULTIRESOLVE // MULTIRESOLVE
// REF: (for T in dependency).getValue(R,kotlin.PropertyMetadata) // REF: (for T in dependency).getValue(R,kotlin.reflect.KProperty<*>)
// REF: (for T in dependency).setValue(R,kotlin.PropertyMetadata,kotlin.Int) // REF: (for T in dependency).setValue(R,kotlin.reflect.KProperty<*>,kotlin.Int)
@@ -1,8 +1,10 @@
package dependency package dependency
public fun <T, R> T.getValue(thisRef: R, desc: PropertyMetadata): Int { import kotlin.reflect.KProperty
public fun <T, R> T.getValue(thisRef: R, desc: KProperty<*>): Int {
return 3 return 3
} }
public fun <T, R> T.setValue(thisRef: R, desc: PropertyMetadata, value: Int) { public fun <T, R> T.setValue(thisRef: R, desc: KProperty<*>, value: Int) {
} }
@@ -1,16 +1,18 @@
package foo.bar package foo.bar
import kotlin.reflect.KProperty
/*p:foo.bar*/class D1 { /*p:foo.bar*/class D1 {
fun get(t: /*c:foo.bar.D1 p:foo.bar*/Any?, p: /*c:foo.bar.D1 p:foo.bar*/PropertyMetadata) = 1 fun get(t: /*c:foo.bar.D1 p:foo.bar*/Any?, p: /*c:foo.bar.D1*/KProperty<*>) = 1
} }
/*p:foo.bar*/fun /*p:foo.bar*/D1.set(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/PropertyMetadata, v: /*p:foo.bar*/Int) {} /*p:foo.bar*/fun /*p:foo.bar*/D1.set(t: /*p:foo.bar*/Any?, p: KProperty<*>, v: /*p:foo.bar*/Int) {}
/*p:foo.bar(D2)*/open class D2 { /*p:foo.bar(D2)*/open class D2 {
fun set(t: /*c:foo.bar.D2 p:foo.bar*/Any?, p: /*c:foo.bar.D2 p:foo.bar*/PropertyMetadata, v: /*c:foo.bar.D2 p:foo.bar*/Int) {} fun set(t: /*c:foo.bar.D2 p:foo.bar*/Any?, p: /*c:foo.bar.D2*/KProperty<*>, v: /*c:foo.bar.D2 p:foo.bar*/Int) {}
} }
/*p:foo.bar*/fun /*p:foo.bar*/D2.get(t: /*p:foo.bar*/Any?, p: /*p:foo.bar*/PropertyMetadata) = 1 /*p:foo.bar*/fun /*p:foo.bar*/D2.get(t: /*p:foo.bar*/Any?, p: KProperty<*>) = 1
/*p:foo.bar*/fun /*p:foo.bar*/D2.propertyDelegated(p: /*p:foo.bar*/Any?) {} /*p:foo.bar*/fun /*p:foo.bar*/D2.propertyDelegated(p: /*p:foo.bar*/Any?) {}
/*p:foo.bar*/class D3 : /*p:foo.bar*/D2() { /*p:foo.bar*/class D3 : /*p:foo.bar*/D2() {
@@ -7,7 +7,9 @@ Compiling files:
src/inlineGet.kt src/inlineGet.kt
End of files End of files
Cleaning output files: Cleaning output files:
out/production/module/usage/UsageVal$x$1.class
out/production/module/usage/UsageVal.class out/production/module/usage/UsageVal.class
out/production/module/usage/UsageVar$x$1.class
out/production/module/usage/UsageVar.class out/production/module/usage/UsageVar.class
End of files End of files
Compiling files: Compiling files:
@@ -25,6 +27,7 @@ Compiling files:
src/inlineSet.kt src/inlineSet.kt
End of files End of files
Cleaning output files: Cleaning output files:
out/production/module/usage/UsageVar$x$1.class
out/production/module/usage/UsageVar.class out/production/module/usage/UsageVar.class
End of files End of files
Compiling files: Compiling files:
@@ -1,5 +1,7 @@
package inline package inline
inline fun Inline.getValue(receiver: Any?, prop: PropertyMetadata): Int { import kotlin.reflect.KProperty
inline fun Inline.getValue(receiver: Any?, prop: KProperty<*>): Int {
return 0 return 0
} }
@@ -1,5 +1,7 @@
package inline package inline
inline fun Inline.getValue(receiver: Any?, prop: PropertyMetadata): Int { import kotlin.reflect.KProperty
inline fun Inline.getValue(receiver: Any?, prop: KProperty<*>): Int {
return 1 return 1
} }
@@ -1,5 +1,7 @@
package inline package inline
inline fun Inline.setValue(receiver: Any?, prop: PropertyMetadata, value: Int) { import kotlin.reflect.KProperty
inline fun Inline.setValue(receiver: Any?, prop: KProperty<*>, value: Int) {
println(value) println(value)
} }
@@ -1,5 +1,7 @@
package inline package inline
inline fun Inline.setValue(receiver: Any?, prop: PropertyMetadata, value: Int) { import kotlin.reflect.KProperty
inline fun Inline.setValue(receiver: Any?, prop: KProperty<*>, value: Int) {
println(value * 2) println(value * 2)
} }
@@ -5,7 +5,9 @@ Compiling files:
src/inline.kt src/inline.kt
End of files End of files
Cleaning output files: Cleaning output files:
out/production/module/usage/UsageVal$x$1.class
out/production/module/usage/UsageVal.class out/production/module/usage/UsageVal.class
out/production/module/usage/UsageVar$x$1.class
out/production/module/usage/UsageVar.class out/production/module/usage/UsageVar.class
End of files End of files
Compiling files: Compiling files:
@@ -21,6 +23,7 @@ Compiling files:
src/inline.kt src/inline.kt
End of files End of files
Cleaning output files: Cleaning output files:
out/production/module/usage/UsageVar$x$1.class
out/production/module/usage/UsageVar.class out/production/module/usage/UsageVar.class
End of files End of files
Compiling files: Compiling files:
@@ -1,11 +1,13 @@
package inline package inline
import kotlin.reflect.KProperty
class Inline { class Inline {
inline fun getValue(receiver: Any?, prop: PropertyMetadata): Int { inline fun getValue(receiver: Any?, prop: KProperty<*>): Int {
return 0 return 0
} }
inline fun setValue(receiver: Any?, prop: PropertyMetadata, value: Int) { inline fun setValue(receiver: Any?, prop: KProperty<*>, value: Int) {
println(value) println(value)
} }
} }
@@ -1,11 +1,13 @@
package inline package inline
import kotlin.reflect.KProperty
class Inline { class Inline {
inline fun getValue(receiver: Any?, prop: PropertyMetadata): Int { inline fun getValue(receiver: Any?, prop: KProperty<*>): Int {
return 1 return 1
} }
inline fun setValue(receiver: Any?, prop: PropertyMetadata, value: Int) { inline fun setValue(receiver: Any?, prop: KProperty<*>, value: Int) {
println(value) println(value)
} }
} }
@@ -1,11 +1,13 @@
package inline package inline
import kotlin.reflect.KProperty
class Inline { class Inline {
inline fun getValue(receiver: Any?, prop: PropertyMetadata): Int { inline fun getValue(receiver: Any?, prop: KProperty<*>): Int {
return 1 return 1
} }
inline fun setValue(receiver: Any?, prop: PropertyMetadata, value: Int) { inline fun setValue(receiver: Any?, prop: KProperty<*>, value: Int) {
println(value * 2) println(value * 2)
} }
} }