suresh
03/15/2017, 9:22 AMval Byte.hex get() = Integer.toHexString(toInt() and 0xFF or 0x100).substring(1, 3).toUpperCase()
val ByteArray.hex get() = map(Byte::hex).joinToString(" ")
val String.hex get() = toByteArray(Charsets.UTF_8).hex
fun main(args: Array<String>) {
println("hello".hex)
}
Getting the following error at runtime when running this piece of code, which compiles fine.
Kotlin: [Internal Error] org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Failed to generate property hex
Cause: Error type encountered: [ERROR : Recursive dependency] (DeferredType).
File being compiled and position: (8,1) in /.../test.kt
PsiElement: val String.hex get() = toByteArray(Charsets.UTF_8).hex
The root cause was thrown at: KotlinTypeMapper.java:147
at org.jetbrains.kotlin.codegen.MemberCodegen.genSimpleMember(MemberCodegen.java:213)
at org.jetbrains.kotlin.codegen.PackagePartCodegen.generateBody(PackagePartCodegen.java:98)
Caused by: java.lang.IllegalStateException: Error type encountered: [ERROR : Recursive dependency] (DeferredType).
at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper$1.processErrorType(KotlinTypeMapper.java:147)
at org.jetbrains.kotlin.load.kotlin.TypeSignatureMappingKt.mapType(typeSignatureMapping.kt:113)
at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapType(KotlinTypeMapper.java:466)
at org.jetbrains.kotlin.codegen.state.KotlinTypeMapper.mapReturnType(KotlinTypeMapper.java:417)