mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-10-04 22:59:34 +00:00
fixes for generics
This commit is contained in:
25
ksp/generator/src/main/kotlin/KClassWorkarounds.kt
Normal file
25
ksp/generator/src/main/kotlin/KClassWorkarounds.kt
Normal file
@@ -0,0 +1,25 @@
|
||||
package dev.inmo.micro_ksp.generator
|
||||
|
||||
import com.google.devtools.ksp.KSTypeNotPresentException
|
||||
import com.google.devtools.ksp.KSTypesNotPresentException
|
||||
import com.google.devtools.ksp.KspExperimental
|
||||
import com.google.devtools.ksp.symbol.KSType
|
||||
import com.squareup.kotlinpoet.asClassName
|
||||
import com.squareup.kotlinpoet.ksp.toClassName
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@OptIn(KspExperimental::class)
|
||||
inline fun convertToClassName(getter: () -> KClass<*>) = try {
|
||||
getter().asClassName()
|
||||
} catch (e: KSTypeNotPresentException) {
|
||||
e.ksType.toClassName()
|
||||
}
|
||||
|
||||
@OptIn(KspExperimental::class)
|
||||
inline fun convertToClassNames(getter: () -> List<KClass<*>>) = try {
|
||||
getter().map { it.asClassName() }
|
||||
} catch (e: KSTypesNotPresentException) {
|
||||
e.ksTypes.map {
|
||||
it.toClassName()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user