diff --git a/invokergenerator/src/main/kotlin/de/justjanne/libquassel/generator/util/ksp/toEnum.kt b/invokergenerator/src/main/kotlin/de/justjanne/libquassel/generator/util/ksp/toEnum.kt index d366afdeb846cbda0f4e47a95e5b3e58b7210b53..3e0947cccf9d135f7b084417d42946605678730a 100644 --- a/invokergenerator/src/main/kotlin/de/justjanne/libquassel/generator/util/ksp/toEnum.kt +++ b/invokergenerator/src/main/kotlin/de/justjanne/libquassel/generator/util/ksp/toEnum.kt @@ -1,6 +1,6 @@ /* * libquassel - * Copyright (c) 2021 Janne Mareike Koschinski + * Copyright (c) 2024 Janne Mareike Koschinski * * This Source Code Form is subject to the terms of the Mozilla Public License, * v. 2.0. If a copy of the MPL was not distributed with this file, You can @@ -11,20 +11,20 @@ package de.justjanne.libquassel.generator.util.ksp import com.google.devtools.ksp.symbol.KSType import com.squareup.kotlinpoet.ClassName -import com.squareup.kotlinpoet.DelicateKotlinPoetApi import com.squareup.kotlinpoet.asClassName +import kotlin.reflect.KClass internal inline fun <reified T : Enum<T>> KSType.toEnum(): T? { - return asClassName().toEnum(T::class.java) + return asClassName().toEnum(T::class) } internal inline fun <reified T : Enum<T>> ClassName.toEnum(): T? { - return toEnum(T::class.java) + return toEnum(T::class) } -internal fun <T : Enum<T>> ClassName.toEnum(clazz: Class<T>): T? { +internal fun <T : Enum<T>> ClassName.toEnum(clazz: KClass<T>): T? { val enumClassName = clazz.asClassName() - return clazz.enumConstants.find { + return clazz.java.enumConstants.find { this.canonicalName == enumClassName.nestedClass(it.name).canonicalName } }