[FIR] Implement Native test infrastructure, add FirNativeSessionFactory

This commit is contained in:
Ivan Kochurkin
2022-06-23 18:24:58 +03:00
parent 2f56b29b3f
commit 502349c594
27 changed files with 1661 additions and 40 deletions
@@ -0,0 +1,114 @@
// FILE: annotation.kt
package kotlin.native.concurrent
@Target(AnnotationTarget.PROPERTY, AnnotationTarget.CLASS)
@Retention(AnnotationRetention.BINARY)
annotation class ThreadLocal
// FILE: test.kt
import kotlin.native.concurrent.ThreadLocal
import kotlin.reflect.KProperty
class Delegate {
val value: Int = 10
operator fun getValue(thisRef: Any?, property: KProperty<*>): Int {
return value
}
operator fun setValue(thisRef: Any?, property: KProperty<*>, value: Int) {
}
}
class AtomicInt(var value: Int)
object Foo {
var field1: Int = 10
val backer2 = AtomicInt(0)
var field2: Int
get() = backer2.value
set(value: Int) { backer2.value = value }
}
object Foo1 {
var field1: Int = 10
set(value: Int) { backer2.value = value }
val backer2 = AtomicInt(0)
}
object WithDelegate {
var field1: Int by Delegate()
}
@ThreadLocal
object Bar {
var field1: Int = 10
var field2: String? = null
}
class Foo2 {
companion object {
var field1: Int = 10
val backer2 = AtomicInt(0)
var field2: Int
get() = backer2.value
set(value: Int) {
backer2.value = value
}
}
}
class Bar2 {
@ThreadLocal
companion object {
var field1: Int = 10
var field2: String? = null
}
}
@ThreadLocal
enum class Color(var rgb: Int) {
RED(0xFF0000),
GREEN(0x00FF00),
BLUE(0x0000FF)
}
enum class Color1(var rgb: Int) {
RED(0xFF0000),
GREEN(0x00FF00),
BLUE(0x0000FF);
init { this.rgb += 1 }
}
@ThreadLocal
var a = 3
enum class Color2() {
RED(),
GREEN(),
BLUE();
var rgb: Int = 2
set(value: Int) {
a = value
}
}
enum class Color3() {
RED(),
GREEN(),
BLUE();
var field1: Int by Delegate()
}
enum class Color4 {
RED {
var a = 2
override fun foo() { a = 42 }
},
GREEN,
BLUE;
open fun foo() {}
}
var topLevelProperty = "Global var"