Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/constantValues.kt
T
2020-03-19 09:51:01 +03:00

27 lines
737 B
Kotlin
Vendored

abstract class ConstantValue<out T>(open val value: T)
data class ClassLiteralValue(val classId: ClassId, val arrayNestedness: Int)
class ClassId
class KotlinType
class KClassValue(value: Value) : ConstantValue<KClassValue.Value>(value) {
sealed class Value {
data class NormalClass(val value: ClassLiteralValue) : Value() {
val classId: ClassId
val arrayDimensions: Int
}
data class LocalClass(val type: KotlinType) : Value()
}
fun getArgumentType(): KotlinType {
when (value) {
is Value.LocalClass -> return value.type
is Value.NormalClass -> {
val (classId, arrayDimensions) = value.value
}
}
}
}