mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-09-09 02:00:01 +00:00
fixes in GenerateSealedTypesWorkaround
This commit is contained in:
@@ -2,6 +2,10 @@
|
||||
|
||||
## 0.24.3
|
||||
|
||||
* `Ksp`:
|
||||
* `Sealed`:
|
||||
* Fixes in processing of `GenerateSealedTypesWorkaround` annotations
|
||||
|
||||
## 0.24.2
|
||||
|
||||
* `Versions`:
|
||||
|
@@ -116,9 +116,9 @@ class Processor(
|
||||
allowNonSealed = annotation ?.includeNonSealedSubTypes ?: false
|
||||
).distinct()
|
||||
val subClassesNames = subClasses.filter {
|
||||
it.getAnnotationsByType(GenerateSealedWorkaround.Exclude::class).count() == 0
|
||||
it.getAnnotationsByType(GenerateSealedTypesWorkaround.Exclude::class).count() == 0
|
||||
}.sortedBy {
|
||||
(it.getAnnotationsByType(GenerateSealedWorkaround.Order::class).firstOrNull()) ?.order ?: 0
|
||||
(it.getAnnotationsByType(GenerateSealedTypesWorkaround.Order::class).firstOrNull()) ?.order ?: 0
|
||||
}.map {
|
||||
it.toClassName()
|
||||
}.toList()
|
||||
|
@@ -7,10 +7,10 @@ import dev.inmo.micro_utils.ksp.sealed.GenerateSealedWorkaround
|
||||
@GenerateSealedTypesWorkaround
|
||||
sealed interface Test {
|
||||
@GenerateSealedWorkaround.Order(2)
|
||||
@GenerateSealedTypesWorkaround.Order(2)
|
||||
@GenerateSealedTypesWorkaround.Exclude
|
||||
object A : Test
|
||||
@GenerateSealedWorkaround.Exclude
|
||||
@GenerateSealedTypesWorkaround.Exclude
|
||||
@GenerateSealedTypesWorkaround.Order(2)
|
||||
object B : Test
|
||||
@GenerateSealedWorkaround.Order(0)
|
||||
@GenerateSealedTypesWorkaround.Order(0)
|
||||
|
@@ -7,6 +7,6 @@ import kotlin.collections.Set
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
private val subtypes: Set<KClass<out Test>> = setOf(Test.C::class,
|
||||
Test.A::class)
|
||||
Test.B::class)
|
||||
|
||||
public fun Test.Companion.subtypes(): Set<KClass<out Test>> = subtypes
|
||||
|
40
ksp/sealed/generator/test/src/commonTest/kotlin/TestTests.kt
Normal file
40
ksp/sealed/generator/test/src/commonTest/kotlin/TestTests.kt
Normal file
@@ -0,0 +1,40 @@
|
||||
import dev.inmo.micro_utils.ksp.sealed.generator.test.subtypes
|
||||
import dev.inmo.micro_utils.ksp.sealed.generator.test.values
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
class TestTests {
|
||||
@Test
|
||||
fun testThatAfterCompilationTestWorkaroundsHaveCorrectValues() {
|
||||
val correctValues = arrayOf(
|
||||
dev.inmo.micro_utils.ksp.sealed.generator.test.Test.C,
|
||||
dev.inmo.micro_utils.ksp.sealed.generator.test.Test.A,
|
||||
)
|
||||
val correctSubtypes = arrayOf(
|
||||
dev.inmo.micro_utils.ksp.sealed.generator.test.Test.C::class,
|
||||
dev.inmo.micro_utils.ksp.sealed.generator.test.Test.B::class,
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
correctValues.size, dev.inmo.micro_utils.ksp.sealed.generator.test.Test.values().size
|
||||
)
|
||||
correctValues.forEachIndexed { index, value ->
|
||||
assertTrue(
|
||||
value === dev.inmo.micro_utils.ksp.sealed.generator.test.Test.values().elementAt(index)
|
||||
)
|
||||
}
|
||||
|
||||
assertEquals(
|
||||
correctSubtypes.size, dev.inmo.micro_utils.ksp.sealed.generator.test.Test.subtypes().size
|
||||
)
|
||||
correctSubtypes.forEachIndexed { index, value ->
|
||||
assertTrue(
|
||||
value.qualifiedName != null
|
||||
)
|
||||
assertTrue(
|
||||
value.qualifiedName === dev.inmo.micro_utils.ksp.sealed.generator.test.Test.subtypes().elementAt(index).qualifiedName
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user