197f0112b4
#KT-62127 Fixed
50 lines
972 B
Kotlin
Vendored
50 lines
972 B
Kotlin
Vendored
// WITH_STDLIB
|
|
// The test depends on kotlin.jvm package
|
|
// TARGET_BACKEND: JVM
|
|
// MODULE: lib
|
|
// FILE: b.kt
|
|
|
|
package b
|
|
|
|
import a.*
|
|
|
|
public object MstLogicAlgebra1 : LogicAlgebra1<StringSymbol1> {
|
|
override fun const(boolean: Boolean): StringSymbol1 = if (boolean) {
|
|
LogicAlgebra1.TRUE
|
|
} else {
|
|
LogicAlgebra1.FALSE
|
|
}
|
|
}
|
|
|
|
// FILE: a.kt
|
|
|
|
package a
|
|
|
|
import kotlin.properties.ReadOnlyProperty
|
|
|
|
public interface LogicAlgebra1<T : Any> {
|
|
|
|
public fun const(boolean: Boolean): T
|
|
|
|
public companion object {
|
|
public val TRUE: StringSymbol1 by symbol1
|
|
public val FALSE: StringSymbol1 by symbol1
|
|
}
|
|
}
|
|
|
|
public val symbol1: ReadOnlyProperty<Any?, StringSymbol1> = ReadOnlyProperty { _, property ->
|
|
StringSymbol1(property.name)
|
|
}
|
|
|
|
@JvmInline
|
|
public value class StringSymbol1(public val identity: String)
|
|
|
|
// MODULE: main(lib)
|
|
// FILE: c.kt
|
|
|
|
import b.*
|
|
|
|
fun box(): String {
|
|
MstLogicAlgebra1.run { const(true) }
|
|
return "OK"
|
|
} |